secret-notes

A "secret" note taking app written in Python with Tkinter.
git clone git://git.nomxz.net/secret-notes.git
Log | Files | Refs

commit 55ebc706efa2673a283cb518aed7962b953d8d49
parent 7297bb9603b1fc21945ff04251c1359ef0c95b87
Author: Ramon Asuncion <asuncionbatista@gmail.com>
Date:   Wed, 16 Jun 2021 23:05:57 -0400

New items on the TODO list and updated variables.

Diffstat:
Msecretnotes.py | 160++++++++++++++++++++++++++++++++++++++++---------------------------------------
1 file changed, 81 insertions(+), 79 deletions(-)

diff --git a/secretnotes.py b/secretnotes.py @@ -3,7 +3,7 @@ from tkinter import messagebox import os # Django and Flask are the most popular tools used to write an application server in Python -# TODO: Create a random directory name? +# TODO: Create a random directory name? (privacy) or upload it to a vps and call request for access # TODO: Destroy the labels after shown for a few seconds. # TODO: Save notes into directory of username. # TODO: If notes file already exist do not overwrite those notes. @@ -12,10 +12,12 @@ import os # TODO: Change the place to where you write text to 'Text' input instead of textvariable. # TODO: Start working on protecting the password through hashing. # TODO: Add image of an eye for password viewer -# TODO: Do not allow certain characters to become usernames (regex) +# TODO: Do not allow certain characters to become usernames (regex), such at dotfiles +# TODO: I should not be able to spam the register/login/save button and keep getting the label to show up. +# TODO: File naming system is shit I need to fix that... Sometimes it says the file_name is not defined like wtf???? +# TODO: Once I create a new file I need to somehow "refresh" the file system because it cant locate the newly made user... I have to restart the program to do that. # Thread to run the sleep command on the text? Make it sleep? And then it disappers. Need to look more into threads. - def register_user(): username_info = username.get() password_info = password.get() @@ -32,10 +34,10 @@ def register_user(): file.write(password_info) file.close() - Label(screen1, text="Registration successful!", fg="#36BB00", font=("Lato", 12)).pack() + Label(register_screen, text="Registration successful!", fg="#36BB00", font=("Lato", 12)).pack() except FileExistsError: - Label(screen1, text="User Already Created", fg="#F18300", font=("Lato", 12)).pack() + Label(register_screen, text="User Already Created", fg="#F18300", font=("Lato", 12)).pack() # TODO: Make this exception unnecessary maybe by creating the file instead of trying to chdir when its not found? except FileNotFoundError: pass @@ -51,22 +53,22 @@ def save_file(): data.write(get_notes) data.close() - Label(screen7, text="Text File Saved", fg="#36BB00", font=("Lato", 12)).pack() + Label(notes_screen, text="Text File Saved", fg="#36BB00", font=("Lato", 12)).pack() def login_completed(): - global screen6 - screen6 = Toplevel(main_screen) - screen6.title("Dashboard") - screen6.geometry("350x250") + global dashboard_screen + dashboard_screen = Toplevel(main_screen) + dashboard_screen.title("Dashboard") + dashboard_screen.geometry("350x250") welcome_user = user_verify.get() - Label(screen6, text="Welcome to the dashboard " + welcome_user + "!").pack() - Button(screen6, text="Create secret note", command=create_secret_notes).pack() - Button(screen6, text="View secret note", command=view_notes).pack() - Button(screen6, text="Delete secret note", command=delete_notes).pack() + Label(dashboard_screen, text="Welcome to the dashboard " + welcome_user + "!").pack() + Button(dashboard_screen, text="Create secret note", command=create_secret_notes).pack() + Button(dashboard_screen, text="View secret note", command=view_notes).pack() + Button(dashboard_screen, text="Delete secret note", command=delete_notes).pack() - screen6.protocol("WM_DELETE_WINDOW", close_gui_windows) + dashboard_screen.protocol("WM_DELETE_WINDOW", close_gui_windows) # WM_DELETE_WINDOW def close_gui_windows(): @@ -74,83 +76,83 @@ def close_gui_windows(): # TODO: When person signout of their account it needs to exit out of the folder (testing --> not the most thought out way) - # screen6.destory() + # dashboard_screen.destory() # TODO: Go back to the main directory folder. ("..") can be risky due to it being access to full location where the folder is located. os.chdir("./") def delete_notes(): global delete_file - screen10 = Toplevel(main_screen) - screen10.title("Delete") - screen10.geometry("350x250") + register_screen0 = Toplevel(main_screen) + register_screen0.title("Delete") + register_screen0.geometry("350x250") list_all_files = os.listdir() - Label(screen10, text="Choose a filename to delete: ").pack() - Label(screen10, text=list_all_files).pack() + Label(register_screen0, text="Choose a filename to delete: ").pack() + Label(register_screen0, text=list_all_files).pack() delete_file = StringVar() - Entry(screen10, textvariable=delete_file).pack() - Button(screen10, command=delete_notes_message, text="OK").pack() + Entry(register_screen0, textvariable=delete_file).pack() + Button(register_screen0, command=delete_notes_message, text="OK").pack() def delete_notes_message(): delete = delete_file.get() os.remove(delete) - screen11 = Toplevel(main_screen) - screen11.title("Notes") - screen11.geometry("350x250") + register_screen1 = Toplevel(main_screen) + register_screen1.title("Notes") + register_screen1.geometry("350x250") - Label(screen11, text=delete+" has been removed").pack() + Label(register_screen1, text=delete+" has been removed").pack() def create_secret_notes(): global create_file_name global create_notes - global screen7 + global notes_screen create_file_name = StringVar() create_notes = StringVar() - screen7 = Toplevel(main_screen) - screen7.title("Make Notes") - screen7.geometry("350x250") + notes_screen = Toplevel(main_screen) + notes_screen.title("Make Notes") + notes_screen.geometry("350x250") - Label(screen7, text="Enter a filename: ").pack() - Entry(screen7, textvariable=create_file_name).pack() - Label(screen7, text="Enter secret notes: ").pack() - Entry(screen7, textvariable=create_notes).pack() - Button(screen7, text="Save", command=save_file).pack() + Label(notes_screen, text="Enter a filename: ").pack() + Entry(notes_screen, textvariable=create_file_name).pack() + Label(notes_screen, text="Enter secret notes: ").pack() + Entry(notes_screen, textvariable=create_notes).pack() + Button(notes_screen, text="Save", command=save_file).pack() def choose_files(): global file_name - screen8 = Toplevel(main_screen) - screen8.title("Info") - screen8.geometry("350x250") + open_file_screen = Toplevel(main_screen) + open_file_screen.title("Info") + open_file_screen.geometry("350x250") list_all_files = os.listdir() - Label(screen8, text="Choose a filename below: ").pack() - Label(screen8, text=list_all_files).pack() + Label(open_file_screen, text="Choose a filename below: ").pack() + Label(open_file_screen, text=list_all_files).pack() file_name = StringVar() - Entry(screen8, textvariable=file_name).pack() - Button(screen8, command=view_notes, text="OK").pack() + Entry(open_file_screen, textvariable=file_name).pack() + Button(open_file_screen, command=view_notes, text="OK").pack() def view_notes(): - screen9 = Toplevel(main_screen) - screen9.title("Notes") - screen9.geometry("350x250") + read_file_screen = Toplevel(main_screen) + read_file_screen.title("Notes") + read_file_screen.geometry("350x250") read_notes = open(file_name.get(), "r") data = read_notes.read() - Label(screen9, text=data).pack() + Label(read_file_screen, text=data).pack() def login_verify(): get_username = user_verify.get() @@ -166,42 +168,42 @@ def login_verify(): if get_password in verify: login_completed() else: - Label(screen2, text="Password Error!", fg="#E81500", font=("Lato", 12)).pack() + Label(login_screen, text="Password Error!", fg="#E81500", font=("Lato", 12)).pack() else: - Label(screen2, text="User not found!", fg="#E81500", font=("Lato", 12)).pack() + Label(login_screen, text="User not found!", fg="#E81500", font=("Lato", 12)).pack() def login_page(): - global screen2 + global login_screen global entry_username1 global entry_password1 global user_verify global pass_verify - screen2 = Toplevel(main_screen) - screen2.title("Login") - screen2.geometry("350x250") - screen2.resizable(0,0) + login_screen = Toplevel(main_screen) + login_screen.title("Login") + login_screen.geometry("350x250") + login_screen.resizable(0,0) - Label(screen2, text="Please enter your login details").pack() - Label(screen2, text="").pack() + Label(login_screen, text="Please enter your login details").pack() + Label(login_screen, text="").pack() user_verify = StringVar() pass_verify = StringVar() - Label(screen2, text="Username").pack() - entry_username1 = Entry(screen2, textvariable=user_verify) + Label(login_screen, text="Username").pack() + entry_username1 = Entry(login_screen, textvariable=user_verify) entry_username1.pack() - Label(screen2, text="Password").pack() - entry_password1 = Entry(screen2, textvariable=pass_verify) + Label(login_screen, text="Password").pack() + entry_password1 = Entry(login_screen, textvariable=pass_verify) entry_password1.pack() - Label(screen2, text="").pack() + Label(login_screen, text="").pack() entry_password1.config(show="*") - Button(screen2, text="Show password!", height="1", width="12", command=lambda: password_show("show_login_password")).pack() - Button(screen2, text="Hide password!", height="1", width="12", command=lambda: password_show("hide_login_password")).pack() - Button(screen2, text="Login", height="1", width="10", command=login_verify).pack() + Button(login_screen, text="Show password!", height="1", width="12", command=lambda: password_show("show_login_password")).pack() + Button(login_screen, text="Hide password!", height="1", width="12", command=lambda: password_show("hide_login_password")).pack() + Button(login_screen, text="Login", height="1", width="10", command=login_verify).pack() def password_show(button_click): if button_click == "show_login_password": @@ -214,35 +216,35 @@ def password_show(button_click): entry_password.config(show="*") def register_page(): - global screen1 + global register_screen global username global password global entry_username global entry_password - screen1 = Toplevel(main_screen) - screen1.title("Register") - screen1.geometry("350x250") - screen1.resizable(0,0) + register_screen = Toplevel(main_screen) + register_screen.title("Register") + register_screen.geometry("350x250") + register_screen.resizable(0,0) username = StringVar() password = StringVar() - Label(screen1, text="Please enter your details").pack() - Label(screen1, text="").pack() - Label(screen1, text="Username").pack() - entry_username = Entry(screen1, textvariable=username) + Label(register_screen, text="Please enter your details").pack() + Label(register_screen, text="").pack() + Label(register_screen, text="Username").pack() + entry_username = Entry(register_screen, textvariable=username) entry_username.pack() - Label(screen1, text="Password").pack() - entry_password = Entry(screen1, textvariable=password) + Label(register_screen, text="Password").pack() + entry_password = Entry(register_screen, textvariable=password) entry_password.pack() - Label(screen1, text="").pack() + Label(register_screen, text="").pack() entry_password.config(show="*") - Button(screen1, text="Show password!", height="1", width="12", command=lambda: password_show("show_register_password")).pack() - Button(screen1, text="Hide password!", height="1", width="12", command=lambda: password_show("hide_register_password")).pack() - Button(screen1, text="Register", height="1", width="10", command=register_user).pack() + Button(register_screen, text="Show password!", height="1", width="12", command=lambda: password_show("show_register_password")).pack() + Button(register_screen, text="Hide password!", height="1", width="12", command=lambda: password_show("hide_register_password")).pack() + Button(register_screen, text="Register", height="1", width="10", command=register_user).pack() def screen():