From 4fb97233963c523a19f6a2d550b2857cdc95d628 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sun, 22 Jun 2014 12:32:15 +0200 Subject: [PATCH] Remove all that code that was deprecated by the previous commit --- calc.py | 6 +--- devwiki.py | 70 ++++++++++++++++++++++----------------------- forumutils.py | 6 +--- help.py | 6 +--- ping.py | 18 ++---------- rainbow.py | 6 +--- reload.py | 19 +++++++------ rssnotify.py | 3 +- rutils.py | 78 +++++++++++++-------------------------------------- search.py | 36 +++++++++--------------- seen.py | 6 +--- server.py | 7 +---- serverup.py | 6 +--- shorten.py | 6 +--- shortutils.py | 30 -------------------- tell.py | 4 --- title.py | 22 ++++++--------- twitter.py | 8 ++---- wiki.py | 74 +++++++++++++++++++++++------------------------- 19 files changed, 134 insertions(+), 277 deletions(-) diff --git a/calc.py b/calc.py index 5cbf82b..3e7faca 100755 --- a/calc.py +++ b/calc.py @@ -34,10 +34,6 @@ for lib in libs: setattr(env[lib], funcn, getattr(globals()[lib], funcn)) def c(phenny, input): - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return # Abort function if not input.group(2): return phenny.reply("Nothing to calculate.") q = input.group(2).encode('ascii', 'ignore') @@ -52,5 +48,5 @@ def c(phenny, input): c.commands = ['c'] c.example = '.c 5 + 3' -if __name__ == '__main__': +if __name__ == '__main__': print __doc__.strip() diff --git a/devwiki.py b/devwiki.py index 3c24ca6..541e9ea 100755 --- a/devwiki.py +++ b/devwiki.py @@ -21,30 +21,30 @@ r_redirect = re.compile( r'(?ims)class=.redirectText.>\s*') s = s.replace('<', '<') s = s.replace('&', '&') s = s.replace(' ', ' ') return s -def text(html): +def text(html): html = r_tag.sub('', html) html = r_whitespace.sub(' ', html) return unescape(html).strip() -def devwikipedia(term, language='en', last=False): +def devwikipedia(term, language='en', last=False): global devwikiuri - if not '%' in term: - if isinstance(term, unicode): + if not '%' in term: + if isinstance(term, unicode): t = term.encode('utf-8') else: t = term q = urllib.quote(t) @@ -52,7 +52,7 @@ def devwikipedia(term, language='en', last=False): bytes = web.get(u) else: bytes = web.get(devwikiuri % (term)) - if bytes.startswith('\x1f\x8b\x08\x00\x00\x00\x00\x00'): + if bytes.startswith('\x1f\x8b\x08\x00\x00\x00\x00\x00'): f = StringIO.StringIO(bytes) f.seek(0) gzip_file = gzip.GzipFile(fileobj=f) @@ -62,56 +62,56 @@ def devwikipedia(term, language='en', last=False): bytes = r_tr.sub('', bytes) - if not last: + if not last: r = r_redirect.search(bytes[:4096]) - if r: + if r: term = urllib.unquote(r.group(1)) return devwikipedia(term, language=language, last=True) paragraphs = r_paragraph.findall(bytes) - if not paragraphs: - if not last: + if not paragraphs: + if not last: term = search(term) return devwikipedia(term, language=language, last=True) return None # Pre-process - paragraphs = [para for para in paragraphs - if (para and 'technical limitations' not in para - and 'window.showTocToggle' not in para - and 'Deletion_policy' not in para - and 'Template:AfD_footer' not in para - and not (para.startswith('

') and + paragraphs = [para for para in paragraphs + if (para and 'technical limitations' not in para + and 'window.showTocToggle' not in para + and 'Deletion_policy' not in para + and 'Template:AfD_footer' not in para + and not (para.startswith('

') and para.endswith('

