Add Protocoin screen
This commit is contained in:
parent
256dda3693
commit
7a5be75e06
68
main.py
68
main.py
|
@ -48,6 +48,14 @@ def fetch_classes():
|
||||||
except:
|
except:
|
||||||
return 'Error.'
|
return 'Error.'
|
||||||
|
|
||||||
|
def fetch_protocoin():
|
||||||
|
try:
|
||||||
|
r = requests.get('https://api.spaceport.dns.t0.vc/protocoin/transactions/', timeout=5)
|
||||||
|
r.raise_for_status()
|
||||||
|
return r.json()
|
||||||
|
except:
|
||||||
|
return 'Error.'
|
||||||
|
|
||||||
if wa_api_key:
|
if wa_api_key:
|
||||||
import wolframalpha
|
import wolframalpha
|
||||||
wa_client = wolframalpha.Client(wa_api_key)
|
wa_client = wolframalpha.Client(wa_api_key)
|
||||||
|
@ -143,6 +151,8 @@ think_result = ''
|
||||||
stats = {}
|
stats = {}
|
||||||
classes = {}
|
classes = {}
|
||||||
classes_start = 0
|
classes_start = 0
|
||||||
|
protocoin = {}
|
||||||
|
protocoin_line = 0
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
if current_screen == 'home':
|
if current_screen == 'home':
|
||||||
|
@ -156,9 +166,10 @@ while True:
|
||||||
stdscr.addstr(9, 4, '[T] Stats')
|
stdscr.addstr(9, 4, '[T] Stats')
|
||||||
stdscr.addstr(11, 4, '[S] Sign')
|
stdscr.addstr(11, 4, '[S] Sign')
|
||||||
stdscr.addstr(13, 4, '[C] Classes')
|
stdscr.addstr(13, 4, '[C] Classes')
|
||||||
|
stdscr.addstr(15, 4, '[P] Protocoin')
|
||||||
if wa_api_key:
|
if wa_api_key:
|
||||||
stdscr.addstr(15, 4, '[K] Think')
|
stdscr.addstr(17, 4, '[K] Think')
|
||||||
stdscr.addstr(17, 4, '[A] About')
|
stdscr.addstr(19, 4, '[A] About')
|
||||||
|
|
||||||
stdscr.addstr(23, 1, ' Copyright (c) 1985 Bikeshed Computer Systems Corp.')
|
stdscr.addstr(23, 1, ' Copyright (c) 1985 Bikeshed Computer Systems Corp.')
|
||||||
stdscr.clrtoeol()
|
stdscr.clrtoeol()
|
||||||
|
@ -233,6 +244,45 @@ while True:
|
||||||
classes = fetch_classes()
|
classes = fetch_classes()
|
||||||
stdscr.erase()
|
stdscr.erase()
|
||||||
skip_input = True
|
skip_input = True
|
||||||
|
elif current_screen == 'protocoin':
|
||||||
|
stdscr.addstr(0, 1, 'PROTOVAC')
|
||||||
|
stdscr.addstr(2, 1, 'Protocoin')
|
||||||
|
stdscr.addstr(3, 1, '=========')
|
||||||
|
if protocoin:
|
||||||
|
txs = protocoin['transactions']
|
||||||
|
lines = []
|
||||||
|
|
||||||
|
lines.append('Protocoin is used to buy things from Protospace\'s vending machines.')
|
||||||
|
lines.append('')
|
||||||
|
lines.append('Total in circulation: {}'.format(protocoin['total_protocoin']))
|
||||||
|
lines.append('')
|
||||||
|
lines.append('Transactions:')
|
||||||
|
lines.append('')
|
||||||
|
lines.append('ID Date Method Amount Category')
|
||||||
|
|
||||||
|
for tx in txs:
|
||||||
|
lines.append('{} {} {:<11} {:<6} {:<11}'.format(
|
||||||
|
tx['id'],
|
||||||
|
tx['date'],
|
||||||
|
tx['account_type'],
|
||||||
|
tx['protocoin'],
|
||||||
|
'Transfer' if tx['category'] == 'Other' else tx['category'],
|
||||||
|
))
|
||||||
|
|
||||||
|
offset = 5
|
||||||
|
for num, line in enumerate(lines[protocoin_line:protocoin_line+17]):
|
||||||
|
stdscr.addstr(num + offset, 1, line)
|
||||||
|
else:
|
||||||
|
stdscr.addstr(5, 1, 'Loading...')
|
||||||
|
|
||||||
|
stdscr.addstr(23, 1, '[B] Back [J] Down [K] Up')
|
||||||
|
stdscr.clrtoeol()
|
||||||
|
stdscr.refresh()
|
||||||
|
|
||||||
|
if not protocoin:
|
||||||
|
protocoin = fetch_protocoin()
|
||||||
|
stdscr.erase()
|
||||||
|
skip_input = True
|
||||||
elif current_screen == 'sign':
|
elif current_screen == 'sign':
|
||||||
stdscr.addstr(0, 1, 'PROTOVAC')
|
stdscr.addstr(0, 1, 'PROTOVAC')
|
||||||
stdscr.addstr(2, 1, 'Protospace Sign')
|
stdscr.addstr(2, 1, 'Protospace Sign')
|
||||||
|
@ -330,6 +380,8 @@ while True:
|
||||||
current_screen = 'debug'
|
current_screen = 'debug'
|
||||||
elif button == 'a':
|
elif button == 'a':
|
||||||
current_screen = 'about'
|
current_screen = 'about'
|
||||||
|
elif button == 'p':
|
||||||
|
current_screen = 'protocoin'
|
||||||
elif current_screen == 'debug':
|
elif current_screen == 'debug':
|
||||||
if button == 'b':
|
if button == 'b':
|
||||||
current_screen = 'home'
|
current_screen = 'home'
|
||||||
|
@ -352,6 +404,18 @@ while True:
|
||||||
if classes_start > 0:
|
if classes_start > 0:
|
||||||
classes_start -= 1
|
classes_start -= 1
|
||||||
stdscr.erase()
|
stdscr.erase()
|
||||||
|
elif current_screen == 'protocoin':
|
||||||
|
if button == 'b':
|
||||||
|
current_screen = 'home'
|
||||||
|
protocoin = {}
|
||||||
|
protocoin_line = 0
|
||||||
|
elif button == 'j':
|
||||||
|
protocoin_line += 1
|
||||||
|
stdscr.erase()
|
||||||
|
elif button == 'k':
|
||||||
|
if protocoin_line > 0:
|
||||||
|
protocoin_line -= 1
|
||||||
|
stdscr.erase()
|
||||||
elif current_screen == 'sign':
|
elif current_screen == 'sign':
|
||||||
if sign_to_send:
|
if sign_to_send:
|
||||||
if c == BACKSPACE_KEY:
|
if c == BACKSPACE_KEY:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user