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