diff options
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/cyber.py | 40 |
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) |