diff --git a/ruqqus/routes/comments.py b/ruqqus/routes/comments.py index 311a62885..6d7800c03 100644 --- a/ruqqus/routes/comments.py +++ b/ruqqus/routes/comments.py @@ -581,47 +581,50 @@ def api_comment(v): + if not shadowbanned: + # queue up notification for parent author + notify_users = set() + + for x in g.db.query(Subscription.user_id).filter_by(submission_id=c.parent_submission).all(): + notify_users.add(x) + + if parent.author.id != v.id: notify_users.add(parent.author.id) - # queue up notification for parent author - notify_users = set() - - for x in g.db.query(Subscription.user_id).filter_by(submission_id=c.parent_submission).all(): - notify_users.add(x) - - if parent.author.id != v.id: notify_users.add(parent.author.id) + soup = BeautifulSoup(body_html, features="html.parser") + mentions = soup.find_all("a", href=re.compile("^/@(\w+)")) + for mention in mentions: + username = mention["href"].split("@")[1] - soup = BeautifulSoup(body_html, features="html.parser") - mentions = soup.find_all("a", href=re.compile("^/@(\w+)")) - for mention in mentions: - username = mention["href"].split("@")[1] + user = g.db.query(User).filter_by(username=username).first() - user = g.db.query(User).filter_by(username=username).first() + if user: + if v.any_block_exists(user): + continue + if user.id != v.id: + notify_users.add(user.id) - if user: - if v.any_block_exists(user): - continue - if user.id != v.id: - notify_users.add(user.id) + for x in notify_users: + n = Notification(comment_id=c.id, user_id=x) + g.db.add(n) + try: g.db.flush() + except: g.db.rollback() - for x in notify_users: - n = Notification(comment_id=c.id, user_id=x) - g.db.add(n) - try: g.db.flush() - except: g.db.rollback() - - if parent.author.id != v.id: - beams_client.publish_to_interests( - interests=[str(parent.author.id)], - publish_body={ - 'web': { - 'notification': { - 'title': f'New reply by @{v.username}', - 'body': c.body, - 'deep_link': f'https://rdrama.net{c.permalink}?context=5#context', + if parent.author.id != v.id: + beams_client.publish_to_interests( + interests=[str(parent.author.id)], + publish_body={ + 'web': { + 'notification': { + 'title': f'New reply by @{v.username}', + 'body': c.body, + 'deep_link': f'https://rdrama.net{c.permalink}?context=5#context', + }, + }, }, - }, - }, - ) + ) + + + # create auto upvote vote = CommentVote(user_id=v.id,