diff --git a/plugins/replace_word.py b/plugins/replace_word.py new file mode 100644 index 00000000..6abb1702 --- /dev/null +++ b/plugins/replace_word.py @@ -0,0 +1,46 @@ +""" +Replace some word with some other word in a message before sending it. + + +Installation +------------ +You only have to load the plugin. + +.. code-block:: none + + /load replace_word + +Configuration example +--------------------- +.. code-block:: ini + +[replace_word] +# How to appear casual in your daily conversations. +yes = yep +no = nope + +Usage +----- +Just use the word in a message. It will be replaced automatically. + +""" + +from plugin import BasePlugin +import tabs +import re + +class Plugin(BasePlugin): + def init(self): + self.api.add_event_handler('conversation_say', self.replace_pattern) + self.api.add_event_handler('muc_say', self.replace_pattern) + self.api.add_event_handler('private_say', self.replace_pattern) + + def replace_pattern(self, message, tab): + """ + Look for a given word in the message and replace it by the corresponding word. + """ + body = message['body'] + for before in self.config.options("replace_word"): + after = self.config.get(before, before) + body = re.sub(r"\b%s\b" % before, after, body) + message['body'] = body