Search shim, and an encoding fix.
parent
78ec273046
commit
12c8cd07f5
|
@ -90,7 +90,7 @@ c.commands = ['c']
|
||||||
c.example = '.c 5 + 3'
|
c.example = '.c 5 + 3'
|
||||||
|
|
||||||
def py(phenny, input):
|
def py(phenny, input):
|
||||||
query = input.group(2)
|
query = input.group(2).encode('utf-8')
|
||||||
uri = 'http://tumbolia.appspot.com/py/'
|
uri = 'http://tumbolia.appspot.com/py/'
|
||||||
answer = web.get(uri + web.urllib.quote(query))
|
answer = web.get(uri + web.urllib.quote(query))
|
||||||
if answer:
|
if answer:
|
||||||
|
|
|
@ -11,7 +11,7 @@ def hello(phenny, input):
|
||||||
greeting = random.choice(('Hi', 'Hey', 'Hello'))
|
greeting = random.choice(('Hi', 'Hey', 'Hello'))
|
||||||
punctuation = random.choice(('', '!'))
|
punctuation = random.choice(('', '!'))
|
||||||
phenny.say(greeting + ' ' + input.nick + punctuation)
|
phenny.say(greeting + ' ' + input.nick + punctuation)
|
||||||
hello.rule = r'(?i)(hi|hello|hey) $nickname\b'
|
hello.rule = r'(?i)(hi|hello|hey) $nickname[ \t]*$'
|
||||||
|
|
||||||
def interjection(phenny, input):
|
def interjection(phenny, input):
|
||||||
phenny.say(input.nick + '!')
|
phenny.say(input.nick + '!')
|
||||||
|
|
|
@ -10,17 +10,31 @@ http://inamidst.com/phenny/
|
||||||
import re
|
import re
|
||||||
import web
|
import web
|
||||||
|
|
||||||
|
class Grab(web.urllib.URLopener):
|
||||||
|
def __init__(self, *args):
|
||||||
|
self.version = 'Mozilla/5.0 (Phenny)'
|
||||||
|
web.urllib.URLopener.__init__(self, *args)
|
||||||
|
self.addheader('Referer', 'https://github.com/sbp/phenny')
|
||||||
|
def http_error_default(self, url, fp, errcode, errmsg, headers):
|
||||||
|
return web.urllib.addinfourl(fp, [headers, errcode], "http:" + url)
|
||||||
|
|
||||||
def search(query):
|
def search(query):
|
||||||
"""Search using AjaxSearch, and return its JSON."""
|
"""Search using AjaxSearch, and return its JSON."""
|
||||||
uri = 'http://ajax.googleapis.com/ajax/services/search/web'
|
uri = 'http://ajax.googleapis.com/ajax/services/search/web'
|
||||||
args = '?v=1.0&safe=off&q=' + web.urllib.quote(query.encode('utf-8'))
|
args = '?v=1.0&safe=off&q=' + web.urllib.quote(query.encode('utf-8'))
|
||||||
|
handler = web.urllib._urlopener
|
||||||
|
web.urllib._urlopener = Grab()
|
||||||
bytes = web.get(uri + args)
|
bytes = web.get(uri + args)
|
||||||
|
web.urllib._urlopener = handler
|
||||||
return web.json(bytes)
|
return web.json(bytes)
|
||||||
|
|
||||||
def result(query):
|
def result(query):
|
||||||
results = search(query)
|
results = search(query)
|
||||||
try: return results['responseData']['results'][0]['unescapedUrl']
|
try: return results['responseData']['results'][0]['unescapedUrl']
|
||||||
except IndexError: return None
|
except IndexError: return None
|
||||||
|
except TypeError:
|
||||||
|
print results
|
||||||
|
return False
|
||||||
|
|
||||||
def count(query):
|
def count(query):
|
||||||
results = search(query)
|
results = search(query)
|
||||||
|
@ -48,6 +62,7 @@ def g(phenny, input):
|
||||||
if not hasattr(phenny.bot, 'last_seen_uri'):
|
if not hasattr(phenny.bot, 'last_seen_uri'):
|
||||||
phenny.bot.last_seen_uri = {}
|
phenny.bot.last_seen_uri = {}
|
||||||
phenny.bot.last_seen_uri[input.sender] = uri
|
phenny.bot.last_seen_uri[input.sender] = uri
|
||||||
|
elif uri is False: phenny.reply("Problem getting data from Google.")
|
||||||
else: phenny.reply("No results found for '%s'." % query)
|
else: phenny.reply("No results found for '%s'." % query)
|
||||||
g.commands = ['g']
|
g.commands = ['g']
|
||||||
g.priority = 'high'
|
g.priority = 'high'
|
||||||
|
|
Loading…
Reference in New Issue