From 7c2a0924ffcd2f5000d54fb448227e9b8d5bb80d Mon Sep 17 00:00:00 2001 From: Aevann1 Date: Fri, 24 Sep 2021 04:21:41 +0200 Subject: [PATCH] fsd --- files/classes/comment.py | 51 +------ files/helpers/alerts.py | 66 ++++------ files/routes/comments.py | 277 +++++++++++++++++++-------------------- files/routes/posts.py | 140 ++++++++++---------- files/routes/search.py | 4 +- files/routes/users.py | 21 +-- 6 files changed, 239 insertions(+), 320 deletions(-) diff --git a/files/classes/comment.py b/files/classes/comment.py index 71d992cd5..a8ff8652c 100644 --- a/files/classes/comment.py +++ b/files/classes/comment.py @@ -12,23 +12,12 @@ import time site = environ.get("DOMAIN").strip() -class CommentAux(Base): - - __tablename__ = "comments_aux" - - key_id = Column(Integer, primary_key=True) - id = Column(Integer, ForeignKey("comments.id")) - body = deferred(Column(String(10000))) - body_html = deferred(Column(String(20000))) - ban_reason = Column(String(256)) - class Comment(Base): __tablename__ = "comments" id = Column(Integer, primary_key=True) - comment_aux = relationship("CommentAux", lazy="joined", uselist=False, innerjoin=True, primaryjoin="Comment.id==CommentAux.id") author_id = Column(Integer, ForeignKey("users.id")) parent_submission = Column(Integer, ForeignKey("submissions.id")) created_utc = Column(Integer, default=0) @@ -41,25 +30,23 @@ class Comment(Base): is_approved = Column(Integer, default=0) level = Column(Integer, default=0) parent_comment_id = Column(Integer, ForeignKey("comments.id")) - over_18 = Column(Boolean, default=False) is_bot = Column(Boolean, default=False) is_pinned = Column(String) sentto=Column(Integer) - app_id = Column(Integer, ForeignKey("oauth_apps.id")) oauth_app = relationship("OauthApp", viewonly=True) + upvotes = Column(Integer, default=1) + downvotes = Column(Integer, default=0) + body = deferred(Column(String(10000))) + body_html = deferred(Column(String(20000))) + ban_reason = Column(String(256)) post = relationship("Submission", viewonly=True) flags = relationship("CommentFlag", lazy="dynamic", viewonly=True) author = relationship("User", primaryjoin="User.id==Comment.author_id") - - upvotes = Column(Integer, default=1) - downvotes = Column(Integer, default=0) - parent_comment = relationship("Comment", remote_side=[id], viewonly=True) child_comments = relationship("Comment", remote_side=[parent_comment_id], viewonly=True) - awards = relationship("AwardRelationship", viewonly=True) def __init__(self, *args, **kwargs): @@ -291,25 +278,6 @@ class Comment(Base): return data - @property - def body(self): - if self.comment_aux: return self.comment_aux.body - else: return "" - - @body.setter - def body(self, x): - self.comment_aux.body = x - g.db.add(self.comment_aux) - - @property - def body_html(self): - return self.comment_aux.body_html - - @body_html.setter - def body_html(self, x): - self.comment_aux.body_html = x - g.db.add(self.comment_aux) - def realbody(self, v): if self.post and self.post.club and not (v and v.paid_dues): return "

COUNTRY CLUB ONLY

