diff --git a/plugins/Http.py b/plugins/Http.py index ade317814..6e9740fc5 100644 --- a/plugins/Http.py +++ b/plugins/Http.py @@ -81,7 +81,7 @@ class FreshmeatException(Exception): class Http(callbacks.PrivmsgCommandAndRegexp): threaded = True regexps = ['geekSnarfer'] - + _titleRe = re.compile(r'(.*?)', re.I | re.S) def callCommand(self, name, irc, msg, *L, **kwargs): @@ -464,20 +464,29 @@ class Http(callbacks.PrivmsgCommandAndRegexp): irc.reply('; '.join(resp)) def futurama(self, irc, msg, args): - """takes no arguments + """[{bender|fry}] Returns a random Bender or Fry (from Futurama) quote from Slashdot's - HTTP headers. + HTTP headers. If a name is specified, attempts to return a quote + specific to that character. """ + name = privmsgs.getArgs(args, required=0, optional=1) fd = webutils.getUrlFd('http://slashdot.org/') try: - if 'X-Bender' in fd.headers: - irc.reply(' %s' % fd.headers['X-Bender']) - elif 'X-Fry' in fd.headers: - irc.reply(' %s' % fd.headers['X-Fry']) + if not name: + if 'X-Bender' in fd.headers: + return ' %s' % fd.headers['X-Bender'] + elif 'X-Fry' in fd.headers: + return ' %s' % fd.headers['X-Fry'] + else: + return 'Slashdot seems to be running low on Futurama ' \ + 'quotes.' else: - irc.reply( - 'Slashdot seems to be running low on Futurama quotes.') + try: + return '<%s> %s' % (name, fd.headers['X-%s' % name]) + except KeyError: + return 'Slashdot seems to be running low on %s quotes' %\ + name finally: fd.close()