diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..44a2913 --- /dev/null +++ b/__init__.py @@ -0,0 +1,3 @@ +# __init__.py +__version__ = '1.0.3' +__author__ = 'YaFlay' \ No newline at end of file diff --git a/__main__.py b/__main__.py new file mode 100644 index 0000000..25edaa8 --- /dev/null +++ b/__main__.py @@ -0,0 +1,4 @@ +# github.com/yaflay +import tkinter as tk +from commands import * + diff --git a/commands.py b/commands.py new file mode 100644 index 0000000..78cff7b --- /dev/null +++ b/commands.py @@ -0,0 +1,232 @@ +import os, smtplib +from random import randint +from tkinter import * +from simplecrypt import encrypt, decrypt +from tkinter.messagebox import showerror, showinfo, askokcancel +from email.mime.multipart import MIMEMultipart +from email.mime.text import MIMEText + +class path_take(): + main_path = os.path.abspath(__file__).replace(os.path.basename(__file__), '') + 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 = entry_labels_etc.login_entry.get() + toaddr = entry_labels_etc.email_entry.get() + encrypt_code = entry_labels_etc.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 +class email(): + def email(toaddr, login, type_msg, password, encrypt_code): + code = randint(10000, 99999) + + if type_msg == "debug": + print("Debuging....") + elif type_msg == 'forgot': + msg = MIMEMultipart() + msg['From'] = fromaddr + msg['To'] = toaddr + msg['Subject'] = f"{code}. LogIn creating account" + body = f"Your code: {code} \nIf you don`t asked this code, ignore the email." + + + + elif type_msg == 'registration' or 'login': + msg = MIMEMultipart() + msg['From'] = fromaddr + msg['To'] = toaddr + msg['Subject'] = f"{code}. LogIn creating account" + body = f"{code}" + + messageReg = MIMEMultipart() + messageReg['From'] = fromaddr + messageReg['To'] = toaddr + messageReg['Subject'] = f"LogIn creating account" + + + bodyReg = f'''Your LogIn: {login} +Your password: {password} +Your decrypt phrase: {encrypt_code} +Thanks for using my app! +Made in Russia with love!''' + messageReg.attach(MIMEText(bodyReg, 'plain')) + textReg = messageReg.as_string() + else: + showerror('Oh no!', 'Oh no! Creator idiot! Send this program in my Telegram: @bebra_YaFlay') + server = smtplib.SMTP('smtp.gmail.com', 587) + server.starttls() + server.login(fromaddr, mypass) + + text = msg.as_string() + + server.sendmail(fromaddr, toaddr, text) + + def command(): + if type_msg == 'forgot': + if getCode.get() in 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') + server.quit() + else: + showerror(title='LogIn', message='Code isnt correct') + elif type_msg == 'registration': + if getCode.get() in body: + newWindow.destroy() + server.sendmail(fromaddr, toaddr, textReg) + server.quit() + creating_account.creating_account(login=login, password=password, encrypt_code=encrypt_code, toaddr=toaddr) + else: + showerror(title='LogIn', message='code isnt correct') + elif type_msg == 'login': + if getCode.get() in body: + newWindow.destroy() + logging_account.loging(login=login, password=password, encrypt_code=encrypt_code) + else: + showerror(title='LogIn', message='Code isnt correct') + + + newWindow = Toplevel(window) + newWindow.title("LogIn code") + newWindow.geometry("200x200") + getCode = Entry(newWindow, width=10) + getCode.grid(row=1) + button = Button(newWindow, text='Creating account', command=command) + button.grid(row=2) + server.quit() +# send code for ur mail +class creating_account(): + 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 loging(login, password, encrypt_code): + try: + with open(f'{path_take.main_path}/{login}.cfg', 'rb+') as file: + passwordDecrypted = decrypt(encrypt_code, file.read()).decode('utf8') + file.close() + if password == passwordDecrypted: + 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': + entry_labels_etc.login_entry.delete(0, END) + elif when == 'password_entry': + entry_labels_etc.password_entry.delete(0, END) + elif when == 'encrypting': + entry_labels_etc.encrypting.delete(0, END) + elif when == 'email_entry': + entry_labels_etc.email_entry.delete(0, END) + elif when == 'all': + entry_labels_etc.login_entry.delete(0, END) + entry_labels_etc.password_entry.delete(0, END) + entry_labels_etc.encrypting.delete(0, END) + entry_labels_etc.email_entry.delete(0, END) + # delete text login, password, encrypt code and email +class buttons_treatment(): + + def clicked(): + login = entry_labels_etc.login_entry.get() + encrypt_code = entry_labels_etc.encrypting.get() + password = entry_labels_etc.password_entry.get() + toaddr = entry_labels_etc.email_entry.get() + email.email(toaddr=toaddr, login=login, password=password, encrypt_code=encrypt_code, type_msg='login') + # login button + def creating_account_def(): + login = entry_labels_etc.login_entry.get() + password = entry_labels_etc.password_entry.get() + encrypt_code = entry_labels_etc.encrypting.get() + toaddr = entry_labels_etc.email_entry.get() + + if login == ['mypass', 'fromaddr', 'debug']: + showerror(title='LogIn', message='This login blocked!') + deleting_text.del_text(when='login_entry') + else: + email.email(toaddr=toaddr, login=login, password=password, encrypt_code=encrypt_code, type_msg='registration') + # creating account button + def closed(): + window.destroy() + # window close button + +class entry_labels_etc(): + login_label = Label(text='Login:') + password_label = Label(text='Password:') + encrypt_code_label = Label(text='En(De)crypt code:') + email_label = Label(text='Your e-mail:') + # labels for entry + login_entry = Entry(width=20)#, window ) + # login entry + password_entry = Entry(width=20, show='*')#,window) + # password entrywith seeked symbols + encrypting = Entry( width=20, show='*')#,window) + # encrypt code with seeked symbols + email_entry = Entry( width=20)#,window) + # email entry + create_account_button = Button( text='Create account', command=buttons_treatment.creating_account_def)#,window) + # create account button + login_button = Button( text='LogIn', command=buttons_treatment.clicked)#,window) + # log in button + forgot_but = Button(text='Forgot password?', command=forgot_password.forgot)#,window) + # forgot password button + close = Button(text='Close', command=buttons_treatment.closed)#,window) + # close app button + # buttons and entry +window = Tk() +window.title('LogIn App') +window.geometry('415x180') +# window create +entry_labels_etc.email_entry.grid(column=2, row=3) +entry_labels_etc.password_entry.grid(column=2, row=1) +entry_labels_etc.encrypting.grid(column=2, row=2) +entry_labels_etc.login_entry.grid(column=2,row=0) +# entry +entry_labels_etc.create_account_button.grid(row=1, column=3) +entry_labels_etc.close.grid(column=3, row=3) +entry_labels_etc.forgot_but.grid(row=2, column=3) +entry_labels_etc.login_button.grid(row=0, column=3) +# buttons +entry_labels_etc.login_label.grid(column=1, row=0) +entry_labels_etc.password_label.grid(column=1, row=1) +entry_labels_etc.encrypt_code_label.grid(column=1, row=2) +entry_labels_etc.email_label.grid(column=1, row=3) +# labels +# grid for buttons and entry +window.mainloop() +# Thanks for watching my shit-code! +# If u seeked a bug, write me in Telegram: @bebra_yaflay or in VK(russian facebook and instagram): https://vk.com/bebra_yaflay \ No newline at end of file diff --git a/fromaddr.cfg b/fromaddr.cfg new file mode 100644 index 0000000..a2b1616 Binary files /dev/null and b/fromaddr.cfg differ diff --git a/mypass.cfg b/mypass.cfg new file mode 100644 index 0000000..169244f Binary files /dev/null and b/mypass.cfg differ