')) - and not 'disambiguation)"' in para) + and not 'disambiguation)"' in para) and not '(images and media)' in para - and not 'This article contains a' in para + and not 'This article contains a' in para and not 'id="coordinates"' in para and not 'class="thumb' in para] # and not 'style="display:none"' in para] - for i, para in enumerate(paragraphs): + for i, para in enumerate(paragraphs): para = para.replace('', '|') para = para.replace('', '|') paragraphs[i] = text(para).strip() # Post-process - paragraphs = [para for para in paragraphs if + paragraphs = [para for para in paragraphs if (para and not (para.endswith(':') and len(para) < 150))] para = text(paragraphs[0]) m = r_sentence.match(para) - if not m: - if not last: + if not m: + if not last: term = search(term) return devwikipedia(term, language=language, last=True) return None sentence = m.group(0) maxlength = 275 - if len(sentence) > maxlength: + if len(sentence) > maxlength: sentence = sentence[:maxlength] words = sentence[:-5].split(' ') words.pop() @@ -119,8 +119,8 @@ def devwikipedia(term, language='en', last=False): if (('using the Article Wizard if you wish' in sentence) or ('or add a request for it' in sentence) - or ('in existing articles' in sentence)): - if not last: + or ('in existing articles' in sentence)): + if not last: term = search(term) return devwikipedia(term, language=language, last=True) return None @@ -132,37 +132,33 @@ def devwikipedia(term, language='en', last=False): return sentence + ' - ' + (devwikiuri % (term)) def devwik(phenny, input): - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return # Abort function origterm = input.groups()[1] - if not origterm: + if not origterm: return phenny.say('Perhaps you meant "!devwik Zen"?') origterm = origterm.encode('utf-8') print("[LOG]: %s queried Minetest Dev Wiki for '%s'" % (input.nick,origterm)) term = urllib.unquote(origterm) language = 'en' - if term.startswith(':') and (' ' in term): + if term.startswith(':') and (' ' in term): a, b = term.split(' ', 1) a = a.lstrip(':') - if a.isalpha(): + if a.isalpha(): language, term = a, b term = term.replace(' ', '_') try: result = devwikipedia(term, language) - except IOError: + except IOError: args = (language, devwikiuri % (term)) error = "Can't connect to dev.minetest.net (%s)" % args return phenny.say(error) - if result is not None: + if result is not None: phenny.say(result) else: phenny.say('Can\'t find anything in Dev Wiki for "%s".' % origterm) devwik.commands = ['dev', 'devwik', 'devwiki'] devwik.priority = 'high' -if __name__ == '__main__': +if __name__ == '__main__': print __doc__.strip() diff --git a/forumutils.py b/forumutils.py index 6e11ad8..d9392c5 100755 --- a/forumutils.py +++ b/forumutils.py @@ -55,7 +55,7 @@ def formartirc_user(name,rank,posts,regdate,userid,with_userid=False): return name + " "+chr(3)+"8"+ rank.replace("New","New"+chr(3)) +" " + posts + " posts, registered on " + regdate + ap else: return name + " " + rank + " " + posts + " posts, registered on " + regdate + ap - + def formatirc_user_a(arr): if len(arr) <= 4: return formartirc_user(arr[0],arr[1],arr[2],arr[3]) @@ -63,10 +63,6 @@ def formatirc_user_a(arr): return formartirc_user(arr[0],arr[1],arr[2],arr[3],arr[4],with_userid=True) def search_forumuser(phenny, input): - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return # Abort function arg = input.group(2) if not arg: return phenny.reply("Give me a username") diff --git a/help.py b/help.py index 5eba46e..a6fbf34 100755 --- a/help.py +++ b/help.py @@ -1,9 +1,5 @@ -def help(phenny, input): +def help(phenny, input): """Help command""" - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return # Abort function phenny.say("https://github.com/sfan5/minetestbot-modules/blob/master/COMMANDS.md") help.commands = ['help'] diff --git a/ping.py b/ping.py index aadc03c..5b679ce 100755 --- a/ping.py +++ b/ping.py @@ -8,32 +8,20 @@ About: http://inamidst.com/phenny/ import random def hello(phenny, input): - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return # Abort function greeting = random.choice(('Hi', 'Hey', 'Hello', 'sup')) punctuation = random.choice(('', '!', '.')) phenny.say(greeting + ' ' + input.nick + punctuation) hello.rule = r'(?i)(hi|hello|hey) $nickname[ \t]*$' -def interjection(phenny, input): - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return # Abort function +def interjection(phenny, input): phenny.say(input.nick + '!') interjection.rule = r'$nickname!' interjection.priority = 'high' -def l3(phenny, input): - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return # Abort function +def l3(phenny, input): phenny.say('<3 ' + input.nick) l3.rule = r'<3 $nickname' l3.priority = 'low' -if __name__ == '__main__': +if __name__ == '__main__': print __doc__.strip() diff --git a/rainbow.py b/rainbow.py index 9b063f9..45e9821 100755 --- a/rainbow.py +++ b/rainbow.py @@ -6,7 +6,7 @@ Copyright 2013, sfan5 import random rainbowcolors = ["4", "7", "8", "3", "12", "6", "13"] -#TODO: make this rainbow better (can't really make it that better because IRC colors suck) +#maybe TODO: make this rainbow better (can't really make it that better because IRC colors suck) def colorize(text): out = "" @@ -25,10 +25,6 @@ def colorize(text): return out def rainbow(phenny, input): - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return # Abort function arg = input.group(2) if not arg: return phenny.say(colorize("Rainbow") + "\x03 What?") diff --git a/reload.py b/reload.py index dfd0e8e..a52f4ee 100755 --- a/reload.py +++ b/reload.py @@ -10,33 +10,33 @@ http://inamidst.com/phenny/ import sys, os.path, time, imp import irc -def f_reload(phenny, input): - """Reloads a module, for use by admins only.""" +def f_reload(phenny, input): + """Reloads a module, for use by admins only.""" if not input.admin: return name = input.group(2) - if name == phenny.config.owner: + if name == phenny.config.owner: return phenny.reply('What?') - if (not name) or (name == '*'): + if (not name) or (name == '*'): phenny.variables = None phenny.commands = None phenny.setup() return phenny.reply('done') - if not sys.modules.has_key(name): + if not sys.modules.has_key(name): return phenny.reply('%s: no such module!' % name) # Thanks to moot for prodding me on this path = sys.modules[name].__file__ - if path.endswith('.pyc') or path.endswith('.pyo'): + if path.endswith('.pyc') or path.endswith('.pyo'): path = path[:-1] - if not os.path.isfile(path): + if not os.path.isfile(path): return phenny.reply('Found %s, but not the source file' % name) module = imp.load_source(name, path) sys.modules[name] = module - if hasattr(module, 'setup'): + if hasattr(module, 'setup'): module.setup(phenny) mtime = os.path.getmtime(module.__file__) @@ -46,10 +46,11 @@ def f_reload(phenny, input): phenny.bind_commands() phenny.reply('%r (version: %s)' % (module, modified)) + f_reload.name = 'reload' f_reload.rule = ('$nick', ['reload'], r'(\S+)?') f_reload.priority = 'low' f_reload.thread = False -if __name__ == '__main__': +if __name__ == '__main__': print __doc__.strip() diff --git a/rssnotify.py b/rssnotify.py index 723ac30..0f14f0b 100755 --- a/rssnotify.py +++ b/rssnotify.py @@ -122,10 +122,9 @@ def rsscheck(phenny, input): rssnotify["dont_print_first_message"] = False print("[RssNotify]: Checked " + str(len(feeds)) + " RSS Feeds in %0.3f seconds" % (end-start)) -rsscheck.priority = 'high' +rsscheck.priority = 'medium' rsscheck.rule = r'.*' rsscheck.event = '*' -rsscheck.thread = True if __name__ == '__main__': print __doc__.strip() diff --git a/rutils.py b/rutils.py index 077e790..7bd25c1 100755 --- a/rutils.py +++ b/rutils.py @@ -1,19 +1,15 @@ #!/usr/bin/env python """ rutils.py - Phenny Utility Module -Copyright 2012, Sfan5 +Copyright 2012, sfan5 """ import base64, binascii, re, random, time, multiprocessing, hashlib def rs(s): return repr(s)[1:-1] -def rev(phenny, input): +def rev(phenny, input): """reverse string""" - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return # Abort function if not input.group(2): return phenny.reply("Nothing to reverse.") q = input.group(2).encode('utf-8') @@ -26,12 +22,8 @@ def rev(phenny, input): rev.commands = ['rev','reverse'] rev.priority = 'low' -def b64e(phenny, input): +def b64e(phenny, input): """base64 encode""" - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return # Abort function if not input.group(2): return phenny.reply("Nothing to encode.") q = input.group(2).encode('utf-8') @@ -39,16 +31,12 @@ def b64e(phenny, input): return phenny.say(rs(base64.b64encode(q))) except BaseException as e: return phenny.reply("Failed to handle data") - + b64e.commands = ['b64e','base64encode'] b64e.priority = 'low' -def b64d(phenny, input): +def b64d(phenny, input): """base64 decode""" - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return # Abort function if not input.group(2): return phenny.reply("Nothing to decode.") q = input.group(2).encode('utf-8') @@ -56,16 +44,12 @@ def b64d(phenny, input): return phenny.say(rs(base64.b64decode(q))) except BaseException as e: return phenny.reply("Failed to handle data") - + b64d.commands = ['b64d','base64decode'] b64d.priority = 'low' -def b32e(phenny, input): +def b32e(phenny, input): """base32 encode""" - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return # Abort function if not input.group(2): return phenny.reply("Nothing to encode.") q = input.group(2).encode('utf-8') @@ -73,16 +57,12 @@ def b32e(phenny, input): return phenny.say(rs(base64.b32encode(q))) except BaseException as e: return phenny.reply("Failed to handle data") - + b32e.commands = ['b32e','base32encode'] b32e.priority = 'low' -def b32d(phenny, input): +def b32d(phenny, input): """base32 decode""" - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return # Abort function if not input.group(2): return phenny.reply("Nothing to decode.") q = input.group(2).encode('utf-8') @@ -90,16 +70,12 @@ def b32d(phenny, input): return phenny.say(rs(base64.b32decode(q))) except BaseException as e: return phenny.reply("Failed to handle data") - + b32d.commands = ['b32d','base32decode'] b32d.priority = 'low' -def b16e(phenny, input): +def b16e(phenny, input): """base16 encode""" - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return # Abort function if not input.group(2): return phenny.reply("Nothing to encode.") q = input.group(2).encode('utf-8') @@ -107,11 +83,11 @@ def b16e(phenny, input): return phenny.say(rs(base64.b16encode(q))) except BaseException as e: return phenny.reply("Failed to handle data") - + b16e.commands = ['b16e','base16encode'] b16e.priority = 'low' -def b16d(phenny, input): +def b16d(phenny, input): """base16 decode""" if not input.group(2): return phenny.reply("Nothing to decode.") @@ -120,30 +96,22 @@ def b16d(phenny, input): return phenny.say(rs(base64.b16decode(q))) except BaseException as e: return phenny.reply("Failed to handle data") - + b16d.commands = ['b16d','base16decode'] b16d.priority = 'low' -def crc32(phenny, input): +def crc32(phenny, input): """crc32 hash""" - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return # Abort function if not input.group(2): return phenny.reply("Nothing to hash.") q = input.group(2).encode('utf-8') h = binascii.crc32(q) return phenny.say(rs(str(h) + "(" + hex(h) + ")")) - + crc32.commands = ['crc32'] crc32.priority = 'low' def hash_(phenny, input): - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return # Abort function if not input.group(2): return phenny.reply("Usage: hash | Get available hash funcs with ?") hashfuncs = { @@ -165,12 +133,8 @@ def hash_(phenny, input): hash_.commands = ['hash'] hash_.priority = 'low' -def regex(phenny, input): +def regex(phenny, input): """regex""" - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return # Abort function if not input.group(2): return phenny.reply("Give me a regex and a message seperated by `") q = input.group(2).encode('utf-8') @@ -202,12 +166,8 @@ regex.commands = ['re','regex'] regex.priority = 'low' regex.thread = True -def rand(phenny, input): +def rand(phenny, input): """Returns a random number""" - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return # Abort function if not input.group(2): return arg = input.group(2) @@ -236,5 +196,5 @@ def rand(phenny, input): rand.commands = ['rand', 'random'] rand.priority = 'low' -if __name__ == '__main__': +if __name__ == '__main__': print __doc__.strip() diff --git a/search.py b/search.py index 5d82641..105151b 100755 --- a/search.py +++ b/search.py @@ -2,7 +2,7 @@ """ search.py - Phenny Web Search Module Copyright 2008-9, Sean B. Palmer, inamidst.com -Modified by Sfan5 2012 +Modified by sfan5 2012 Licensed under the Eiffel Forum License 2. http://inamidst.com/phenny/ @@ -10,7 +10,7 @@ http://inamidst.com/phenny/ import web, re -search_badwords = ["porn","p0rn","pr0n","pron","redtube","sex","pussy","hot","weed","smoking","drug","penis","vagina"] #Thank KikaRz, LandMine and RagnarLaud for this +search_badwords = ["porn","p0rn","pr0n","pron","redtube","sex","pussy","weed","smoking","drug","penis","vagina"] # Thank KikaRz, LandMine and RagnarLaud for this class Grab(web.urllib.URLopener): def __init__(self, *args): @@ -20,9 +20,9 @@ class Grab(web.urllib.URLopener): def http_error_default(self, url, fp, errcode, errmsg, headers): return web.urllib.addinfourl(fp, [headers, errcode], "http:" + url) -def google_ajax(query): +def google_ajax(query): """Search using AjaxSearch, and return its JSON.""" - if isinstance(query, unicode): + if isinstance(query, unicode): query = query.encode('utf-8') uri = 'http://ajax.googleapis.com/ajax/services/search/web' args = '?v=1.0&safe=off&q=' + web.urllib.quote(query) @@ -32,23 +32,23 @@ def google_ajax(query): web.urllib._urlopener = handler return web.json(bytes) -def google_search(query): +def google_search(query): results = google_ajax(query) try: return results['responseData']['results'][0]['unescapedUrl'] except IndexError: return None - except TypeError: + except TypeError: print results return False -def google_count(query): +def google_count(query): results = google_ajax(query) if not results.has_key('responseData'): return '0' if not results['responseData'].has_key('cursor'): return '0' - if not results['responseData']['cursor'].has_key('estimatedResultCount'): + if not results['responseData']['cursor'].has_key('estimatedResultCount'): return '0' return results['responseData']['cursor']['estimatedResultCount'] -def formatnumber(n): +def formatnumber(n): """Format a number with beautiful commas.""" parts = list(str(n)) for i in range((len(parts) - 3), 0, -3): @@ -56,14 +56,10 @@ def formatnumber(n): return ''.join(parts) -def g(phenny, input): +def g(phenny, input): """Queries Google for the specified input.""" - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return # Abort function query = input.group(2) - if not query: + if not query: return phenny.reply('.g what?') for bw in search_badwords: if bw in query: @@ -72,7 +68,7 @@ def g(phenny, input): query = query.encode('utf-8') print("[LOG]: %s queried Google Result for '%s'" % (input.nick,query)) uri = google_search(query) - if uri: + if uri: phenny.reply(uri) phenny.bot.last_seen_uri = uri elif uri is False: phenny.reply("Problem getting data from Google.") @@ -82,10 +78,6 @@ g.priority = 'high' g.example = '.g minetest' def gc(phenny, input): - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return # Abort function if not input.group(2): return phenny.reply("No query term.") query = input.group(2).encode('utf-8') @@ -98,7 +90,7 @@ def gc(phenny, input): if result: phenny.say(query + ": " + result) else: phenny.reply("Sorry, couldn't get a result.") - + def new_gc(query): uri = 'https://www.google.com/search?hl=en&q=' uri = uri + web.urllib.quote(query).replace('+', '%2B') @@ -114,5 +106,5 @@ gc.commands = ['gc'] gc.priority = 'high' gc.example = '.gc minetest' -if __name__ == '__main__': +if __name__ == '__main__': print __doc__.strip() diff --git a/seen.py b/seen.py index 3aba4af..dd17834 100755 --- a/seen.py +++ b/seen.py @@ -51,11 +51,7 @@ def pushupdate(sender, time, nick): update_l.release() def seen(phenny, input): - """.seen - Reports when was last seen.""" - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return # Abort function + """seen - Reports when was last seen.""" nick = input.group(2) if not nick: return phenny.reply("Need a nickname to search for...") diff --git a/server.py b/server.py index d303915..f25fb6f 100755 --- a/server.py +++ b/server.py @@ -1,7 +1,7 @@ #!/usr/bin/env python """ server.py - Phenny Minetest Server Module -Copyright 2013, Sfan5 +Copyright 2013, sfan5 """ import web, json, random @@ -174,11 +174,6 @@ def by_port(tbl, arg): return results def server(phenny, input): - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return # Abort function - arg = input.group(2) if not arg: cfuncs = [by_random] diff --git a/serverup.py b/serverup.py index 88dc2ef..a77d50f 100755 --- a/serverup.py +++ b/serverup.py @@ -7,10 +7,6 @@ Copyright 2012, sfan5 import socket, time def serverup(phenny, input): - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return # Abort function arg = input.group(2) if not arg: return phenny.reply("Give me a Server Address") @@ -78,7 +74,7 @@ def serverup(phenny, input): except: phenny.say("%s seems to be down " % repres) - + serverup.commands = ['up'] serverup.thread = True diff --git a/shorten.py b/shorten.py index 0ceddf9..d824d95 100755 --- a/shorten.py +++ b/shorten.py @@ -6,10 +6,6 @@ Copyright 2013, sfan5 import urllib def shorten(phenny, input): - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return # Abort function arg = input.group(2) if not arg: arg = "" # Function continues and prints Help Message @@ -33,7 +29,7 @@ def shorten(phenny, input): except: return phenny.reply("Problems accessing v.gd, please try a different Service") return phenny.reply("Unknown Service") - + shorten.commands = ['shorten','sh'] shorten.thread = True diff --git a/shortutils.py b/shortutils.py index 3e6bd0f..eb79704 100755 --- a/shortutils.py +++ b/shortutils.py @@ -15,10 +15,6 @@ import json def rtfm(phenny, input): """Manual reference command""" - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return if input.group(2): u = input.group(2).strip() + ", " else: @@ -29,10 +25,6 @@ rtfm.commands = ['rtfm'] def questions(phenny, input): """Ask smart questions""" - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return if input.group(2): u = input.group(2).strip() + ", " else: @@ -43,10 +35,6 @@ questions.commands = ['questions'] def next(phenny, input): """Next one please""" - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return phenny.say("Another satisfied customer. Next!") next.commands = ['next'] @@ -67,10 +55,6 @@ pil.commands = ['pil'] def git(phenny, input): """Git Manual link""" - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return if input.group(2): u = input.group(2).strip() + ", " else: @@ -81,10 +65,6 @@ git.commands = ['git'] def stfu(phenny, input): """usage: !stfu [nick]""" - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return if input.group(2): u = input.group(2).strip() + ", " else: @@ -95,10 +75,6 @@ stfu.commands = ['stfu'] def proc(phenny, input): """usage: !proc [nick]""" - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return if input.group(2): u = input.group(2).strip() + ", " else: @@ -109,10 +85,6 @@ proc.commands = ['proc'] def doge(phenny, input): """much wow, very function, such programming""" - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return if random.randint(0, 1) == 0: f = urllib2.urlopen('http://pubapi.cryptsy.com/api.php?method=singlemarketdata&marketid=132') data = f.read() @@ -143,5 +115,3 @@ def btc(phenny, input): phenny.say('1 BTC = %.4f %s' % (data[currency]['15m'], data[currency]['symbol'])) btc.commands = ['btc'] - - diff --git a/tell.py b/tell.py index 0e88169..35aa713 100755 --- a/tell.py +++ b/tell.py @@ -31,10 +31,6 @@ def tell_diskwr(): tell_pending = [] def tell(phenny, input): - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return # Abort function arg = input.group(2) if not arg: return phenny.reply("Need a nickname...") diff --git a/title.py b/title.py index 713e7a3..087cddb 100755 --- a/title.py +++ b/title.py @@ -13,26 +13,22 @@ import re, urllib2, urlparse r_title = re.compile(r'(?ims)]*>(.*?)') def f_title(phenny, input): - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return # Abort function uri = input.group(2) uri = (uri or '').encode('utf-8') - if not uri and hasattr(phenny.bot, 'last_seen_uri'): + if not uri and hasattr(phenny.bot, 'last_seen_uri'): uri = phenny.bot.last_seen_uri - if not uri: + if not uri: return phenny.reply('I need a URI to give the title of...') - if not ':' in uri: + if not ':' in uri: uri = 'http://' + uri - try: + try: redirects = 0 while True: headers = { - 'Accept': 'text/html', + 'Accept': 'text/html', 'User-Agent': 'Mozilla/5.0 (MinetestBot)' } req = urllib2.Request(uri, headers=headers) @@ -77,9 +73,9 @@ def f_title(phenny, input): if len(title) > 100: title = title[:100] + '[...]' - if title: + if title: try: title.decode('utf-8') - except: + except: try: title = title.decode('iso-8859-1').encode('utf-8') except: title = title.decode('cp1252').encode('utf-8') else: pass @@ -92,12 +88,12 @@ def f_title(phenny, input): f_title.commands = ['title'] -def noteuri(phenny, input): +def noteuri(phenny, input): uri = input.group(1).encode('utf-8') phenny.bot.last_seen_uri = uri noteuri.rule = r'.*(https?://[^<> "\x01]+).*' noteuri.priority = 'low' -if __name__ == '__main__': +if __name__ == '__main__': print __doc__.strip() diff --git a/twitter.py b/twitter.py index 7f31458..8aa8370 100755 --- a/twitter.py +++ b/twitter.py @@ -2,7 +2,7 @@ """ twitter.py - Phenny Twitter Module Copyright 2012, Sean B. Palmer, inamidst.com -Modified by Sfan5 2012 +Modified by sfan5 2012 Licensed under the Eiffel Forum License 2. http://inamidst.com/phenny/ @@ -23,7 +23,7 @@ r_breaks = re.compile(r'(?ims)[\r\n]+') def entity(*args, **kargs): return web.entity(*args, **kargs).encode('utf-8') -def decode(html): +def decode(html): return web.r_entity.sub(entity, html) def expand(tweet): @@ -69,10 +69,6 @@ def id_tweet(tid): return "Sorry, couldn't get a tweet from %s" % link def twitter(phenny, input): - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return # Abort function arg = input.group(2) if not arg: return phenny.reply("Give me a link, a @username, or a tweet id") diff --git a/wiki.py b/wiki.py index 2160256..bbe2a77 100755 --- a/wiki.py +++ b/wiki.py @@ -2,7 +2,7 @@ """ wiki.py - Phenny Wiki Module Copyright 2008-9, Sean B. Palmer, inamidst.com -Modified by Sfan5 2013 +Modified by sfan5 2013 Licensed under the Eiffel Forum License 2. http://inamidst.com/phenny/ @@ -21,30 +21,30 @@ r_redirect = re.compile( r'(?ims)class=.redirectText.>\s*') s = s.replace('<', '<') s = s.replace('&', '&') s = s.replace(' ', ' ') return s -def text(html): +def text(html): html = r_tag.sub('', html) html = r_whitespace.sub(' ', html) return unescape(html).strip() -def wikipedia(term, language='en', last=False): +def wikipedia(term, language='en', last=False): global wikiuri - if not '%' in term: - if isinstance(term, unicode): + if not '%' in term: + if isinstance(term, unicode): t = term.encode('utf-8') else: t = term q = urllib.quote(t) @@ -52,7 +52,7 @@ def wikipedia(term, language='en', last=False): bytes = web.get(u) else: bytes = web.get(wikiuri % (term)) - if bytes.startswith('\x1f\x8b\x08\x00\x00\x00\x00\x00'): + if bytes.startswith('\x1f\x8b\x08\x00\x00\x00\x00\x00'): f = StringIO.StringIO(bytes) f.seek(0) gzip_file = gzip.GzipFile(fileobj=f) @@ -62,56 +62,56 @@ def wikipedia(term, language='en', last=False): bytes = r_tr.sub('', bytes) - if not last: + if not last: r = r_redirect.search(bytes[:4096]) - if r: + if r: term = urllib.unquote(r.group(1)) return wikipedia(term, language=language, last=True) paragraphs = r_paragraph.findall(bytes) - if not paragraphs: - if not last: + if not paragraphs: + if not last: term = search(term) return wikipedia(term, language=language, last=True) return None # Pre-process - paragraphs = [para for para in paragraphs - if (para and 'technical limitations' not in para - and 'window.showTocToggle' not in para - and 'Deletion_policy' not in para - and 'Template:AfD_footer' not in para - and not (para.startswith('

