Added sus content checker for comments

This commit is contained in:
retoor 2024-11-30 18:02:25 +01:00
parent dc7054581d
commit 2f57178a51
3 changed files with 28 additions and 5 deletions

View File

@ -47,7 +47,8 @@ class Bot:
"leading",
"helping",
"quality",
"unqiue"
"unqiue",
"@ragnar"
]
self.api = Api(username=self.username, password=self.password)
@ -66,9 +67,9 @@ class Bot:
def clean_rant_text(self, rant_text):
return rant_text.replace(" ", "").lower()
@method_cache
def is_sus_rant(self, rant_id, rant_text):
clean_text = self.clean_rant_text(rant_text)
@method_cache
def is_sus_content(self, content):
clean_text = self.clean_rant_text(content)
for trigger in self.triggers:
if type(trigger) == dict:
if trigger.get("regex"):
@ -81,6 +82,10 @@ class Bot:
return True
return False
@method_cache
def is_sus_rant(self, rant_id, rant_text):
return self.is_sus_content(rant_text)
def is_flagged_as_sus(self, rant_id, num_comments):
if not num_comments:
return False
@ -104,6 +109,17 @@ class Bot:
else:
return False
def is_comments_sus(self, rant_id):
log.info("Checking if comments are sus of rant {}.".format(rant_id))
rant = self.api.get_rant(rant_id)
if rant.get("num_comments", 0) == 0:
return False
for comment in rant.get("comments", []):
if self.is_sus_content(comment.get("body", "")):
return True
return False
def mark_as_sus(self, rant):
self.rsleepii()
self.api.post_comment(rant["id"], self.mark_text)
@ -122,7 +138,10 @@ class Bot:
"{}: User {} is trusted.".format(self.name, rant["user_username"])
)
continue
if not self.is_sus_rant(rant["id"], rant["text"]):
elif self.is_comments_sus(rant["id"]):
log.info("Comments of rant are sus + user sus. Will flag as spam.")
elif not self.is_sus_rant(rant["id"], rant["text"]):
log.info(
"{}: Rant by {} is not sus.".format(
self.name, rant["user_username"]

View File

@ -22,3 +22,7 @@ class BotTestCase(unittest.TestCase):
def test_is_sus_rant_regex_url_match_http_or_www(self):
rant_text = "http:// www . google . nl"
self.assertTrue(self.bot.is_sus_rant(42, rant_text))
def test_is_sus_content(self):
rant_text = "I completely understand the frustration—its such a hassle to manage all those details manually. I recently started using a platform called best ai trip planner https://easytrip.ai/ and its been a game-changer for my travel planning. This AI-powered service analyzes your trip requirements and gives you a comprehensive plan with the best transportation options. Whether youre looking for the fastest way to travel, the most scenic routes, or something within a specific budget, EasyTrip.ai does all the heavy lifting for you. Its also great for last-minute plans because it quickly pulls together all the available options!"
self.assertTrue(self.bot.is_sus_content(rant_text))