Added sus content checker for comments
This commit is contained in:
parent
dc7054581d
commit
2f57178a51
@ -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"]
|
||||
|
Binary file not shown.
@ -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—it’s such a hassle to manage all those details manually. I recently started using a platform called best ai trip planner https://easytrip.ai/ and it’s 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 you’re 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. It’s also great for last-minute plans because it quickly pulls together all the available options!"
|
||||
self.assertTrue(self.bot.is_sus_content(rant_text))
|
Loading…
Reference in New Issue
Block a user