summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean B. Palmer <sbp@aldebaran.local>2011-03-10 13:41:02 +0000
committerSean B. Palmer <sbp@aldebaran.local>2011-03-10 13:41:02 +0000
commit5bc5662108b84def160043302188e3ade768e05b (patch)
tree31c8f09ed7a3eff4b9b157b7daa2c5fa71a14f8f
parentecb8af1bbea0dee31903b1e962c0b731f2d36318 (diff)
downloadbot-5bc5662108b84def160043302188e3ade768e05b.tar.gz
bot-5bc5662108b84def160043302188e3ade768e05b.tar.bz2
bot-5bc5662108b84def160043302188e3ade768e05b.zip
Couple of fixes from ayust on github, thanks
-rwxr-xr-xbot.py3
-rwxr-xr-xmodules/reload.py1
-rwxr-xr-xmodules/search.py26
3 files changed, 29 insertions, 1 deletions
diff --git a/bot.py b/bot.py
index 7cfc76c..e71aa96 100755
--- a/bot.py
+++ b/bot.py
@@ -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)
diff --git a/modules/reload.py b/modules/reload.py
index 50e1a56..32e6796 100755
--- a/modules/reload.py
+++ b/modules/reload.py
@@ -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()
diff --git a/modules/search.py b/modules/search.py
index 7a0e3ad..1067531 100755
--- a/modules/search.py
+++ b/modules/search.py
@@ -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()