" body = self.body_html @@ -335,15 +303,6 @@ class Comment(Base): return body - @property - def ban_reason(self): - return self.comment_aux.ban_reason - - @ban_reason.setter - def ban_reason(self, x): - self.comment_aux.ban_reason = x - g.db.add(self.comment_aux) - @lazy def collapse_for_user(self, v): diff --git a/files/helpers/alerts.py b/files/helpers/alerts.py index 80b7890a8..6c910c14c 100644 --- a/files/helpers/alerts.py +++ b/files/helpers/alerts.py @@ -21,19 +21,15 @@ def send_notification(vid, user, text): text_html = sanitize(text_html) new_comment = Comment(author_id=vid, - parent_submission=None, - distinguish_level=6, + parent_submission=None, + distinguish_level=6, + body=text, + body_html=text_html, ) g.db.add(new_comment) g.db.flush() - new_aux = CommentAux(id=new_comment.id, - body=text, - body_html=text_html, - ) - g.db.add(new_aux) - notif = Notification(comment_id=new_comment.id, user_id=uid) g.db.add(notif) @@ -45,18 +41,14 @@ def send_follow_notif(vid, user, text): text_html = sanitize(text_html) new_comment = Comment(author_id=NOTIFICATIONS_ACCOUNT, - parent_submission=None, - distinguish_level=6, + parent_submission=None, + distinguish_level=6, + body=text, + body_html=text_html, ) g.db.add(new_comment) g.db.flush() - new_aux = CommentAux(id=new_comment.id, - body=text, - body_html=text_html, - ) - g.db.add(new_aux) - notif = Notification(comment_id=new_comment.id, user_id=user, followsender=vid) @@ -68,18 +60,14 @@ def send_unfollow_notif(vid, user, text): text_html = sanitize(text_html) new_comment = Comment(author_id=NOTIFICATIONS_ACCOUNT, - parent_submission=None, - distinguish_level=6, + parent_submission=None, + distinguish_level=6, + body=text, + body_html=text_html, ) g.db.add(new_comment) g.db.flush() - new_aux = CommentAux(id=new_comment.id, - body=text, - body_html=text_html, - ) - g.db.add(new_aux) - notif = Notification(comment_id=new_comment.id, user_id=user, unfollowsender=vid) @@ -91,18 +79,14 @@ def send_block_notif(vid, user, text): text_html = sanitize(text_html) new_comment = Comment(author_id=NOTIFICATIONS_ACCOUNT, - parent_submission=None, - distinguish_level=6, + parent_submission=None, + distinguish_level=6, + body=text, + body_html=text_html, ) g.db.add(new_comment) g.db.flush() - new_aux = CommentAux(id=new_comment.id, - body=text, - body_html=text_html, - ) - g.db.add(new_aux) - notif = Notification(comment_id=new_comment.id, user_id=user, blocksender=vid) @@ -114,18 +98,14 @@ def send_unblock_notif(vid, user, text): text_html = sanitize(text_html) new_comment = Comment(author_id=NOTIFICATIONS_ACCOUNT, - parent_submission=None, - distinguish_level=6, + parent_submission=None, + distinguish_level=6, + body=text, + body_html=text_html, ) g.db.add(new_comment) g.db.flush() - new_aux = CommentAux(id=new_comment.id, - body=text, - body_html=text_html, - ) - g.db.add(new_aux) - notif = Notification(comment_id=new_comment.id, user_id=user, unblocksender=vid) @@ -144,12 +124,12 @@ def send_admin(vid, text): new_comment = Comment(author_id=vid, parent_submission=None, level=1, - sentto=0 + sentto=0, + body=text, + body_html=text_html, ) g.db.add(new_comment) g.db.flush() - new_aux = CommentAux(id=new_comment.id, body=text, body_html=text_html) - g.db.add(new_aux) admins = g.db.query(User).options(lazyload('*')).filter(User.admin_level > 0).all() for admin in admins: diff --git a/files/routes/comments.py b/files/routes/comments.py index 0b2fae8dc..089e99850 100644 --- a/files/routes/comments.py +++ b/files/routes/comments.py @@ -178,11 +178,11 @@ def api_comment(v): return {"error": reason}, 401 # check existing - existing = g.db.query(Comment).join(CommentAux).options(lazyload('*')).filter(Comment.author_id == v.id, + existing = g.db.query(Comment).options(lazyload('*')).filter(Comment.author_id == v.id, Comment.deleted_utc == 0, Comment.parent_comment_id == parent_comment_id, Comment.parent_submission == parent_submission, - CommentAux.body == body + Comment.body == body ).first() if existing: return {"error": f"You already made that comment: {existing.permalink}"}, 409 @@ -201,10 +201,9 @@ def api_comment(v): similar_comments = g.db.query(Comment ).options( lazyload('*') - ).join(Comment.comment_aux - ).filter( + ).filter( Comment.author_id == v.id, - CommentAux.body.op( + Comment.body.op( '<->')(body) < app.config["COMMENT_SPAM_SIMILAR_THRESHOLD"], Comment.created_utc > cutoff ).all() @@ -261,17 +260,6 @@ def api_comment(v): if badlink: return {"error": f"Remove the following link and try again: `{check_url}`. Reason: {badlink.reason}"}, 403 # create comment parent_id = parent_fullname.split("_")[1] - c = Comment(author_id=v.id, - parent_submission=parent_submission, - parent_comment_id=parent_comment_id, - level=level, - over_18=parent_post.over_18 or request.values.get("over_18","")=="true", - is_bot=is_bot, - app_id=v.client.application.id if v.client else None - ) - - g.db.add(c) - g.db.flush() if request.files.get("file") and request.headers.get("cf-ipcountry") != "T1": file=request.files["file"] @@ -285,29 +273,24 @@ def api_comment(v): body_html = sanitize(body_md) if len(body_html) > 20000: abort(400) - c_aux = CommentAux( - id=c.id, - body_html=body_html, - body=body[:10000] - ) - g.db.add(c_aux) + c = Comment(author_id=v.id, + parent_submission=parent_submission, + parent_comment_id=parent_comment_id, + level=level, + over_18=parent_post.over_18 or request.values.get("over_18","")=="true", + is_bot=is_bot, + app_id=v.client.application.id if v.client else None, + body_html=body_html, + body=body[:10000] + ) + + g.db.add(c) g.db.flush() - if 'pcmemes.net' in request.host and c_aux.body.lower().startswith("based"): + if 'pcmemes.net' in request.host and c.body.lower().startswith("based"): pill = re.match("based and (.{1,20}?)(-| )pilled", body, re.IGNORECASE) - c_based = Comment(author_id=BASEDBOT_ACCOUNT, - parent_submission=parent_submission, - distinguish_level=6, - parent_comment_id=c.id, - level=level+1, - is_bot=True, - ) - - g.db.add(c_based) - g.db.flush() - if level == 1: basedguy = get_account(c.post.author_id) else: basedguy = get_account(c.parent_comment.author_id) basedguy.basedcount += 1 @@ -319,57 +302,38 @@ def api_comment(v): body_md = CustomRenderer().render(mistletoe.Document(body2)) body_based_html = sanitize(body_md) - c_aux = CommentAux( - id=c_based.id, + + c_based = Comment(author_id=BASEDBOT_ACCOUNT, + parent_submission=parent_submission, + distinguish_level=6, + parent_comment_id=c.id, + level=level+1, + is_bot=True, body_html=body_based_html, body=body2 - ) - g.db.add(c_aux) + ) + + g.db.add(c_based) g.db.flush() n = Notification(comment_id=c_based.id, user_id=v.id) g.db.add(n) - if "rdrama" in request.host and "ivermectin" in c_aux.body.lower(): + if "rdrama" in request.host and "ivermectin" in c.body.lower(): c.is_banned = True c.ban_reason = "ToS Violation" g.db.add(c) - c_jannied = Comment(author_id=AUTOJANNY_ACCOUNT, - parent_submission=parent_submission, - distinguish_level=6, - parent_comment_id=c.id, - level=level+1, - is_bot=True, - ) - - g.db.add(c_jannied) - g.db.flush() - body2 = VAXX_MSG.format(username=v.username) body_md = CustomRenderer().render(mistletoe.Document(body2)) body_jannied_html = sanitize(body_md) - c_aux = CommentAux( - id=c_jannied.id, - body_html=body_jannied_html, - body=body2 - ) - g.db.add(c_aux) - g.db.flush() - n = Notification(comment_id=c_jannied.id, user_id=v.id) - g.db.add(n) - if v.agendaposter and "trans lives matter" not in c_aux.body_html.lower(): - c.is_banned = True - c.ban_reason = "ToS Violation" - - g.db.add(c) c_jannied = Comment(author_id=AUTOJANNY_ACCOUNT, parent_submission=parent_submission, @@ -377,23 +341,50 @@ def api_comment(v): parent_comment_id=c.id, level=level+1, is_bot=True, + body_html=body_jannied_html, + body=body2 ) g.db.add(c_jannied) g.db.flush() + + + n = Notification(comment_id=c_jannied.id, user_id=v.id) + g.db.add(n) + + if v.agendaposter and "trans lives matter" not in c.body_html.lower(): + + c.is_banned = True + c.ban_reason = "ToS Violation" + + g.db.add(c) + + body = AGENDAPOSTER_MSG.format(username=v.username) body_md = CustomRenderer().render(mistletoe.Document(body)) body_jannied_html = sanitize(body_md) - c_aux = CommentAux( - id=c_jannied.id, + + + + c_jannied = Comment(author_id=AUTOJANNY_ACCOUNT, + parent_submission=parent_submission, + distinguish_level=6, + parent_comment_id=c.id, + level=level+1, + is_bot=True, body_html=body_jannied_html, body=body - ) - g.db.add(c_aux) + ) + + g.db.add(c_jannied) g.db.flush() + + + + n = Notification(comment_id=c_jannied.id, user_id=v.id) g.db.add(n) @@ -407,27 +398,28 @@ def api_comment(v): g.db.add(c) if "rdrama" in request.host and len(body) >= 1000 and v.username != "Snappy" and "" not in body_html: - c2 = Comment(author_id=LONGPOSTBOT_ACCOUNT, - parent_submission=parent_submission, - parent_comment_id=c.id, - level=level+1, - is_bot=True, - ) - - g.db.add(c2) - g.db.flush() body = random.choice(LONGPOST_REPLIES) body = re.sub('([^\n])\n([^\n])', r'\1\n\n\2', body) body_md = CustomRenderer().render(mistletoe.Document(body)) body_html2 = sanitize(body_md) - c_aux = CommentAux( - id=c2.id, + + + + c2 = Comment(author_id=LONGPOSTBOT_ACCOUNT, + parent_submission=parent_submission, + parent_comment_id=c.id, + level=level+1, + is_bot=True, body_html=body_html2, body=body - ) - g.db.add(c_aux) + ) + + g.db.add(c2) g.db.flush() + + + n = Notification(comment_id=c2.id, user_id=v.id) g.db.add(n) @@ -438,80 +430,75 @@ def api_comment(v): if "rdrama" in request.host and random.random() < 0.001 and v.username != "Snappy" and v.username != "zozbot": + + body = "zoz" + body_md = CustomRenderer().render(mistletoe.Document(body)) + body_html2 = sanitize(body_md) + + + + c2 = Comment(author_id=1833, parent_submission=parent_submission, parent_comment_id=c.id, level=level+1, is_bot=True, + body_html=body_html2, + body=body ) g.db.add(c2) g.db.flush() - - body = "zoz" - body_md = CustomRenderer().render(mistletoe.Document(body)) - body_html2 = sanitize(body_md) - c_aux = CommentAux( - id=c2.id, - body_html=body_html2, - body=body - ) - g.db.add(c_aux) - g.db.flush() + + + n = Notification(comment_id=c2.id, user_id=v.id) g.db.add(n) + + body = "zle" + body_md = CustomRenderer().render(mistletoe.Document(body)) + body_html2 = sanitize(body_md) + + + c3 = Comment(author_id=1833, parent_submission=parent_submission, parent_comment_id=c2.id, level=level+2, is_bot=True, + body_html=body_html2, + body=body, ) g.db.add(c3) g.db.flush() + + + + + + - body = "zle" + body = "zozzle" body_md = CustomRenderer().render(mistletoe.Document(body)) body_html2 = sanitize(body_md) - c_aux = CommentAux( - id=c3.id, - body_html=body_html2, - body=body - ) - g.db.add(c_aux) - g.db.flush() - - - - c4 = Comment(author_id=1833, parent_submission=parent_submission, parent_comment_id=c3.id, level=level+3, is_bot=True, + body_html=body_html2, + body=body ) g.db.add(c4) g.db.flush() - - body = "zozzle" - body_md = CustomRenderer().render(mistletoe.Document(body)) - body_html2 = sanitize(body_md) - c_aux = CommentAux( - id=c4.id, - body_html=body_html2, - body=body - ) - g.db.add(c_aux) - g.db.flush() - - @@ -665,10 +652,9 @@ def edit_comment(cid, v): similar_comments = g.db.query(Comment ).options( lazyload('*') - ).join(Comment.comment_aux - ).filter( + ).filter( Comment.author_id == v.id, - CommentAux.body.op( + Comment.body.op( '<->')(body) < app.config["SPAM_SIMILARITY_THRESHOLD"], Comment.created_utc > cutoff ).all() @@ -717,29 +703,29 @@ def edit_comment(cid, v): g.db.add(c) + body = VAXX_MSG.format(username=v.username) + + body_md = CustomRenderer().render(mistletoe.Document(body)) + + body_jannied_html = sanitize(body_md) + + + c_jannied = Comment(author_id=AUTOJANNY_ACCOUNT, parent_submission=c.parent_submission, distinguish_level=6, parent_comment_id=c.id, level=c.level+1, is_bot=True, + body_html=body_jannied_html, + body=body ) g.db.add(c_jannied) g.db.flush() - body = VAXX_MSG.format(username=v.username) - body_md = CustomRenderer().render(mistletoe.Document(body)) - body_jannied_html = sanitize(body_md) - c_aux = CommentAux( - id=c_jannied.id, - body_html=body_jannied_html, - body=body - ) - g.db.add(c_aux) - g.db.flush() n = Notification(comment_id=c_jannied.id, user_id=v.id) g.db.add(n) @@ -751,29 +737,30 @@ def edit_comment(cid, v): g.db.add(c) - c_jannied = Comment(author_id=AUTOJANNY_ACCOUNT, - parent_submission=c.parent_submission, - distinguish_level=6, - parent_comment_id=c.id, - level=c.level+1, - is_bot=True, - ) - - g.db.add(c_jannied) - g.db.flush() body = AGENDAPOSTER_MSG.format(username=v.username) body_md = CustomRenderer().render(mistletoe.Document(body)) body_jannied_html = sanitize(body_md) - c_aux = CommentAux( - id=c_jannied.id, + + + + c_jannied = Comment(author_id=AUTOJANNY_ACCOUNT, + parent_submission=c.parent_submission, + distinguish_level=6, + parent_comment_id=c.id, + level=c.level+1, + is_bot=True, body_html=body_jannied_html, - body=body - ) - g.db.add(c_aux) + body=body, + ) + + g.db.add(c_jannied) g.db.flush() + + + n = Notification(comment_id=c_jannied.id, user_id=v.id) g.db.add(n) diff --git a/files/routes/posts.py b/files/routes/posts.py index cc20cb535..319fc9659 100644 --- a/files/routes/posts.py +++ b/files/routes/posts.py @@ -287,6 +287,13 @@ def edit_post(pid, v): g.db.add(p) + body = VAXX_MSG.format(username=v.username) + + body_md = CustomRenderer().render(mistletoe.Document(body)) + + body_jannied_html = sanitize(body_md) + + c_jannied = Comment(author_id=AUTOJANNY_ACCOUNT, parent_submission=p.id, level=1, @@ -294,24 +301,15 @@ def edit_post(pid, v): is_bot=True, app_id=None, is_pinned=True, - distinguish_level=6 + distinguish_level=6, + body_html=body_jannied_html, + body=body ) g.db.add(c_jannied) g.db.flush() - body = VAXX_MSG.format(username=v.username) - body_md = CustomRenderer().render(mistletoe.Document(body)) - - body_jannied_html = sanitize(body_md) - c_aux = CommentAux( - id=c_jannied.id, - body_html=body_jannied_html, - body=body - ) - g.db.add(c_aux) - g.db.flush() n = Notification(comment_id=c_jannied.id, user_id=v.id) g.db.add(n) @@ -323,6 +321,12 @@ def edit_post(pid, v): g.db.add(p) + body = AGENDAPOSTER_MSG.format(username=v.username) + + body_md = CustomRenderer().render(mistletoe.Document(body)) + + body_jannied_html = sanitize(body_md) + c_jannied = Comment(author_id=AUTOJANNY_ACCOUNT, parent_submission=p.id, level=1, @@ -330,24 +334,14 @@ def edit_post(pid, v): is_bot=True, app_id=None, is_pinned=True, - distinguish_level=6 + distinguish_level=6, + body_html=body_jannied_html, + body=body ) g.db.add(c_jannied) g.db.flush() - body = AGENDAPOSTER_MSG.format(username=v.username) - - body_md = CustomRenderer().render(mistletoe.Document(body)) - - body_jannied_html = sanitize(body_md) - c_aux = CommentAux( - id=c_jannied.id, - body_html=body_jannied_html, - body=body - ) - g.db.add(c_aux) - g.db.flush() n = Notification(comment_id=c_jannied.id, user_id=v.id) g.db.add(n) @@ -941,49 +935,21 @@ def submit_post(v): g.db.flush() - if "rdrama" in request.host and "ivermectin" in new_post_aux.body_html.lower(): + if "rdrama" in request.host and "ivermectin" in new_post.body_html.lower(): new_post.is_banned = True new_post.ban_reason = "ToS Violation" g.db.add(new_post) - c_jannied = Comment(author_id=AUTOJANNY_ACCOUNT, - parent_submission=new_post.id, - level=1, - over_18=False, - is_bot=True, - app_id=None, - is_pinned=True, - distinguish_level=6 - ) - - g.db.add(c_jannied) - g.db.flush() body = VAXX_MSG.format(username=v.username) body_md = CustomRenderer().render(mistletoe.Document(body)) body_jannied_html = sanitize(body_md) - c_aux = CommentAux( - id=c_jannied.id, - body_html=body_jannied_html, - body=body - ) - g.db.add(c_aux) - g.db.flush() - n = Notification(comment_id=c_jannied.id, user_id=v.id) - g.db.add(n) - if v.agendaposter and "trans lives matter" not in new_post_aux.body_html.lower(): - - new_post.is_banned = True - new_post.ban_reason = "ToS Violation" - - g.db.add(new_post) - c_jannied = Comment(author_id=AUTOJANNY_ACCOUNT, parent_submission=new_post.id, level=1, @@ -991,40 +957,55 @@ def submit_post(v): is_bot=True, app_id=None, is_pinned=True, - distinguish_level=6 + distinguish_level=6, + body_html=body_jannied_html, + body=body, ) g.db.add(c_jannied) g.db.flush() + + n = Notification(comment_id=c_jannied.id, user_id=v.id) + g.db.add(n) + + + if v.agendaposter and "trans lives matter" not in new_post.body_html.lower(): + + new_post.is_banned = True + new_post.ban_reason = "ToS Violation" + + g.db.add(new_post) + body = AGENDAPOSTER_MSG.format(username=v.username) body_md = CustomRenderer().render(mistletoe.Document(body)) body_jannied_html = sanitize(body_md) - c_aux = CommentAux( - id=c_jannied.id, - body_html=body_jannied_html, - body=body - ) - g.db.add(c_aux) - g.db.flush() - n = Notification(comment_id=c_jannied.id, user_id=v.id) - g.db.add(n) - if "rdrama" in request.host or (new_post.url and not "weebzone" in request.host and not "marsey.tech" in request.host): - c = Comment(author_id=261, - distinguish_level=6, + + + c_jannied = Comment(author_id=AUTOJANNY_ACCOUNT, parent_submission=new_post.id, level=1, over_18=False, is_bot=True, app_id=None, - ) + is_pinned=True, + distinguish_level=6, + body_html=body_jannied_html, + body=body, + ) - g.db.add(c) + g.db.add(c_jannied) g.db.flush() + + + n = Notification(comment_id=c_jannied.id, user_id=v.id) + g.db.add(n) + + if "rdrama" in request.host or (new_post.url and not "weebzone" in request.host and not "marsey.tech" in request.host): new_post.comment_count = 1 g.db.add(new_post) @@ -1043,13 +1024,24 @@ def submit_post(v): gevent.spawn(archiveorg, new_post.url) body_md = CustomRenderer().render(mistletoe.Document(body)) body_html = sanitize(body_md) - c_aux = CommentAux( - id=c.id, + + + c = Comment(author_id=261, + distinguish_level=6, + parent_submission=new_post.id, + level=1, + over_18=False, + is_bot=True, + app_id=None, body_html=body_html, - body=body - ) - g.db.add(c_aux) + body=body, + ) + + g.db.add(c) g.db.flush() + + + n = Notification(comment_id=c.id, user_id=v.id) g.db.add(n) g.db.flush() diff --git a/files/routes/search.py b/files/routes/search.py index fa21d45fa..859c87887 100644 --- a/files/routes/search.py +++ b/files/routes/search.py @@ -208,11 +208,11 @@ def searchcomments(v): - comments = g.db.query(Comment.id).options(lazyload('*')).filter(Comment.parent_submission != None).join(Comment.comment_aux) + comments = g.db.query(Comment.id).options(lazyload('*')).filter(Comment.parent_submission != None) if 'q' in criteria: words=criteria['q'].split() - words=[CommentAux.body.ilike('%'+x+'%') for x in words] + words=[Comment.body.ilike('%'+x+'%') for x in words] words=tuple(words) comments=comments.filter(*words) diff --git a/files/routes/users.py b/files/routes/users.py index 21155eefa..6e4e50cd8 100644 --- a/files/routes/users.py +++ b/files/routes/users.py @@ -224,9 +224,9 @@ def message2(v, username): message = request.values.get("message", "")[:1000].strip() # check existing - existing = g.db.query(Comment).join(CommentAux).options(lazyload('*')).filter(Comment.author_id == v.id, + existing = g.db.query(Comment).options(lazyload('*')).filter(Comment.author_id == v.id, Comment.sentto == user.id, - CommentAux.body == message, + Comment.body == message, ).first() if existing: return redirect('/notifications?messages=true') @@ -239,14 +239,14 @@ def message2(v, username): new_comment = Comment(author_id=v.id, parent_submission=None, level=1, - sentto=user.id + sentto=user.id, + body=text, + body_html=text_html, ) g.db.add(new_comment) g.db.flush() - new_aux = CommentAux(id=new_comment.id, body=text, body_html=text_html) - g.db.add(new_aux) notif = Notification(comment_id=new_comment.id, user_id=user.id) g.db.add(notif) @@ -284,9 +284,9 @@ def messagereply(v): message = re.sub('([^\n])\n([^\n])', r'\1\n\n\2', message) # check existing - existing = g.db.query(Comment).join(CommentAux).options(lazyload('*')).filter(Comment.author_id == v.id, + existing = g.db.query(Comment).options(lazyload('*')).filter(Comment.author_id == v.id, Comment.sentto == user.id, - CommentAux.body == message, + Comment.body == message, ).first() if existing: if existing.parent_comment_id: return redirect(f'/notifications?messages=true#comment-{existing.parent_comment_id}') @@ -298,12 +298,13 @@ def messagereply(v): parent_submission=None, parent_comment_id=id, level=parent.level + 1, - sentto=user.id + sentto=user.id, + body=message, + body_html=text_html, ) g.db.add(new_comment) g.db.flush() - new_aux = CommentAux(id=new_comment.id, body=message, body_html=text_html) - g.db.add(new_aux) + notif = Notification(comment_id=new_comment.id, user_id=user.id) g.db.add(notif)