antispam: sanity check
parent
79e6d237c1
commit
84d9ed6655
|
@ -385,6 +385,24 @@ def execute_blackjack(v, target, body, type):
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
def execute_antispam_duplicate_comment_check(v:User, body_html:str):
|
||||||
|
'''
|
||||||
|
Sanity check for newfriends
|
||||||
|
'''
|
||||||
|
if v.id in ANTISPAM_BYPASS_IDS or v.admin_level: return
|
||||||
|
if v.age >= NOTIFICATION_SPAM_AGE_THRESHOLD: return
|
||||||
|
if len(body_html) < 16: return
|
||||||
|
if body_html == '!wordle': return # wordle
|
||||||
|
compare_time = int(time.time()) - 60 * 60 * 24
|
||||||
|
comment = g.db.query(Comment.id).filter(Comment.body_html == body_html,
|
||||||
|
Comment.created_utc >= compare_time).first()
|
||||||
|
if not comment: return
|
||||||
|
v.ban(reason="Spamming.", days=0.0)
|
||||||
|
send_repeatable_notification(v.id, "Your account has been banned **permanently** for the following reason:\n\n> Too much spam!")
|
||||||
|
g.db.add(v)
|
||||||
|
g.db.commit()
|
||||||
|
abort(403, "Too much spam!")
|
||||||
|
|
||||||
def execute_antispam_comment_check(body:str, v:User):
|
def execute_antispam_comment_check(body:str, v:User):
|
||||||
if v.id in ANTISPAM_BYPASS_IDS: return
|
if v.id in ANTISPAM_BYPASS_IDS: return
|
||||||
if len(body) <= COMMENT_SPAM_LENGTH_THRESHOLD: return
|
if len(body) <= COMMENT_SPAM_LENGTH_THRESHOLD: return
|
||||||
|
|
|
@ -217,6 +217,7 @@ def comment(v):
|
||||||
or (SITE == 'pcmemes.net' and v.id == SNAPPY_ID))
|
or (SITE == 'pcmemes.net' and v.id == SNAPPY_ID))
|
||||||
|
|
||||||
execute_antispam_comment_check(body, v)
|
execute_antispam_comment_check(body, v)
|
||||||
|
execute_antispam_duplicate_comment_check(v, body_html)
|
||||||
|
|
||||||
if len(body_html) > COMMENT_BODY_HTML_LENGTH_LIMIT: abort(400)
|
if len(body_html) > COMMENT_BODY_HTML_LENGTH_LIMIT: abort(400)
|
||||||
|
|
||||||
|
|
|
@ -218,12 +218,7 @@ def submit_contact(v):
|
||||||
body = body.strip()
|
body = body.strip()
|
||||||
body_html = sanitize(body)
|
body_html = sanitize(body)
|
||||||
|
|
||||||
existing = g.db.query(Comment.id).filter(Comment.author_id == v.id,
|
execute_antispam_duplicate_comment_check(v, body_html)
|
||||||
Comment.parent_submission == None,
|
|
||||||
Comment.level == 1,
|
|
||||||
Comment.sentto == 2,
|
|
||||||
Comment.body_html == body_html).first()
|
|
||||||
if existing: abort(409, f"You already sent that message")
|
|
||||||
|
|
||||||
new_comment = Comment(author_id=v.id,
|
new_comment = Comment(author_id=v.id,
|
||||||
parent_submission=None,
|
parent_submission=None,
|
||||||
|
|
Loading…
Reference in New Issue