diff --git a/README.md b/README.md
index 5aefd61..406158e 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,6 @@ This is a *very* basic notes-taking program. It uses python with flask and pickl

## Future features, todo
-* Allow for notes modification and deletion
* A squirrel ascii picture somewhere in the page :3
* Less ugly colors and font
* Better syntax coloring and markdown rendering in general
diff --git a/squipnotes.png b/squipnotes.png
index 1d9d793..4f551b0 100644
Binary files a/squipnotes.png and b/squipnotes.png differ
diff --git a/src/app.py b/src/app.py
index af16603..f05e0ea 100755
--- a/src/app.py
+++ b/src/app.py
@@ -1,13 +1,13 @@
#!/usr/bin/env python3
#coding: utf-8
-from flask import Flask, render_template, Markup, request
+from flask import Flask, render_template, Markup, request, redirect, url_for
import markdown
#!---------- squiNotes.py ----------
# My notes-taking app
#-----------------------------!
-
+#CLASS
class note:
def __init__(self, createtime: int, modtime: int, title: str, text: str):
"""
@@ -36,22 +36,17 @@ class note:
{Markup.escape(self.title)}
Created : {self.rendertime(self.createtime)} Modified : {self.rendertime(self.modtime)}
- {markdown.markdown(self.text)}
"""
+ {markdown.markdown(self.text)}
+
+ """
return Markup(rendered)
def __str__(self):
return self.title
-def catnotes(notelist: list):
- """
- Concatenate a list of notes into a str.
- """
- final = ""
- for note in notelist:
- final += note.flaskrender()
-
- return final
-
+#FUNC
def dumpnotes(notes):
"""
Get our notes list and save them as pickle to notes.pickle
@@ -77,6 +72,46 @@ def getnotes():
return notes
+def catnotes(notelist: list):
+ """
+ Concatenate a list of notes into a str.
+ """
+ final = ""
+ for note in notelist:
+ final += note.flaskrender()
+
+ return final
+
+def delnote(timestamp: int):
+ """
+ Delete note in our pickle file for which the createtime corresponds to timestamp
+ """
+ notes = getnotes()
+ for note in notes:
+ if int(note.createtime) == int(timestamp):
+ notes.remove(note)
+ dumpnotes(notes)
+ return True
+ return False
+
+def findnote(createtime: int):
+ """
+ Find a note in our pickle file of notes by its createtime
+ """
+ notes = getnotes()
+ for note in notes:
+ if note.createtime == createtime:
+ return note
+
+def addnote(mynote: note):
+ """
+ Add a note to our notes pickle file (and sort it).
+ """
+ notes = getnotes()
+ notes.append(mynote)
+ notes = sorted(notes, key=lambda note: note.modtime, reverse=True)
+ dumpnotes(notes)
+
#----------! MAIN
@@ -84,22 +119,49 @@ app = Flask(__name__)
@app.route('/', methods=['GET'])
def render():
+ #Delete has been clicked
+ try:
+ todelete = request.args.get("delete")
+ delnote(int(todelete))
+ except Exception as e:
+ pass
+
+ #Edit has been clicked
+ try:
+ toedit = request.args.get("edit")
+ if toedit is not None:
+ return redirect(url_for('edit', notenumber=toedit))
+ except Exception as e:
+ pass
+
return render_template("homepage.html", nr = catnotes(getnotes()))
+#Edition mode
+@app.route('/edit', methods=['GET', 'POST'])
+def edit():
+ import time
+ if request.method == "GET":
+ notenumber = request.args.get("notenumber")
+ mynote = findnote(int(notenumber))
+ delnote(int(notenumber))
+ return render_template("edit.html", notenumber=notenumber, ntitle=mynote.title, ntext=mynote.text)
+
+#Basic route, allows note creation
@app.route('/', methods=['POST'])
def homepage():
import time
- notetitle = request.form['title']
- notetext = request.form['text']
- rightnow = int(time.time())
- newnote = note(createtime=rightnow, modtime=rightnow, title=notetitle, text=notetext)
- notes = getnotes()
- notes.append(newnote)
- notes = sorted(notes, key=lambda note: note.modtime, reverse=True)
- dumpnotes(notes)
+ #New note
+ try:
+ notetitle = request.form['title']
+ notetext = request.form['text']
+ rightnow = int(time.time())
+ newnote = note(createtime=rightnow, modtime=rightnow, title=notetitle, text=notetext)
+ addnote(newnote)
+ except:
+ pass
return render_template("homepage.html", nr = catnotes(getnotes()))
if __name__ == '__main__':
- app.run()
+ app.run(host="0.0.0.0")
diff --git a/src/notes.pickle b/src/notes.pickle
index 99f2adc..d7986a6 100644
Binary files a/src/notes.pickle and b/src/notes.pickle differ
diff --git a/src/requirements.txt b/src/requirements.txt
index 8c6a035..b7e737c 100644
--- a/src/requirements.txt
+++ b/src/requirements.txt
@@ -1 +1,2 @@
flask>=2.0.3
+markdown>=3.3.5
diff --git a/src/templates/edit.html b/src/templates/edit.html
new file mode 100644
index 0000000..ce414b6
--- /dev/null
+++ b/src/templates/edit.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+ squip_notes
+
+
+
+ $ ~/squip_notes
+
+
+
+ You are editing {{ notenumber }}
+
+
+ {{ nr }}
+
+
+
+
+
+