Add Protocoin screen

This commit is contained in:
Tanner Collin 2022-09-01 17:15:27 -06:00
parent 256dda3693
commit 7a5be75e06

68
main.py
View File

@ -48,6 +48,14 @@ def fetch_classes():
except:
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:
import wolframalpha
wa_client = wolframalpha.Client(wa_api_key)
@ -143,6 +151,8 @@ think_result = ''
stats = {}
classes = {}
classes_start = 0
protocoin = {}
protocoin_line = 0
while True:
if current_screen == 'home':
@ -156,9 +166,10 @@ while True:
stdscr.addstr(9, 4, '[T] Stats')
stdscr.addstr(11, 4, '[S] Sign')
stdscr.addstr(13, 4, '[C] Classes')
stdscr.addstr(15, 4, '[P] Protocoin')
if wa_api_key:
stdscr.addstr(15, 4, '[K] Think')
stdscr.addstr(17, 4, '[A] About')
stdscr.addstr(17, 4, '[K] Think')
stdscr.addstr(19, 4, '[A] About')
stdscr.addstr(23, 1, ' Copyright (c) 1985 Bikeshed Computer Systems Corp.')
stdscr.clrtoeol()
@ -233,6 +244,45 @@ while True:
classes = fetch_classes()
stdscr.erase()
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':
stdscr.addstr(0, 1, 'PROTOVAC')
stdscr.addstr(2, 1, 'Protospace Sign')
@ -330,6 +380,8 @@ while True:
current_screen = 'debug'
elif button == 'a':
current_screen = 'about'
elif button == 'p':
current_screen = 'protocoin'
elif current_screen == 'debug':
if button == 'b':
current_screen = 'home'
@ -352,6 +404,18 @@ while True:
if classes_start > 0:
classes_start -= 1
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':
if sign_to_send:
if c == BACKSPACE_KEY: