EMF_Camp_Badge/tildr/profile.py

67 lines
1.6 KiB
Python

import database, ujson, sim800, dialogs, http
def get_profile():
profile_json = database.get("tildr_profile")
if profile_json is None:
return None
profile = ujson.loads(profile_json)
return profile
def create_profile(state):
try:
http.post(state['api']+'/create_user', json=state['profile']).raise_for_status().close()
except Exception as ex:
print(ex)
return False
profile_json = ujson.dumps(state['profile'])
database.set("tildr_profile", profile_json)
return True
def screen(state):
if state['profile'] is None:
state['profile'] = {
'unique_identifier': "",
'username': "",
'age': "",
'tag_line': "",
'looking_for': "",
'contact': ""
}
ds = [
["username", "What's your name?"],
["age", "What's your age?"],
["tag_line", "Tell us your tagline"],
["looking_for", "And what you're looking for"],
["contact", "And your twitter username"],
]
i = 0
while i < len(ds):
res = dialogs.prompt_text(ds[i][1], init_text=state['profile'][ds[i][0]])
if res is None:
i -= 1
if i < 0:
state['next'] = "SPLASH"
return
elif res != "":
state['profile'][ds[i][0]] = res
i += 1
state['profile']['unique_identifier'] = sim800.imei()
if not create_profile(state):
state['next'] = "ERROR"
return
state['next'] = "NEXT_PERSON"
def actions(state):
return