EMF_Camp_Badge/tildr/person.py

67 lines
1.9 KiB
Python

import http, ugfx, buttons
from tilda import Buttons
from tildr.shared import top_left_logo
def get_next_person(state):
try:
resp = http.get(state['api']+'/get_user/'+state['profile']['unique_identifier']).json()
except:
return None
if not resp['success']:
return None
return resp['value']
def screen(state):
loading = ugfx.Container(0, 0, 240, 320)
loading.text(5, 100, "Loading...", ugfx.WHITE)
state['ui'].append(loading)
loading.show()
person = get_next_person(state)
loading.hide()
if person is None:
state['next'] = "NO_MORE"
return
window = ugfx.Container(0, 0, 240, 320)
window.show()
top_left_logo()
ugfx.set_default_font(ugfx.FONT_TITLE)
l1 = ugfx.Label(5, 90, 230, 40, person["username"], parent=window, justification=ugfx.Label.LEFTTOP)
ugfx.set_default_font(ugfx.FONT_SMALL)
window.text(200, 92, person["age"], ugfx.WHITE)
l2 = ugfx.Label(5, 120, 230, 60, person["tag_line"], parent=window)
l3 = ugfx.Label(5, 200, 230, 40, person["looking_for"], parent=window)
window.text(5, 180, "Looking for...", ugfx.RED)
if not person["contact"].startswith("@"):
person["contact"] = "@" + person["contact"]
window.text(5, 245, person["contact"], ugfx.BLUE)
b2 = ugfx.Button(0, 280, 120, 40, "< Edit profile", parent=window, shape=ugfx.Button.RECT, style=None)
b1 = ugfx.Button(120, 280, 120, 40, "Swipe >", parent=window, shape=ugfx.Button.RECT, style=None)
state['ui'].append(window)
state['ui'].append(l1)
state['ui'].append(l2)
state['ui'].append(l3)
state['ui'].append(b1)
state['ui'].append(b2)
def actions(state):
if buttons.is_triggered(Buttons.BTN_B) or buttons.is_triggered(Buttons.JOY_Right):
state['next'] = "NEXT_PERSON"
if buttons.is_triggered(Buttons.BTN_A) or buttons.is_triggered(Buttons.JOY_Left):
state['next'] = "PROFILE"