import sysinfo, urllib, json, appuifw
URL = "http://192.168.0.2:9000"
imei = sysinfo.imei()
def json_request(req):
enc = json.write(req)
return json.read(urllib.urlopen(URL, enc).read())
def poll_server():
global voted_already
res = json_request({"voter":imei})
votes, winner = res["winner"]
if "closed" in res:
appuifw.note(u"Winner is %s with %d votes" %\
(winner, votes))
lock.signal()
return False
elif not voted_already and "title" in res:
appuifw.app.title = u"Vote: %s" % res["title"]
names = []
for name in res["choices"]:
names.append(unicode(name))
idx = appuifw.selection_list(names)
if idx == None:
lock.signal()
return False
else:
res = json_request({"voter":imei, "choice":names[idx]})
appuifw.note(unicode(res["msg"]))
voted_already = True
print "Waiting for final results..."
else:
print "%s has most votes (%d) currently" % (winner, votes)
e32.ao_sleep(5, poll_server)
return True
voted_already = False
lock = e32.Ao_lock()
print "Contacting server..."
if poll_server():
lock.wait()
print "Bye!"