From 71db74cdbbf8fcc0d315ca2fc77df86ed92bad97 Mon Sep 17 00:00:00 2001
From: bot <bot@molodetz.com>
Date: Wed, 5 Mar 2025 13:11:06 +0000
Subject: [PATCH] Update export statistics

---
 dist/ragnar-1.3.37-py3-none-any.whl | Bin 0 -> 8747 bytes
 dist/ragnar-1.3.37.tar.gz           | Bin 6829 -> 7233 bytes
 src/ragnar/bot.py                   |  44 ++++++++++++++++++----------
 3 files changed, 28 insertions(+), 16 deletions(-)
 create mode 100644 dist/ragnar-1.3.37-py3-none-any.whl

diff --git a/dist/ragnar-1.3.37-py3-none-any.whl b/dist/ragnar-1.3.37-py3-none-any.whl
new file mode 100644
index 0000000000000000000000000000000000000000..276555dea60e22e70186462c54f12ece6f079924
GIT binary patch
literal 8747
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

literal 0
HcmV?d00001

diff --git a/dist/ragnar-1.3.37.tar.gz b/dist/ragnar-1.3.37.tar.gz
index 655906d0d1ab4d8a389658ba5c4b7e2afdbd01dc..8051892124d7acc243b9a792bc0eaff285d70e6c 100644
GIT binary patch
literal 7233
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

literal 6829
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

diff --git a/src/ragnar/bot.py b/src/ragnar/bot.py
index 706f5d1..2735e22 100644
--- a/src/ragnar/bot.py
+++ b/src/ragnar/bot.py
@@ -81,10 +81,13 @@ class Bot:
         rant = self.api.get_rant(rant_id)
         for comment in rant.get("comments", []):
             print("Checking if sus comment: ", comment["body"])
-            if comment.get("user_username") == username and comment.get("user_score") <= 10:
+            if (
+                comment.get("user_username") == username
+                and comment.get("user_score") <= 10
+            ):
                 vic.register_spammer(comment["user_username"])
                 return True
-        return False 
+        return False
 
     @method_cache
     def is_sus_content(self, content):
@@ -101,15 +104,21 @@ class Bot:
                     mentions = self.get_mentions(content)
                     for mention in mentions:
                         if mention == "@ragnar":
-                            continue 
+                            continue
                         username = mention.strip("@")
                         if self.is_comment_deletable(username):
                             vic.register_spammer(mention.strip("@"))
-                            self.api.post_comment(rant_id, f"User {username} is sucessfully registered as spammer.")
-                        else: 
-                            self.api.post_comment(rant_id, f"Can't register user {username} as spammer. User is trusted.")
+                            self.api.post_comment(
+                                rant_id,
+                                f"User {username} is sucessfully registered as spammer.",
+                            )
+                        else:
+                            self.api.post_comment(
+                                rant_id,
+                                f"Can't register user {username} as spammer. User is trusted.",
+                            )
                     if len(mentions) > 1:
-                        return False 
+                        return False
                 log.info(f"Trigger {trigger} matched!")
                 return True
         return False
@@ -147,9 +156,9 @@ class Bot:
         rant = self.api.get_rant(rant_id)
         for comment in rant.get("comments", []):
             for spammer in self.sus_users:
-                if comment['user_username'] == spammer:
-                    vic.downvote_comment(comment['id'])
-                    return False 
+                if comment["user_username"] == spammer:
+                    vic.downvote_comment(comment["id"])
+                    return False
 
             print("Checking if sus comment: ", comment["body"])
             if "@ragnar" in comment.get("body", "").lower():
@@ -162,11 +171,11 @@ class Bot:
                 return True
         return False
 
-    def mark_as_sus(self, rant,is_flagged_by_ai):
-        mark_text = self.mark_text 
+    def mark_as_sus(self, rant, is_flagged_by_ai):
+        mark_text = self.mark_text
         if is_flagged_by_ai:
             mark_text += "\n* Flagged by AI."
-        self.api.post_comment(rant["id"],mark_text)
+        self.api.post_comment(rant["id"], mark_text)
 
     def fight(self):
         self.rsleepii()
@@ -193,11 +202,14 @@ class Bot:
                         self.name, rant["user_username"]
                     )
                 )
-                if not vic.is_spam(rant['text']) >= 5:
+                if not vic.is_spam(rant["text"]) >= 5:
                     continue
                 else:
                     log.info(
-                        "{}: Rant by {} is sus according to AI.".format(self.name, rant["user_username"]))
+                        "{}: Rant by {} is sus according to AI.".format(
+                            self.name, rant["user_username"]
+                        )
+                    )
             log.warning(
                 "{}: Rant by {} is not flagged as sus yet but should be.".format(
                     self.name, rant["user_username"]
@@ -208,7 +220,7 @@ class Bot:
                     self.name, rant["user_username"]
                 )
             )
-            self.mark_as_sus(rant,flagged_by_id)
+            self.mark_as_sus(rant, flagged_by_id)
             self.down_vote_rant(rant)
             self.rant_history.append(rant["id"])