From 2589f1e270b4cc2cc8bb83ffd0d770feaedffc72 Mon Sep 17 00:00:00 2001 From: schneefux Date: Tue, 7 Jun 2016 18:06:40 +0200 Subject: allow editing --- app.py | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'app.py') diff --git a/app.py b/app.py index 502f3c2..54af5ba 100644 --- a/app.py +++ b/app.py @@ -2,6 +2,7 @@ import markdown import hashlib import os +import re from config import config from flask import ( Flask, @@ -158,9 +159,11 @@ class dbProxy(object): ret_joke['mine'] = joke['user'] == user # convert md->html if needed if joke['format'] == 'markdown': - ret_joke['text'] = Markup(markdown.markdown(joke['text'], extensions=['markdown.extensions.nl2br'], output_format="html5", safe_mode="remove")) # TODO safe_mode deprecated - if joke['format'] == 'html': + ret_joke['html'] = Markup(markdown.markdown(joke['text'], extensions=['markdown.extensions.nl2br'], output_format="html5", safe_mode="remove")) # TODO safe_mode deprecated ret_joke['text'] = joke['text'] + if joke['format'] == 'html': + ret_joke['html'] = joke['text'] + ret_joke['text'] = re.sub('<[^<]+?>', '', joke['text']) ret_joke['reports'] = self.c.execute(votewhere + "joke=? AND type='report'", (joke['id'],)).fetchone()['COUNT(*)'] # actual scoring @@ -225,6 +228,10 @@ class dbProxy(object): self.c.execute("INSERT INTO " + self.prefix + "_jokes(text, format, user) VALUES(?, 'markdown', ?)", (text, user)) self.conn.commit() + def updateJoke(self, text, objectId): + self.c.execute("UPDATE " + self.prefix + "_jokes SET text=? WHERE id=?", (text, objectId)) + self.conn.commit() + def removeJoke(self, objectId, user): self.c.execute("INSERT INTO " + self.prefix + "_votes(joke, user, type) VALUES(?, ?, 'delete')", (objectId, user)) self.conn.commit() @@ -298,6 +305,15 @@ def submit(): db().addJoke(text, userid()) return redirect('/page/' + page) +@app.route('/edit', methods=['POST']) +def edit(): + text = request.form['text'] + page = request.form['redirpage'] + objectId = int(request.form['id']) + if objectId in db().getUserJokes(userid()): + db().updateJoke(text, objectId) + return redirect('/page/' + page) + @app.route('/upvote', methods=['POST']) def upvote(): objectId = int(request.form['id']) -- cgit v1.3.1