große weiterentwicklung

This commit is contained in:
Michael S. 2023-11-19 21:07:48 +01:00
parent 46c444990e
commit 23036dd928
7 changed files with 104 additions and 75 deletions

View file

@ -22,18 +22,33 @@ def crypt(text, key_hash):
def o(note,mode): def o(note,mode):
return open(f"{n_path}{note}.txt",mode,encoding="utf-8") return open(f"{n_path}{note}.txt",mode,encoding="utf-8")
def nlist(): def nlist():
string = ""
notizen = [] notizen = []
if os.listdir(n_path) == []: if os.listdir(n_path) == []:
print("Noch keine Notizen") string += "Noch keine Notizen\n"
else: else:
print("Deine Notizen:") string += "Deine Notizen:\n"
for a in os.listdir(n_path): for a in os.listdir(n_path):
notizen.append(f"{a}"[:-4]) notizen.append(f"{a}"[:-4])
for n in notizen: for n in notizen:
print(f" - {n}:") string += f" - {n}:\n"
datei = o(n,"r") datei = o(n,"r")
print(crypt(datei.read() ,passwort)) string += crypt(datei.read() ,passwort)+"\n"
datei.close() datei.close()
return [string,notizen]
def neditadd(notiz=str,text=str):
if not notiz+".txt" in os.listdir(n_path):
if a_note+".txt" in os.listdir(n_path):
back = "Notiz gibt es schon."
return back
back = "neue Notiz angelegt."
else:
back = "Erfolgreich gespeichert"
datei = o(notiz,"w")
datei.write(crypt(text, passwort))
datei.close()
return back
## variablen ## variablen
passwort = input("Passwort:") passwort = input("Passwort:")
@ -49,7 +64,7 @@ if not os.path.exists(f"{n_path}n{tzeichen}"):
n_path += "n"+tzeichen n_path += "n"+tzeichen
## start ## start
print(""" Wikkommen zu n print(""" Willkommen zu n
ACHTUNG: Falls du dein Passwort falsch eingibst überprüfe ACHTUNG: Falls du dein Passwort falsch eingibst überprüfe
erst ob deine Notizen richtig angezeigt werden sonnst falls erst ob deine Notizen richtig angezeigt werden sonnst falls
@ -60,7 +75,7 @@ ACHTUNG: Es kann seine das einige Zeichen wie Umlaute falsch
Was möchtest du machen?: add, edit, read, list, help, exit. Was möchtest du machen?: add, edit, read, list, help, exit.
""") """)
nlist() print(nlist()[0])
## programmschleife ## programmschleife
while 1: while 1:
@ -92,13 +107,8 @@ ACHTUNG: Es kann seine Das einige Zeichen wie Umlaute falsch
angezeigt werden können.""") angezeigt werden können.""")
if action == "edit": #edit if action == "edit": #edit
a_note = input("Notiz Titel:") a_note = input("Notiz Titel:")
if not a_note+".txt" in os.listdir(n_path):
print("Notiz nicht gefunden es wird eine neue angelegt.")
datei = o(a_note,"w")
text = input("bitte neuen Text einfügen:") text = input("bitte neuen Text einfügen:")
datei.write(crypt(text, passwort)) print(neditadd(a_note,text))
datei.close()
print("Erfolgreich gespeichert")
if action == "read": #read if action == "read": #read
a_note = input("Notiz Titel:") a_note = input("Notiz Titel:")
if a_note+".txt" in os.listdir(n_path): if a_note+".txt" in os.listdir(n_path):
@ -109,14 +119,8 @@ ACHTUNG: Es kann seine Das einige Zeichen wie Umlaute falsch
print("Notiz gibts nicht.") print("Notiz gibts nicht.")
if action == "add": #add if action == "add": #add
a_note = input("Notiz Titel:") a_note = input("Notiz Titel:")
if a_note+".txt" in os.listdir(n_path):
print("Notiz gibt es schon.")
else:
datei = o(a_note,"w")
text = input("bitte neuen Text einfügen:") text = input("bitte neuen Text einfügen:")
datei.write(crypt(text , passwort)) print(neditadd(a_note,text))
datei.close()
print("Erfolgreich gespeichert")
if action == "delete": #delete if action == "delete": #delete
a_note = input("Notiz Titel:") a_note = input("Notiz Titel:")
if a_note+".txt" in os.listdir(n_path): if a_note+".txt" in os.listdir(n_path):
@ -128,7 +132,7 @@ ACHTUNG: Es kann seine Das einige Zeichen wie Umlaute falsch
else: else:
print("Notiz gibt es nicht.") print("Notiz gibt es nicht.")
if action == "list": #list if action == "list": #list
nlist() print(nlist()[0])
if action == "debug": #debug if action == "debug": #debug
print(f"""Debug Informationen: print(f"""Debug Informationen:
n_path={n_path} n_path={n_path}

1
notizen/n/test.txt Normal file
View file

@ -0,0 +1 @@
UQ VY Y[ZS

View file

@ -1,5 +1,6 @@
import hashlib,os import hashlib,os
import tkinter as tk import tkinter as tk
from tkinter import messagebox
#from tkinter import ttk #from tkinter import ttk
## funktionen ## funktionen
@ -24,12 +25,33 @@ def crypt(text, key_hash):
def o(note,mode): def o(note,mode):
return open(f"{n_path}{note}.txt",mode,encoding="utf-8") return open(f"{n_path}{note}.txt",mode,encoding="utf-8")
def nlist(): def nlist():
string = ""
notizen = []
if os.listdir(n_path) == []: if os.listdir(n_path) == []:
print("Noch keine Notizen") string += "Noch keine Notizen\n"
else: else:
print("Deine Notizen:") string += "Deine Notizen:\n"
for a in os.listdir(n_path): for a in os.listdir(n_path):
print(f" - {a}"[:-4]) notizen.append(f"{a}"[:-4])
for n in notizen:
string += f" - {n}:\n"
datei = o(n,"r")
string += crypt(datei.read() ,passwort)+"\n"
datei.close()
return [string,notizen]
def neditadd(notiz=str,text=str):
if not notiz+".txt" in os.listdir(n_path):
if a_note+".txt" in os.listdir(n_path):
back = "Notiz gibt es schon."
return back
back = "neue Notiz angelegt."
else:
back = "Erfolgreich gespeichert"
datei = o(notiz,"w")
datei.write(crypt(text, passwort))
datei.close()
return back
class tkf : class tkf :
def close_w() : def close_w() :
@ -38,24 +60,40 @@ class tkf :
w_welcome.destroy() w_welcome.destroy()
passwort = sha512(passwort) passwort = sha512(passwort)
def nlist(): def refresh_list():
global n_path notiz_list.set(nlist()[0])
if os.listdir(n_path) == []: def notiz_auswahl():
print("hallo") w_auswahl = tk.Tk()
l_mnotes = tk.Label(w_main, text="Noch keine Notizen") l_wtauswahl = tk.Label(w_auswahl, text="Notiz:")
else: l_wtauswahl.pack()
notes = "deine notizen:" tkf.dropdown(nlist()[1],w_auswahl)
for a in os.listdir(n_path):
notes += "\n"+f" - {a}"[:-4] def edit_notiz(title):
l_mnotes = tk.Label(text=notes) notiz = o(title,"r")
l_mnotes.pack() w_editnotiz = tk.Tk()
##############################lab.config
l_wttitle = tk.Label(w_editnotiz, text="Titel:")
l_wtitle = tk.Entry(w_editnotiz)
l_wtitle.insert(0,title)
l_wtinhalt = tk.Label(w_editnotiz, text="Inhalt:")
l_winhalt = tk.Entry(w_editnotiz)
l_winhalt.insert(0,notiz.read())
l_button_save = tk.Button(w_editnotiz, text="Save" ,command=tkf.close_w)
l_button_cancel = tk.Button(w_editnotiz, text="Abbrechen" ,command=w_editnotiz.destroy)
l_wttitle.pack()
l_wtitle.pack()
l_wtinhalt.pack()
l_winhalt.pack()
l_button_save.pack()
l_button_cancel.pack()
l_button_save.pack(fill="x")
l_button_cancel.pack(fill="x")
w_editnotiz.mainloop()
def help(): def help():
w_popup = tk.Tk() messagebox.showinfo("help", """Hilfe:
w_popup.title("help")
l_pop = tk.Label(w_popup, text="""Hilfe:
edit = Bearbeite eine Notiz. edit = Bearbeite eine Notiz.
read = Zeige eine Notiz an. read = Zeige eine Notiz an.
add = Erstelle eine Notiz. add = Erstelle eine Notiz.
@ -66,12 +104,8 @@ debug = Zeigt Debug Infos.
exit = Beenden. exit = Beenden.
Bei Fehlern Bitte an Megamichi melden.""") Bei Fehlern Bitte an Megamichi melden.""")
l_pop.pack()
w_popup.mainloop()
def secure(): def secure():
w_popup = tk.Tk() messagebox.showinfo("sicherheit","""Zur Sicherheit:
l_pop = tk.Label(w_popup, text="""Zur Sicherheit:
Es wir ein SHA-512 Hash aus dein Passwort erstellt. Es wir ein SHA-512 Hash aus dein Passwort erstellt.
Und mit deinen Notizen und den auf die richtige Länge Und mit deinen Notizen und den auf die richtige Länge
angepassten Hash wir ein One-Time-Pad angewendet. angepassten Hash wir ein One-Time-Pad angewendet.
@ -82,20 +116,13 @@ du eine neue Notiz erstellst wird sie anderst verschlüsselt.
ACHTUNG: Es kann seine Das einige Zeichen wie Umlaute falsch ACHTUNG: Es kann seine Das einige Zeichen wie Umlaute falsch
angezeigt werden können.""") angezeigt werden können.""")
l_pop.pack()
w_popup.mainloop()
def debug(): def debug():
w_popup = tk.Tk() messagebox.showinfo("Debug",f"""Debug Informationen:
l_pop = tk.Label(w_popup, text=f"""Debug Informationen:
n_path={n_path} n_path={n_path}
pas_hash={passwort}""") pas_hash={passwort}""")
l_pop.pack() def dropdown(liste,fenster):
w_popup.mainloop() dropdown = tk.OptionMenu(fenster, selected_option, liste)
dropdown.pack()
## variablen ## variablen
@ -106,10 +133,10 @@ tzeichen = os.sep
n_path += tzeichen n_path += tzeichen
if not os.path.exists(f"{n_path}n{tzeichen}"): if not os.path.exists(f"{n_path}n{tzeichen}"):
os.makedirs(f"{n_path}n{tzeichen}") os.makedirs(f"{n_path}n{tzeichen}")
print("Notizenverzeichniss angelegt.") messagebox.showinfo("Verzeichniss","Notizenverzeichniss angelegt.")
n_path += "n"+tzeichen n_path += "n"+tzeichen
tkf.edit_notiz("test")
# Welcome screen # Welcome screen
w_welcome = tk.Tk() w_welcome = tk.Tk()
@ -126,12 +153,12 @@ ACHTUNG: Es kann seine das einige Zeichen wie Umlaute falsch
Passwort:""") Passwort:""")
l_wpassword = tk.Entry(w_welcome) l_wpassword = tk.Entry(w_welcome)
selected_option = tk.StringVar()
l_wbutton = tk.Button(w_welcome, text="Start" ,command=tkf.close_w) l_wbutton = tk.Button(w_welcome, text="Start" ,command=tkf.close_w)
l_wtext.pack() l_wtext.pack()
l_wpassword.pack() l_wpassword.pack()
l_wbutton.pack(fill="x") l_wbutton.pack(fill="x")
w_welcome.mainloop() w_welcome.mainloop()
# main fenster # main fenster
w_main = tk.Tk() w_main = tk.Tk()
@ -144,13 +171,10 @@ w_main.config(menu=menu)
nmenu = tk.Menu(menu, tearoff=0) nmenu = tk.Menu(menu, tearoff=0)
menu.add_cascade(label="n", menu=nmenu) menu.add_cascade(label="n", menu=nmenu)
nmenu.add_command(label="New", command=tkf.nlist) #nmenu.add_command(label="New", command=)
nmenu.add_command(label="refresh", command=tkf.nlist) nmenu.add_command(label="refresh", command=tkf.refresh_list)
nmenu.add_command(label="edit", command=tkf.nlist) nmenu.add_command(label="edit", command=tkf.edit_notiz)
nmenu.add_command(label="read", command=tkf.nlist) #nmenu.add_command(label="delete", command=tkf.nlist)
nmenu.add_command(label="delete", command=tkf.nlist)
nmenu.add_command(label="delete", command=tkf.nlist)
moremenu = tk.Menu(menu, tearoff=0) moremenu = tk.Menu(menu, tearoff=0)
menu.add_cascade(label="more", menu=moremenu) menu.add_cascade(label="more", menu=moremenu)
@ -158,17 +182,13 @@ moremenu.add_command(label="secure", command=tkf.secure)
moremenu.add_command(label="help", command=tkf.help) moremenu.add_command(label="help", command=tkf.help)
moremenu.add_command(label="debug", command=tkf.debug) moremenu.add_command(label="debug", command=tkf.debug)
if os.listdir(n_path) == []:
print("hallo") notiz_list = tk.StringVar()
l_mnotes = tk.Label(w_main, text="Noch keine Notizen")
else:
notes = "deine notizen:"
for a in os.listdir(n_path):
notes += "\n"+f" - {a}"[:-4]
l_mnotes = tk.Label(text=notes)
l_mnotes.pack()
notiz_list.set(nlist()[0])
l_nlist = tk.Label(w_main, textvariable=notiz_list)
l_nlist.pack()
w_welcome.mainloop() w_welcome.mainloop()

2
notizen_w/n/banane.txt Normal file
View file

@ -0,0 +1,2 @@
^S
Q T^R WZ

1
notizen_w/n/dodel.txt Normal file
View file

@ -0,0 +1 @@
ZQ XZYZYW

1
notizen_w/n/test.txt Normal file
View file

@ -0,0 +1 @@
UQ VY Y[ZS

BIN
notizen_w/n/wurst.txt Normal file

Binary file not shown.