') and + paragraphs = [para for para in paragraphs + if (para and 'technical limitations' not in para + and 'window.showTocToggle' not in para + and 'Deletion_policy' not in para + and 'Template:AfD_footer' not in para + and not (para.startswith('

') and para.endswith('

')) - and not 'disambiguation)"' in para) + and not 'disambiguation)"' in para) and not '(images and media)' in para - and not 'This article contains a' in para + and not 'This article contains a' in para and not 'id="coordinates"' in para and not 'class="thumb' in para] # and not 'style="display:none"' in para] - for i, para in enumerate(paragraphs): + for i, para in enumerate(paragraphs): para = para.replace('', '|') para = para.replace('', '|') paragraphs[i] = text(para).strip() # Post-process - paragraphs = [para for para in paragraphs if + paragraphs = [para for para in paragraphs if (para and not (para.endswith(':') and len(para) < 150))] para = text(paragraphs[0]) m = r_sentence.match(para) - if not m: - if not last: + if not m: + if not last: term = search(term) return wikipedia(term, language=language, last=True) return None sentence = m.group(0) maxlength = 275 - if len(sentence) > maxlength: + if len(sentence) > maxlength: sentence = sentence[:maxlength] words = sentence[:-5].split(' ') words.pop() @@ -119,8 +119,8 @@ def wikipedia(term, language='en', last=False): if (('using the Article Wizard if you wish' in sentence) or ('or add a request for it' in sentence) - or ('in existing articles' in sentence)): - if not last: + or ('in existing articles' in sentence)): + if not last: term = search(term) return wikipedia(term, language=language, last=True) return None @@ -131,39 +131,35 @@ def wikipedia(term, language='en', last=False): term = term.decode('utf-8').encode('utf-8') return sentence + ' - ' + (wikiuri % (term)) -def wik(phenny, input): - for x in phenny.bot.commands["high"].values(): - if x[0].__name__ == "aa_hook": - if x[0](phenny, input): - return # Abort function +def wik(phenny, input): origterm = input.groups()[1] - if not origterm: + if not origterm: return phenny.say('Perhaps you meant "!wik Zen"?') origterm = origterm.encode('utf-8') print("[LOG]: %s queried Minetest Wiki for '%s'" % (input.nick,origterm)) term = urllib.unquote(origterm) language = 'en' - if term.startswith(':') and (' ' in term): + if term.startswith(':') and (' ' in term): a, b = term.split(' ', 1) a = a.lstrip(':') - if a.isalpha(): + if a.isalpha(): language, term = a, b term = term[0].upper() + term[1:] term = term.replace(' ', '_') try: result = wikipedia(term, language) - except IOError: + except IOError: args = (language, wikiuri % (term)) error = "Can't connect to wiki.minetest.com (%s)" % args return phenny.say(error) - if result is not None: + if result is not None: phenny.say(result) else: phenny.say('Can\'t find anything in Wiki for "%s".' % origterm) wik.commands = ['wik', 'wiki'] wik.priority = 'high' -if __name__ == '__main__': +if __name__ == '__main__': print __doc__.strip()