diff --git a/TODO b/TODO index f8cf414..6d66957 100644 --- a/TODO +++ b/TODO @@ -2,7 +2,6 @@ dr.botzo --- TODO Both a reminder to myself and a hint to anyone else who wants to hack around... - * 8ball style module * some sort of cron interface (periodic events) * named pipe to send commands to the bot outside of IRC * more text modification nonsense diff --git a/modules/EightBall.py b/modules/EightBall.py new file mode 100644 index 0000000..832e508 --- /dev/null +++ b/modules/EightBall.py @@ -0,0 +1,67 @@ +""" +EightBall - consult the oracle +Copyright (C) 2011 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 . +""" + +import random + +from extlib import irclib + +from Module import Module + +class EightBall(Module): + """Return a random answer when asked a question.""" + + def __init__(self, config, server, modlist): + """Initialize the list of self.responses.""" + + Module.__init__(self, config, server, modlist) + + self.responses = [] + + self.responses.append('As I see it, yes.') + self.responses.append('It is certain.') + self.responses.append('It is decidedly so.') + self.responses.append('Most likely.') + self.responses.append('Outlook good.') + self.responses.append('Signs point to yes.') + self.responses.append('Without a doubt.') + self.responses.append('Yes.') + self.responses.append('Yes - definitely.') + self.responses.append('You may rely on it.') + + self.responses.append('Reply hazy, try again.') + self.responses.append('Ask again later.') + self.responses.append('Better not tell you now.') + self.responses.append('Cannot predict now.') + self.responses.append('Concentrate and ask again.') + + self.responses.append('Don\'t count on it.') + self.responses.append('My reply is no.') + self.responses.append('My sources say no.') + self.responses.append('Outlook not so good.') + self.responses.append('Very doubtful.') + + def do(self, connection, event, nick, userhost, replypath, what, admin_unlocked): + """Determine the response to the question. Spoiler alert: it's random.""" + + whats = what.split(' ') + if whats[0] == '8ball': + response = self.responses[random.randint(1,len(self.responses))-1] + return self.reply(connection, replypath, response) + +# vi:tabstop=4:expandtab:autoindent +# kate: indent-mode python;indent-width 4;replace-tabs on;