diff options
author | Lukas Fleischer <lfleischer@archlinux.org> | 2017-04-23 12:46:48 +0200 |
---|---|---|
committer | Lukas Fleischer <lfleischer@archlinux.org> | 2017-04-23 18:43:26 +0200 |
commit | 016b40f99d679f0787f7c8a5f61f4a411b6c3632 (patch) | |
tree | 587e6326208d2b241a4f719e6db55b765b92df4b /aurweb | |
parent | 4abde895a5b579fb798e062806c8fef2289f0d8f (diff) | |
download | aur-016b40f99d679f0787f7c8a5f61f4a411b6c3632.tar.gz aur-016b40f99d679f0787f7c8a5f61f4a411b6c3632.tar.xz |
Render comments when storing them in the database
Instead of converting package comments from plain text to HTML code when
they are displayed, do the conversion when the comment is posted and
store the rendered result in the database. The conversion itself is done
by a Python script which uses Bleach for sanitizing the text.
Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
Diffstat (limited to 'aurweb')
-rwxr-xr-x | aurweb/scripts/rendercomment.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/aurweb/scripts/rendercomment.py b/aurweb/scripts/rendercomment.py new file mode 100755 index 00000000..593cd36a --- /dev/null +++ b/aurweb/scripts/rendercomment.py @@ -0,0 +1,35 @@ +#!/usr/bin/python3 + +import sys +import bleach + +import aurweb.db + + +def get_comment(conn, commentid): + cur = conn.execute('SELECT Comments FROM PackageComments WHERE ID = ?', + [commentid]) + return cur.fetchone()[0] + + +def save_rendered_comment(conn, commentid, html): + conn.execute('UPDATE PackageComments SET RenderedComment = ? WHERE ID = ?', + [html, commentid]) + + +def main(): + commentid = int(sys.argv[1]) + + conn = aurweb.db.Connection() + + html = get_comment(conn, commentid) + html = html.replace('\n', '<br>') + html = bleach.clean(html, tags=['br']) + save_rendered_comment(conn, commentid, html) + + conn.commit() + conn.close() + + +if __name__ == '__main__': + main() |