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>'
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
def active_flags(self, 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):
v = g.v
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 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):
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!")
if post.is_banned:
@ -1540,7 +1540,7 @@ def remove_comment(c_id, v):
def approve_comment(c_id, v):
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!")
if comment.is_banned:

View File

@ -279,7 +279,7 @@ def comment(v:User):
if c.level == 1: c.top_comment_id = c.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.ban_reason = "AutoJanny"
g.db.add(c)
@ -674,7 +674,7 @@ def edit_comment(cid, v):
execute_blackjack(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!')

View File

@ -656,7 +656,7 @@ def submit_post(v:User, sub=None):
for x in notify_users:
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.ban_reason = "AutoJanny"
@ -1041,7 +1041,7 @@ def edit_post(pid, v):
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!')

View File

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