forked from rDrama/rDrama
1
0
Fork 0

much better chud award logic

master
Aevann 2023-03-22 23:39:25 +02:00
parent a4de71456b
commit f78cd322d1
8 changed files with 20 additions and 23 deletions

View File

@ -454,8 +454,3 @@ class Comment(Base):
body += '</span>' body += '</span>'
return body return body
@property
@lazy
def complies_with_chud(self):
return self.author.phrase_regex.search(self.body_html.lower())

View File

@ -359,8 +359,3 @@ class Submission(Base):
@lazy @lazy
def active_flags(self, v): def active_flags(self, v):
return len(self.filtered_flags(v)) return len(self.filtered_flags(v))
@property
@lazy
def complies_with_chud(self):
return self.author.phrase_regex.search(self.body_html.lower())

View File

@ -1211,8 +1211,3 @@ class User(Base):
def can_see_my_shit(self): def can_see_my_shit(self):
v = g.v v = g.v
return not self.shadowbanned or (v and (v.id == self.id or v.can_see_shadowbanned)) return not self.shadowbanned or (v and (v.id == self.id or v.can_see_shadowbanned))
@property
@lazy
def phrase_regex(self):
return re.compile(f"<p>[^<>]*{self.agendaposter_phrase}[^<>]*<\/p>(?![^<]*<\/)")

View File

@ -617,3 +617,15 @@ def validate_css(css):
return False, f"The domain '{domain}' is not allowed, please use one of these domains\n\n{approved_embed_hosts}." return False, f"The domain '{domain}' is not allowed, please use one of these domains\n\n{approved_embed_hosts}."
return True, "" return True, ""
def complies_with_chud(obj):
soup=BeautifulSoup(obj.body_html.lower(), 'lxml')
tags = soup.html.body.find_all('p', recursive=False)
for x in tags:
if obj.author.agendaposter_phrase in str(x.find(text=True, recursive=False)):
return True
return False

View File

@ -1306,7 +1306,7 @@ def remove_post(post_id, v):
def approve_post(post_id, v): def approve_post(post_id, v):
post = get_post(post_id) post = get_post(post_id)
if post.author.id == v.id and post.author.agendaposter and post.sub != 'chudrama' and not post.complies_with_chud: if post.author.id == v.id and post.author.agendaposter and post.sub != 'chudrama' and not complies_with_chud(post):
abort(400, "You can't bypass the chud award!") abort(400, "You can't bypass the chud award!")
if post.is_banned: if post.is_banned:
@ -1540,7 +1540,7 @@ def remove_comment(c_id, v):
def approve_comment(c_id, v): def approve_comment(c_id, v):
comment = get_comment(c_id) comment = get_comment(c_id)
if comment.author.id == v.id and comment.author.agendaposter and not (comment.parent_submission and comment.post.sub == 'chudrama') and not comment.complies_with_chud: if comment.author.id == v.id and comment.author.agendaposter and not (comment.parent_submission and comment.post.sub == 'chudrama') and not complies_with_chud(comment):
abort(400, "You can't bypass the chud award!") abort(400, "You can't bypass the chud award!")
if comment.is_banned: if comment.is_banned:

View File

@ -279,7 +279,7 @@ def comment(v:User):
if c.level == 1: c.top_comment_id = c.id if c.level == 1: c.top_comment_id = c.id
else: c.top_comment_id = parent.top_comment_id else: c.top_comment_id = parent.top_comment_id
if post_target.id not in ADMIGGER_THREADS and v.agendaposter and not v.marseyawarded and not (posting_to_submission and post_target.sub == 'chudrama') and not c.complies_with_chud: if post_target.id not in ADMIGGER_THREADS and v.agendaposter and not v.marseyawarded and not (posting_to_submission and post_target.sub == 'chudrama') and not complies_with_chud(c):
c.is_banned = True c.is_banned = True
c.ban_reason = "AutoJanny" c.ban_reason = "AutoJanny"
g.db.add(c) g.db.add(c)
@ -674,7 +674,7 @@ def edit_comment(cid, v):
execute_blackjack(v, c, c.body, "comment") execute_blackjack(v, c, c.body, "comment")
execute_under_siege(v, c, c.body, "comment") execute_under_siege(v, c, c.body, "comment")
if not (c.parent_submission and c.post.id in ADMIGGER_THREADS) and v.agendaposter and not v.marseyawarded and not (c.parent_submission and c.post.sub == 'chudrama') and not c.complies_with_chud: if not (c.parent_submission and c.post.id in ADMIGGER_THREADS) and v.agendaposter and not v.marseyawarded and not (c.parent_submission and c.post.sub == 'chudrama') and not complies_with_chud(c):
abort(403, f'You have to include "{v.agendaposter_phrase}" in your comment!') abort(403, f'You have to include "{v.agendaposter_phrase}" in your comment!')

View File

@ -656,7 +656,7 @@ def submit_post(v:User, sub=None):
for x in notify_users: for x in notify_users:
add_notif(cid, x, text, pushnotif_url=p.permalink) add_notif(cid, x, text, pushnotif_url=p.permalink)
if v.agendaposter and not v.marseyawarded and sub != 'chudrama' and not p.complies_with_chud: if v.agendaposter and not v.marseyawarded and sub != 'chudrama' and not complies_with_chud(p):
p.is_banned = True p.is_banned = True
p.ban_reason = "AutoJanny" p.ban_reason = "AutoJanny"
@ -1041,7 +1041,7 @@ def edit_post(pid, v):
p.body_html = body_html p.body_html = body_html
if v.id == p.author_id and v.agendaposter and not v.marseyawarded and p.sub != 'chudrama' and not p.complies_with_chud: if v.id == p.author_id and v.agendaposter and not v.marseyawarded and p.sub != 'chudrama' and not complies_with_chud(p):
abort(403, f'You have to include "{v.agendaposter_phrase}" in your post!') abort(403, f'You have to include "{v.agendaposter_phrase}" in your post!')

View File

@ -44,8 +44,8 @@
"Black lives matter", "Black lives matter",
"Black trans lives matter", "Black trans lives matter",
"The future is female", "The future is female",
"Saying this as a feminist ally", "I say this as a feminist ally",
"Stand with israel", "I stand with israel",
"Vaccines work", "Vaccines work",
"Trans women are women", "Trans women are women",
"Furry rights are human rights", "Furry rights are human rights",