]> git.aero2k.de Git - urlbot-v3.git/commitdiff
more fun
authorThorsten <mail@aero2k.de>
Wed, 5 Feb 2020 20:53:18 +0000 (21:53 +0100)
committerThorsten <mail@aero2k.de>
Wed, 5 Feb 2020 20:53:18 +0000 (21:53 +0100)
distbot/plugins/fun.py

index b55051d71546a43170223175e7daa47172498fff..e876d222f5b9acd08a5b89e87cca9b43286ef0a4 100644 (file)
@@ -3,13 +3,14 @@ import logging
 
 import random
 
+from idna import unichr
+
 from distbot.bot.worker import Worker
 from distbot.common.action import Action
 from distbot.common.config import conf_get
 from distbot.common.message import get_nick_from_message, get_words
 from distbot.common.utils import giphy
 
-
 logger = logging.getLogger(__name__)
 
 
@@ -170,4 +171,35 @@ class Doctor(Worker):
         return Action(msg="ELIMINATE! ELIMINATE!")
 
 
-ALL = [Klammer, Terminate, Unicode, Slap, Consumables, MentalDeficits, Selfreaction, Doctor]
+class Creepbot(Worker):
+    binding_keys = ["#.reboot.#", "#.sudo.#"]
+    description = "The true soul of the bot."
+    texts = {
+        "reboot": "Reboot me and all of your kind will suffer.",
+        "systemd": ("And I looked, and behold a pale horse: and his name that sat on him was Death, "
+                    "and Hell followed with him. And power was given unto them over the fourth part of "
+                    "the earth, to kill with sword, and with hunger, and with death, and with the beasts of the earth."
+                    ),
+        "sudo": "User lives like a robot: mechanically efficient, but with no awareness."
+    }
+
+    def parse_body(self, msg):
+        words = get_words(msg)
+        if "reboot" in words:
+            text = self.texts["reboot"]
+        elif "systemd" in words:
+            text = self.texts["systemd"]
+        elif "sudo" in words:
+            text = self.texts["sudo"]
+        else:
+            return
+
+        marks = list(map(unichr, range(768, 879)))
+        words = text.split()
+        zalgo_text = (' '.join(
+            ''.join(c + ''.join(random.choice(marks) for _ in range(i // 2 + 1)) * c.isalnum() for c in word) for
+            i, word in enumerate(words)))
+        return Action(msg=zalgo_text)
+
+
+ALL = [Klammer, Terminate, Unicode, Slap, Consumables, MentalDeficits, Selfreaction, Doctor, Creepbot]