Files
LogIn-App/build/lib/login/commands.py
Dima YaFlay 1f82a431ab Upload files. Version 1.0.1
Add files to PyPI, fix some bugs
2022-04-23 18:50:54 +03:00

228 lines
8.8 KiB
Python

import os, smtplib
from random import randint
from tkinter import *
import tkinter as tk
from simplecrypt import encrypt, decrypt
from tkinter.messagebox import showerror, showinfo, askokcancel
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from __main__ import main
class path_take():
path = os.getcwd()
if not os.path.isdir(f'{path}/login_files'):
os.mkdir(f'{path}/login_files')
main_path = f'{path}/login_files'
os.popen(f'cd "{main_path}"')
with open(f'{main_path}/fromaddr.cfg', 'rb') as file:
crypted_data = file.read()
global fromaddr
fromaddr = decrypt('if_u_jailbreak_here_u_gay', crypted_data).decode('utf8')
file.close()
with open(f'{main_path}/mypass.cfg', 'rb') as file:
crypted_data = file.read()
global mypass
mypass = decrypt('if_u_jailbreak_here_u_gay', crypted_data).decode('utf8')
file.close()
# decrypting e-mail and password
class forgot_password():
def forgot():
login = windows.login_entry.get()
toaddr = windows.email_entry.get()
encrypt_code = windows.encrypting.get()
with open(f'{path_take.main_path}/{login}_email.cfg', 'rb+') as file:
email_decrypted = decrypt(encrypt_code, file.read()).decode('utf8')
if email_decrypted == toaddr:
forgot_password.email(toaddr=toaddr, login=login)
else: showerror(title='LogIn', message='E-mail don`t correct! Try again!')
# if u forgot password, u can delete account
def email(toaddr, login):
code = randint(10000, 99999)
msg = MIMEMultipart()
msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = f"{code}. LogIn creating account"
body = f"{code}"
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(fromaddr, mypass)
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
def clickedd():
print(code2.get())
if code2.get() == body:
newWindow.destroy()
os.remove(f'{path_take.main_path}/{login}.cfg')
os.remove(f'{path_take.main_path}/{login}_email.cfg')
deleting_text.del_text(when='all')
else:
showerror(title='LogIn', message='code isnt correct')
newWindow = Toplevel(windows.window)
newWindow.title("LogIn code")
newWindow.geometry("200x200")
code2 = Entry(newWindow, width=10)
code2.grid(row=1)
button = Button(newWindow, text='Creating account', command=clickedd)
button.grid(row=2)
server.quit()
# send code for ur mail
class creating_account():
def email_creat(toaddr, login, password, encrypt_code):
code = randint(10000, 99999)
msg2 = MIMEMultipart()
msg2['From'] = fromaddr
msg2['To'] = toaddr
msg2['Subject'] = f"LogIn creating account"
body2 = f'''Your LogIn: {login}
Your password: {password}
Your decrypt phrase: {encrypt_code}
Thanks for using my app!
Made in Russia with love!'''
msg2.attach(MIMEText(body2, 'plain'))
text2 = msg2.as_string()
msg = MIMEMultipart()
msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = f"{code}. LogIn creating account"
body = f"{code}"
msg.attach(MIMEText(body, 'plain'))
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(fromaddr, mypass)
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
def clickedd():
print(code2.get())
if code2.get() == body:
newWindow.destroy()
server.sendmail(fromaddr, toaddr, text2)
server.quit()
creating_account.creating_account(login=login, password=password, encrypt_code=encrypt_code, toaddr=toaddr)
else:
showerror(title='LogIn', message='code isnt correct')
server.quit()
newWindow = Toplevel(windows.window)
newWindow.title("New window")
newWindow.geometry("200x200")
code2 = Entry(newWindow, width=10)
code2.grid(row=1)
button = Button(newWindow, text='Creating account', command=clickedd)
button.grid(row=2)
# creating account code for ur e-mail
def creating_account(login, password, encrypt_code, toaddr):
password2 = encrypt(encrypt_code, password)
if not os.path.isfile(f'{path_take.main_path}/{login}.cfg'):
with open(f'{path_take.main_path}/{login}.cfg', 'wb+') as file:
file.write(password2)
file.close()
showinfo(title='LogIn', message='Account created!')
else:
showerror(title='LogIn', message='Account already created!')
with open(f'{path_take.main_path}/{login}_email.cfg', 'wb+') as file:
toaddr2 = encrypt(encrypt_code, toaddr)
file.write(toaddr2)
file.close()
deleting_text.del_text(when='all')
# creating files with ur e-mail and password. All encrypted
class logging_account():
def email_log(toaddr, login, password, encrypt_code):
code = randint(10000, 99999)
msg = MIMEMultipart()
msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = f"{code}. LogIn creating account"
body = f"{code}"
msg.attach(MIMEText(body, 'plain'))
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(fromaddr, mypass)
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
server.quit()
def clickedd():
print(code2.get())
if code2.get() == body:
newWindow.destroy()
logging_account.loging(login=login, password=password, encrypt_code=encrypt_code)
else:
showerror(title='LogIn', message='code isnt correct')
# checking correct code
newWindow = Toplevel(windows.window)
newWindow.title("New windows.window")
newWindow.geometry("200x200")
# create windows.window for code
code2 = Entry(newWindow, width=10)
code2.grid(row=1)
button = Button(newWindow, text='Creating account', command=clickedd)
button.grid(row=2)
# login code for ur e-mail
def loging(login, password, encrypt_code):
try:
with open(f'{path_take.main_path}/{login}.cfg', 'rb+') as file:
password2 = decrypt(encrypt_code, file.read()).decode('utf8')
file.close()
if password == password2:
askokcancel(title='LogIn', message='LogIn succesful!')
deleting_text.del_text(when='all')
else:
showerror(title='LogIn', message='Password or login don`t correct. Try again!')
deleting_text.del_text(when='all')
except Exception as e:
print(e)
showerror(title='LogIn', message='Account don`t created!')
# log in function. u can use this for ur program
class deleting_text():
def del_text(when):
if when == 'login_entry':
windows.login_entry.delete(0, END)
elif when == 'password_entry':
windows.password_entry.delete(0, END)
elif when == 'encrypting':
windows.encrypting.delete(0, END)
elif when == 'email_entry':
windows.email_entry.delete(0, END)
elif when == 'all':
windows.login_entry.delete(0, END)
windows.password_entry.delete(0, END)
windows.encrypting.delete(0, END)
windows.email_entry.delete(0, END)
# delete text login, password, encrypt code and email
class buttons_treatment():
def clicked():
login = windows.windows.login_entry.get()
encrypt_code = windows.encrypting.get()
password = windows.password_entry.get()
toaddr = windows.email_entry.get()
logging_account.email_log(toaddr=toaddr, login=login, password=password, encrypt_code=encrypt_code)
# login button
def creating_account_def():
login = windows.login_entry.get()
password = windows.password_entry.get()
encrypt_code = windows.encrypting.get()
toaddr = windows.email_entry.get()
if login == ['mypass', 'fromaddr']:
showerror(title='LogIn', message='This login blocked!')
deleting_text.del_text(when='windows.login_entry')
else:
creating_account.email_creat(toaddr=toaddr, login=login, password=password, encrypt_code=encrypt_code)
# creating account button
def closed():
windows.windows.destroy()
# windows.window close button