mutantmonkey 2011-04-04 16:52:16 -04:00
commit 20a8d88b86
4 changed files with 30 additions and 2 deletions

3
bot.py
View File

@ -40,7 +40,6 @@ class Phenny(irc.Bot):
else:
for fn in self.config.enable:
filenames.append(os.path.join(home, 'modules', fn + '.py'))
# @@ exclude
if hasattr(self.config, 'extra'):
for fn in self.config.extra:
@ -52,8 +51,10 @@ class Phenny(irc.Bot):
filenames.append(os.path.join(fn, n))
modules = []
excluded_modules = getattr(self.config, 'exclude', [])
for filename in filenames:
name = os.path.basename(filename)[:-3]
if name in excluded_modules: continue
try: module = imp.load_source(name, filename)
except Exception, e:
print >> sys.stderr, "Error loading %s: %s (in bot.py)" % (name, e)

View File

@ -47,6 +47,7 @@ def f_reload(phenny, input):
f_reload.name = 'reload'
f_reload.rule = ('$nick', ['reload'], r'(\S+)?')
f_reload.priority = 'low'
f_reload.thread = False
if __name__ == '__main__':
print __doc__.strip()

View File

@ -86,5 +86,31 @@ def gcs(phenny, input):
phenny.say(reply)
gcs.commands = ['gcs', 'comp']
r_bing = re.compile(r'<h3><a href="([^"]+)"')
def bing(phenny, input):
"""Queries Bing for the specified input."""
query = input.group(2)
if query.startswith(':'):
lang, query = query.split(' ', 1)
lang = lang[1:]
else: lang = 'en-GB'
if not query:
return phenny.reply('.bing what?')
query = web.urllib.quote(query.encode('utf-8'))
base = 'http://www.bing.com/search?mkt=%s&q=' % lang
bytes = web.get(base + query)
m = r_bing.search(bytes)
if m:
uri = m.group(1)
phenny.reply(uri)
if not hasattr(phenny.bot, 'last_seen_uri'):
phenny.bot.last_seen_uri = {}
phenny.bot.last_seen_uri[input.sender] = uri
else: phenny.reply("No results found for '%s'." % query)
bing.commands = ['bing']
bing.example = '.bing swhack'
if __name__ == '__main__':
print __doc__.strip()

2
phenny
View File

@ -50,7 +50,7 @@ def create_default_config(fn):
external = {
'#liberal': ['!'], # allow all
'#conservative': [], # allow none
'*': ['py', 'whois', 'glyph'] # default whitelist
'*': ['!'] # default whitelist, allow all
}
# EOF