import re
import inbox
import urllib
import appuifw
import graphics
YAHOO_ID = 'yguBonLV34G_yNbt8lOhP0exrNb.T0qMqLNhy8uvXvXRBQK6AeHbWD6VQlDqWg'
OPENCELL_ID = '435a8d2941a39abdd8955fa10138a40f'
YAHOO_URL = 'http://local.yahooapis.com/MapsService/V1/mapImage?'
OPENCELL_URL = 'http://www.opencellid.org/cell/get?'
TMP_MAP = r'C:\data\Gps2smS\map_tmp.png'
NUMBER = u'' #appuifw.query(u'SMS Callback number', 'text')
box = inbox.Inbox()
msg = [] # [(u'Address', u'Message'), (...)]
def list_manager():
item = listbox.current()
data = msg[item][1].split('\n')
data = [i.split(':')[1] for i in data]
# Check for gps
if data[1] != 'NoSat':
# show coordinates through yahoo map
params = {'appid': YAHOO_ID,
'latitude': lat,
'longitude': lon,
'image_type': 'png',
'image_height': '300',
'image_width': '300',
'zoom': '6'}
url = YAHOO_URL + urllib.urlencode(params)
yahoo = urllib.urlopen(url).read().split('\n')[1].split('>')[1].split('<')[0]
image = urllib.urlopen(yahoo).read()
f = open(TMP_MAP, 'w')
f.write(image)
f.close()
appuifw.app.body = c
c.blit(graphics.Image.open(TMP_MAP))
# Check for gms
elif data[7] != 0:
# look for coordinates on opencell
params = {'key': OPENCELL_ID,
'mnc': data[8],
'mcc': data[7],
'lac': data[9],
'cellid': data[10]}
url = OPENCELL_URL + urllib.urlencode(params)
opencell = urllib.urlopen(url).read()
lat, range, lon = re.findall(r'(?:lat|lon|range)="([\d.]*)"', opencell)
# show coordinates through yahoo map
params = {'appid': YAHOO_ID,
'latitude': lat,
'longitude': lon,
'image_type': 'png',
'image_height': '300',
'image_width': '300',
'radius': float(range) * 0.0006213,
'zoom': '8'}
url = YAHOO_URL + urllib.urlencode(params)
yahoo = urllib.urlopen(url).read().split('\n')[1].split('>')[1].split('<')[0]
image = urllib.urlopen(yahoo).read()
f = open(TMP_MAP, 'w')
f.write(image)
f.close()
appuifw.app.body = c
c.blit(graphics.Image.open(TMP_MAP))
def quit():
lock.signal()
for sms in box.sms_messages()[:30]:
address = box.address(sms)
content = box.content(sms)
message = (address, content)
msg.append(message)
listbox = appuifw.Listbox(msg, list_manager)
appuifw.app.body = listbox
c = appuifw.Canvas()
lock = e32.Ao_lock()
lock.wait()