summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean B. Palmer <sean@miscoranda.com>2011-08-04 15:53:55 +0100
committerSean B. Palmer <sean@miscoranda.com>2011-08-04 15:53:55 +0100
commit66edd833726d0a14400df65311999b1496b9f8cb (patch)
tree76ea94f6c23c7b2819a42a74f1036ff6220d9222
parentc493e7ca07cca403334eabcc069d5bc1cb468220 (diff)
downloadbot-66edd833726d0a14400df65311999b1496b9f8cb.tar.gz
bot-66edd833726d0a14400df65311999b1496b9f8cb.tar.bz2
bot-66edd833726d0a14400df65311999b1496b9f8cb.zip
DuckDuckGo support, and minor wa and wik fixes.
-rwxr-xr-xmodules/calc.py2
-rwxr-xr-xmodules/search.py19
-rwxr-xr-xmodules/wikipedia.py2
3 files changed, 21 insertions, 2 deletions
diff --git a/modules/calc.py b/modules/calc.py
index d8cad35..9a5b187 100755
--- a/modules/calc.py
+++ b/modules/calc.py
@@ -105,7 +105,7 @@ def wa(phenny, input):
return phenny.reply("No search term.")
query = input.group(2).encode('utf-8')
uri = 'http://tumbolia.appspot.com/wa/'
- answer = web.get(uri + web.urllib.quote(query))
+ answer = web.get(uri + web.urllib.quote(query.replace('+', '%2B')))
if answer:
phenny.say(answer)
else: phenny.reply('Sorry, no result.')
diff --git a/modules/search.py b/modules/search.py
index 2751bb5..c8f9a6a 100755
--- a/modules/search.py
+++ b/modules/search.py
@@ -129,5 +129,24 @@ def bing(phenny, input):
bing.commands = ['bing']
bing.example = '.bing swhack'
+r_ddg = re.compile(r'nofollow" class="[^"]+" href="(.*?)">')
+
+def ddg(phenny, input):
+ query = input.group(2)
+ if not query: return phenny.reply('.ddg what?')
+
+ query = web.urllib.quote(query.encode('utf-8'))
+ uri = 'http://duckduckgo.com/html/?q=%s&kl=uk-en' % query
+ bytes = web.get(uri)
+ m = r_ddg.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)
+ddg.commands = ['ddg']
+
if __name__ == '__main__':
print __doc__.strip()
diff --git a/modules/wikipedia.py b/modules/wikipedia.py
index 7d83893..ba9ce0b 100755
--- a/modules/wikipedia.py
+++ b/modules/wikipedia.py
@@ -24,7 +24,7 @@ r_redirect = re.compile(
abbrs = ['etc', 'ca', 'cf', 'Co', 'Ltd', 'Inc', 'Mt', 'Mr', 'Mrs',
'Dr', 'Ms', 'Rev', 'Fr', 'St', 'Sgt', 'pron', 'approx', 'lit',
- 'syn', 'transl', 'sess', 'fl', 'Op', 'Dec'] \
+ 'syn', 'transl', 'sess', 'fl', 'Op', 'Dec', 'Brig', 'Gen'] \
+ list('ABCDEFGHIJKLMNOPQRSTUVWXYZ') \
+ list('abcdefghijklmnopqrstuvwxyz')
t_sentence = r'^.{5,}?(?<!\b%s)(?:\.(?=[\[ ][A-Z0-9]|\Z)|\Z)'