diff options
author | Sean B. Palmer <sbp@aldebaran.local> | 2010-11-13 11:55:04 +0000 |
---|---|---|
committer | Sean B. Palmer <sbp@aldebaran.local> | 2010-11-13 11:55:04 +0000 |
commit | 5ebe01386d46f0a3a50b2b02416d8e7ee222af7e (patch) | |
tree | 7128595c9a945d507f47d8177d8871ddc88169dc /modules/weather.py | |
parent | ca95157acbe6e340573130e45a851b39e547159d (diff) | |
download | bot-5ebe01386d46f0a3a50b2b02416d8e7ee222af7e.tar.gz bot-5ebe01386d46f0a3a50b2b02416d8e7ee222af7e.tar.bz2 bot-5ebe01386d46f0a3a50b2b02416d8e7ee222af7e.zip |
Services fixes, and a standard JSON API.
Diffstat (limited to 'modules/weather.py')
-rwxr-xr-x | modules/weather.py | 14 |
1 files changed, 1 insertions, 13 deletions
diff --git a/modules/weather.py b/modules/weather.py index 232e58f..29b01e5 100755 --- a/modules/weather.py +++ b/modules/weather.py @@ -13,18 +13,6 @@ from tools import deprecated r_from = re.compile(r'(?i)([+-]\d+):00 from') -r_json = re.compile(r'^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]+$') -r_string = re.compile(r'("(\\.|[^"\\])*")') -env = {'__builtins__': None, 'null': None, - 'true': True, 'false': False} - -def json(text): - """Evaluate JSON text safely (we hope).""" - if r_json.match(r_string.sub('', text)): - text = r_string.sub(lambda m: 'u' + m.group(1), text) - return eval(text.strip(' \t\r\n'), env, {}) - raise ValueError('Input must be serialised JSON.') - def location(name): name = urllib.quote(name.encode('utf-8')) uri = 'http://ws.geonames.org/searchJSON?q=%s&maxRows=1' % name @@ -34,7 +22,7 @@ def location(name): bytes = u.read() u.close() - results = json(bytes) + results = web.json(bytes) try: name = results['geonames'][0]['name'] except IndexError: return '?', '?', '0', '0' |