From 1bc0dd0b2a6403c129cdcc8c822421473212c6ae Mon Sep 17 00:00:00 2001 From: "Brian S. Stephan" Date: Wed, 27 Oct 2010 19:57:18 -0500 Subject: [PATCH] TextTransform module. right now it only does rot13 --- modules/TextTransform.py | 50 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 modules/TextTransform.py diff --git a/modules/TextTransform.py b/modules/TextTransform.py new file mode 100644 index 0000000..e90735f --- /dev/null +++ b/modules/TextTransform.py @@ -0,0 +1,50 @@ +""" +TextTransform - assorted text transformations (e.g. rot13) +Copyright (C) 2010 Brian S. Stephan + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +""" + +from extlib import irclib + +from Module import Module + +class TextTransform(Module): + """ + Do a number of text transformations, like rot13. + """ + + def do(self, connection, event, nick, userhost, replypath, what, admin_unlocked): + """ + Pass the real work on to one of our methods and see if any bite. + """ + + # if the caller replied, this will be the reply and they'll have returned true + reply = [''] + + if self.rot13(what, reply): + return self.reply(connection, replypath, reply[0]) + + def rot13(self, what, reply): + """ + Apply a rot13 method to the text if first word is 'rot13'. + """ + + whats = what.split(' ') + if whats[0] == "rot13": + reply[0] = ' '.join(whats[1:]).decode('rot13') + return True + +# vi:tabstop=4:expandtab:autoindent +# kate: indent-mode python;indent-width 4;replace-tabs on;