diff --git a/files/routes/comments.py b/files/routes/comments.py index 197cc0ee2..262dc2bfe 100644 --- a/files/routes/comments.py +++ b/files/routes/comments.py @@ -26,13 +26,13 @@ from files.__main__ import app, cache, limiter def _mark_comment_as_read(cid, vid): db = db_session() - notif = db.query(Notification).filter_by(comment_id=cid, user_id=vid, read=False).one_or_none() + notif = db.query(Notification).options(load_only(Notification.read)).filter_by(comment_id=cid, user_id=vid, read=False).one_or_none() - if notif: + if notif and not notif.read: notif.read = True db.add(notif) + db.commit() - db.commit() db.close() stdout.flush() diff --git a/files/routes/posts.py b/files/routes/posts.py index f7fcee3af..81ce08585 100644 --- a/files/routes/posts.py +++ b/files/routes/posts.py @@ -33,7 +33,7 @@ from files.__main__ import app, limiter, redis_instance def _add_post_view(pid): db = db_session() - p = db.get(Post, pid) + p = db.query(Post).filter_by(id=pid).options(load_only(Post.views)).one() p.views += 1 db.add(p) @@ -290,11 +290,11 @@ def thumbnail_thread(pid:int, vid:int): else: return f"{post_url}/{fragment_url}" - p = db.get(Post, pid) + p = db.query(Post).filter_by(id=pid).options(load_only(Post.url)).one() if not p or not p.url: time.sleep(5) - p = db.get(Post, pid) + p = db.query(Post).filter_by(id=pid).options(load_only(Post.url)).one() if not p or not p.url: return @@ -391,7 +391,8 @@ def thumbnail_thread(pid:int, vid:int): for chunk in image_req.iter_content(1024): file.write(chunk) - v = db.get(User, vid) + v = db.query(User).filter_by(id=vid).options(load_only(User.id, User.patron)).one() + url = process_image(name, v, resize=99, uploader_id=p.author_id, db=db) if url: p.thumburl = url diff --git a/files/routes/settings.py b/files/routes/settings.py index 8f19da616..7aa5397ef 100644 --- a/files/routes/settings.py +++ b/files/routes/settings.py @@ -809,7 +809,8 @@ def settings_song_change_mp3(v): def _change_song_youtube(vid, id): db = db_session() - v = db.get(User, vid) + + v = db.query(User).filter_by(id=vid).options(load_only(User.song)).one() if v.song and path.isfile(f"/songs/{v.song}.mp3") and db.query(User).filter_by(song=v.song).count() == 1: os.remove(f"/songs/{v.song}.mp3") diff --git a/files/routes/users.py b/files/routes/users.py index 362eb8cb5..351d45643 100644 --- a/files/routes/users.py +++ b/files/routes/users.py @@ -29,7 +29,8 @@ from files.__main__ import app, cache, limiter def _add_profile_view(vid, uid): db = db_session() - view = db.query(ViewerRelationship).filter_by(viewer_id=vid, user_id=uid).one_or_none() + view = db.query(ViewerRelationship).options(load_only(ViewerRelationship.viewer_id)).filter_by(viewer_id=vid, user_id=uid).one_or_none() + if view: view.last_view_utc = int(time.time()) else: view = ViewerRelationship(viewer_id=vid, user_id=uid) db.add(view)