From 3c5e2c945537f4d8c968b6a53066e7bb20d7c8ee Mon Sep 17 00:00:00 2001
From: Marco Rebhan
Date: Mon, 20 Jun 2022 23:01:42 +0200
Subject: [PATCH] Include message text in off-site mentions
---
files/helpers/offsitementions.py | 20 ++++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
diff --git a/files/helpers/offsitementions.py b/files/helpers/offsitementions.py
index 445fb31464..4e45f71bef 100644
--- a/files/helpers/offsitementions.py
+++ b/files/helpers/offsitementions.py
@@ -6,6 +6,7 @@ import files.helpers.const as const
from files.classes.user import User
from files.classes.comment import Comment
from files.classes.notifications import Notification
+from files.helpers.sanitize import sanitize
# https://api.pushshift.io/meta provides key server_ratelimit_per_minute
# At time of writing, the ratelimit is 120 req/min. We get nowhere near this
@@ -38,23 +39,30 @@ def get_mentions(queries):
+ f'?html_decode=true&q={query}&size=1', timeout=5).json()['data']
except: break
- for i in data:
+ for i in data:
# Special case: PokemonGoRaids says 'Marsey' a lot unrelated to us.
if i['subreddit'] == 'PokemonGoRaids': continue
- mentions.append(i['permalink'])
+ mentions.append({
+ 'permalink': i['permalink'],
+ 'text': i['body' if kind == 'comment' else 'title'],
+ })
return mentions
def notify_mentions(send_to, mentions, mention_str='site mention'):
for m in mentions:
- notif_text = f'New {mention_str}: ' \
- f'https://old.reddit.com{m}?context=89
'
+ f'https://old.reddit.com{permalink}?context=89
' \
+ f'{text}
'
existing_comment = g.db.query(Comment.id).filter_by(
- author_id=const.NOTIFICATIONS_ID,
- parent_submission=None,
+ author_id=const.NOTIFICATIONS_ID,
+ parent_submission=None,
body_html=notif_text).one_or_none()
if existing_comment: continue