summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/cyber.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/plugins/cyber.py b/plugins/cyber.py
new file mode 100644
index 00000000..67d6cdc7
--- /dev/null
+++ b/plugins/cyber.py
@@ -0,0 +1,40 @@
+"""
+This plugin adds a "cyber" prefix to a random word in your chatroom messages.
+
+Usage
+-----
+
+Say something in a MUC tab.
+
+Configuration options
+---------------------
+
+.. glossary::
+
+ frequency
+ **Default:** ``10``
+
+ The percentage of the time the plugin will activate (randomly). 100 for every message, <= 0 for never.
+"""
+
+from plugin import BasePlugin
+from random import choice, randint
+import re
+
+
+DEFAULT_CONFIG = {'cyber': {'frequency': 10}}
+
+class Plugin(BasePlugin):
+
+ default_config = DEFAULT_CONFIG
+
+ def init(self):
+ self.api.add_event_handler('muc_say', self.cyberize)
+
+ def cyberize(self, msg, tab):
+ if randint(1, 100) > self.config.get('frequency'):
+ return
+ words = [word for word in re.split('\W+', msg['body']) if len(word) > 3]
+ if words:
+ word = choice(words)
+ msg['body'] = msg['body'].replace(word, 'cyber' + word)