diff --git a/tui.py b/tui.py index 4c89441..cdeeedf 100644 --- a/tui.py +++ b/tui.py @@ -127,22 +127,38 @@ class HomeScreen(Screen): def handle_input(self, c): button = self.get_button(c) - if button == 's': self.state.current_screen = 'stats' - elif button == 'i': self.state.current_screen = 'info' - elif button == 'n': self.state.current_screen = 'nametag' - elif button == 'l': self.state.current_screen = 'label' - elif button == 'z': self.state.current_screen = 'games' - elif button == '0': self.state.current_screen = 'asimov' - elif button == 'g': self.state.current_screen = 'sign' - elif button == 'v': self.state.current_screen = 'protovac_sign' - elif button == 'r': self.state.current_screen = 'train' - elif button == 'c': self.state.current_screen = 'classes' - elif button == 'm' and utils.openai_key: self.state.current_screen = 'message' - elif button == 't' and utils.wa_api_key: self.state.current_screen = 'think' - elif c == 68: self.state.current_screen = 'debug' - elif button == 'a': self.state.current_screen = 'about' - elif button == 'p': self.state.current_screen = 'protocoin' - else: self.try_highlight(c) + if button == 's': + self.state.current_screen = 'stats' + elif button == 'i': + self.state.current_screen = 'info' + elif button == 'n': + self.state.current_screen = 'nametag' + elif button == 'l': + self.state.current_screen = 'label' + elif button == 'z': + self.state.current_screen = 'games' + elif button == '0': + self.state.current_screen = 'asimov' + elif button == 'g': + self.state.current_screen = 'sign' + elif button == 'v': + self.state.current_screen = 'protovac_sign' + elif button == 'r': + self.state.current_screen = 'train' + elif button == 'c': + self.state.current_screen = 'classes' + elif button == 'm' and utils.openai_key: + self.state.current_screen = 'message' + elif button == 't' and utils.wa_api_key: + self.state.current_screen = 'think' + elif c == 68: + self.state.current_screen = 'debug' + elif button == 'a': + self.state.current_screen = 'about' + elif button == 'p': + self.state.current_screen = 'protocoin' + else: + self.try_highlight(c) class DebugScreen(Screen): @@ -157,8 +173,10 @@ class DebugScreen(Screen): def handle_input(self, c): button = self.get_button(c) - if button == 'b' or c == KEY_ESCAPE: self.state.current_screen = 'home' - elif c == 88: exit() + if button == 'b' or c == KEY_ESCAPE: + self.state.current_screen = 'home' + elif c == 88: + exit() elif c == 83: curses.nocbreak() self.stdscr.keypad(False) @@ -175,7 +193,8 @@ class DebugScreen(Screen): logging.info('Spawning nethack.') os.system('/usr/games/nethack') exit() - else: self.try_highlight(c) + else: + self.try_highlight(c) class StatsScreen(Screen): @@ -210,8 +229,10 @@ class StatsScreen(Screen): def handle_input(self, c): button = self.get_button(c) - if button == 'b' or c == KEY_ESCAPE: self.state.current_screen = 'home' - else: self.try_highlight(c) + if button == 'b' or c == KEY_ESCAPE: + self.state.current_screen = 'home' + else: + self.try_highlight(c) class ClassesScreen(Screen): @@ -255,7 +276,8 @@ class ClassesScreen(Screen): def handle_input(self, c): button = self.get_button(c) - if button == 'b' or c == KEY_ESCAPE: self.state.current_screen = 'home' + if button == 'b' or c == KEY_ESCAPE: + self.state.current_screen = 'home' elif button == 'j' or c == curses.KEY_DOWN or c == KEY_SPACE: if self.classes and self.classes_start+6 < len(self.classes): self.classes_start += 6 @@ -264,7 +286,8 @@ class ClassesScreen(Screen): if self.classes_start > 0: self.classes_start -= 6 self.stdscr.erase() - else: self.try_highlight(c) + else: + self.try_highlight(c) class TextScreen(Screen): def __init__(self, state, stdscr, title, text_content): @@ -287,7 +310,8 @@ class TextScreen(Screen): def handle_input(self, c): button = self.get_button(c) - if button == 'b' or c == KEY_ESCAPE: self.state.current_screen = 'home' + if button == 'b' or c == KEY_ESCAPE: + self.state.current_screen = 'home' elif button == 'j' or c == curses.KEY_DOWN or c == KEY_SPACE: if self.text_line+19 < len(self.lines): self.text_line += 19 @@ -296,7 +320,8 @@ class TextScreen(Screen): if self.text_line > 0: self.text_line -= 19 self.stdscr.erase() - else: self.try_highlight(c) + else: + self.try_highlight(c) class ProtocoinScreen(Screen): def __init__(self, state, stdscr): @@ -338,7 +363,8 @@ class ProtocoinScreen(Screen): def handle_input(self, c): button = self.get_button(c) - if button == 'b' or c == KEY_ESCAPE: self.state.current_screen = 'home' + if button == 'b' or c == KEY_ESCAPE: + self.state.current_screen = 'home' elif button == 'j' or c == curses.KEY_DOWN or c == KEY_SPACE: if self.protocoin and self.protocoin_line+19 < len(self.protocoin['transactions']): self.protocoin_line += 19 @@ -347,7 +373,8 @@ class ProtocoinScreen(Screen): if self.protocoin_line > 0: self.protocoin_line -= 19 self.stdscr.erase() - else: self.try_highlight(c) + else: + self.try_highlight(c) class SignScreen(Screen): def __init__(self, state, stdscr): @@ -391,11 +418,13 @@ class SignScreen(Screen): self.sign_to_send = '' else: self.sign_to_send = self.handle_text_input(c, self.sign_to_send) - elif button == 'b' or c == KEY_ESCAPE: self.state.current_screen = 'home' + elif button == 'b' or c == KEY_ESCAPE: + self.state.current_screen = 'home' elif button == 'e': self.is_typing = True self.sign_to_send = '_' - else: self.try_highlight(c) + else: + self.try_highlight(c) def is_entry_key(self, c): button = self.get_button(c) @@ -427,20 +456,34 @@ class ProtovacSignScreen(Screen): def handle_input(self, c): res = '' button = self.get_button(c) - if button == '1': res = utils.protovac_sign_color([255,255,255]) - elif button == '2': res = utils.protovac_sign_color([255,150,150]) - elif button == '3': res = utils.protovac_sign_color([150,255,150]) - elif button == '4': res = utils.protovac_sign_color([150,150,255]) - elif button == '5': res = utils.protovac_sign_color([255,50,255]) - elif button == '6': res = utils.protovac_sign_color([random.randint(50,255),random.randint(50,255),random.randint(50,255)]) - elif button == 'q': res = utils.protovac_sign_effect(0) - elif button == 'w': res = utils.protovac_sign_effect(2) - elif button == 'e': res = utils.protovac_sign_effect(49) - elif button == 'r': res = utils.protovac_sign_effect(90) - elif button == 't': res = utils.protovac_sign_effect(89) - elif button == 'y': res = utils.protovac_sign_effect(random.randint(3,90)) - elif button == 'b' or c == KEY_ESCAPE: self.state.current_screen = 'home' - else: self.try_highlight(c) + if button == '1': + res = utils.protovac_sign_color([255,255,255]) + elif button == '2': + res = utils.protovac_sign_color([255,150,150]) + elif button == '3': + res = utils.protovac_sign_color([150,255,150]) + elif button == '4': + res = utils.protovac_sign_color([150,150,255]) + elif button == '5': + res = utils.protovac_sign_color([255,50,255]) + elif button == '6': + res = utils.protovac_sign_color([random.randint(50,255),random.randint(50,255),random.randint(50,255)]) + elif button == 'q': + res = utils.protovac_sign_effect(0) + elif button == 'w': + res = utils.protovac_sign_effect(2) + elif button == 'e': + res = utils.protovac_sign_effect(49) + elif button == 'r': + res = utils.protovac_sign_effect(90) + elif button == 't': + res = utils.protovac_sign_effect(89) + elif button == 'y': + res = utils.protovac_sign_effect(random.randint(3,90)) + elif button == 'b' or c == KEY_ESCAPE: + self.state.current_screen = 'home' + else: + self.try_highlight(c) if res == 'Error': self.stdscr.addstr(21, 12, 'ERROR') @@ -530,7 +573,8 @@ class NametagScreen(Screen): utils.print_nametag(self.nametag_member[:-1], guest=False) self.nametag_member = '' self.state.current_screen = 'home' - else: self.nametag_member = self.handle_text_input(c, self.nametag_member) + else: + self.nametag_member = self.handle_text_input(c, self.nametag_member) elif self.nametag_guest: if c == KEY_ESCAPE: self.nametag_guest = '' @@ -542,17 +586,20 @@ class NametagScreen(Screen): utils.print_nametag(self.nametag_guest[:-1], guest=True) self.nametag_guest = '' self.state.current_screen = 'home' - else: self.nametag_guest = self.handle_text_input(c, self.nametag_guest) + else: + self.nametag_guest = self.handle_text_input(c, self.nametag_guest) else: self.is_typing = False - if button == 'b' or c == KEY_ESCAPE: self.state.current_screen = 'home' + if button == 'b' or c == KEY_ESCAPE: + self.state.current_screen = 'home' elif button == 'm': self.nametag_member = '_' self.is_typing = True elif button == 'g': self.nametag_guest = '_' self.is_typing = True - else: self.try_highlight(c) + else: + self.try_highlight(c) def is_entry_key(self, c): button = self.get_button(c) @@ -593,35 +640,58 @@ class LabelScreen(Screen): # Drawing logic for different sub-screens if self.sub_screen == 'menu': - self.stdscr.addstr(8, 4, '[T] Tool label', curses.A_REVERSE if self.state.highlight_keys else 0); self.stdscr.clrtoeol() - self.stdscr.addstr(10, 4, '[S] Sheet material', curses.A_REVERSE if self.state.highlight_keys else 0); self.stdscr.clrtoeol() - self.stdscr.addstr(12, 4, '[G] Generic label', curses.A_REVERSE if self.state.highlight_keys else 0); self.stdscr.clrtoeol() - self.stdscr.addstr(14, 4, '[F] Forum thread', curses.A_REVERSE if self.state.highlight_keys else 0); self.stdscr.clrtoeol() + self.stdscr.addstr(8, 4, '[T] Tool label', curses.A_REVERSE if self.state.highlight_keys else 0) + self.stdscr.clrtoeol() + self.stdscr.addstr(10, 4, '[S] Sheet material', curses.A_REVERSE if self.state.highlight_keys else 0) + self.stdscr.clrtoeol() + self.stdscr.addstr(12, 4, '[G] Generic label', curses.A_REVERSE if self.state.highlight_keys else 0) + self.stdscr.clrtoeol() + self.stdscr.addstr(14, 4, '[F] Forum thread', curses.A_REVERSE if self.state.highlight_keys else 0) + self.stdscr.clrtoeol() self.stdscr.addstr(23, 1, '[B] Back', curses.A_REVERSE if self.state.highlight_keys else 0) elif self.sub_screen == 'tool': - self.stdscr.addstr(8, 4, 'Enter Wiki-ID tool number: ' + self.label_tool); self.stdscr.clrtoeol() - for i in [10, 12, 14]: self.stdscr.move(i, 4); self.stdscr.clrtoeol() + self.stdscr.addstr(8, 4, 'Enter Wiki-ID tool number: ' + self.label_tool) + self.stdscr.clrtoeol() + for i in [10, 12, 14]: + self.stdscr.move(i, 4) + self.stdscr.clrtoeol() self.stdscr.addstr(23, 1, '[RETURN] Print [ESC] Cancel') elif self.sub_screen == 'material_name': - self.stdscr.addstr(10, 4, 'Enter your name: ' + self.label_material_name); self.stdscr.clrtoeol() - for i in [8, 12, 14]: self.stdscr.move(i, 4); self.stdscr.clrtoeol() + self.stdscr.addstr(10, 4, 'Enter your name: ' + self.label_material_name) + self.stdscr.clrtoeol() + for i in [8, 12, 14]: + self.stdscr.move(i, 4) + self.stdscr.clrtoeol() self.stdscr.addstr(23, 1, '[RETURN] Next [ESC] Cancel') elif self.sub_screen == 'material_contact': - self.stdscr.addstr(10, 4, 'Enter your name: ' + self.label_material_name[:-1]); self.stdscr.clrtoeol() - self.stdscr.addstr(12, 4, 'Enter your contact info: ' + self.label_material_contact); self.stdscr.clrtoeol() - for i in [8, 14]: self.stdscr.move(i, 4); self.stdscr.clrtoeol() + self.stdscr.addstr(10, 4, 'Enter your name: ' + self.label_material_name[:-1]) + self.stdscr.clrtoeol() + self.stdscr.addstr(12, 4, 'Enter your contact info: ' + self.label_material_contact) + self.stdscr.clrtoeol() + for i in [8, 14]: + self.stdscr.move(i, 4) + self.stdscr.clrtoeol() self.stdscr.addstr(23, 1, '[RETURN] Print [ESC] Cancel') elif self.sub_screen == 'generic': - self.stdscr.addstr(12, 4, 'Enter your message: ' + self.label_generic); self.stdscr.clrtoeol() - for i in [8, 10, 14]: self.stdscr.move(i, 4); self.stdscr.clrtoeol() + self.stdscr.addstr(12, 4, 'Enter your message: ' + self.label_generic) + self.stdscr.clrtoeol() + for i in [8, 10, 14]: + self.stdscr.move(i, 4) + self.stdscr.clrtoeol() self.stdscr.addstr(23, 1, '[RETURN] Print [ESC] Cancel') elif self.sub_screen == 'consumable': - self.stdscr.addstr(12, 4, 'Enter the item: ' + self.label_consumable); self.stdscr.clrtoeol() - for i in [8, 10, 14]: self.stdscr.move(i, 4); self.stdscr.clrtoeol() + self.stdscr.addstr(12, 4, 'Enter the item: ' + self.label_consumable) + self.stdscr.clrtoeol() + for i in [8, 10, 14]: + self.stdscr.move(i, 4) + self.stdscr.clrtoeol() self.stdscr.addstr(23, 1, '[RETURN] Print [ESC] Cancel') elif self.sub_screen == 'forum_search': - self.stdscr.addstr(14, 4, 'Search for a thread: ' + self.label_forum_search); self.stdscr.clrtoeol() - for i in [8, 10, 12]: self.stdscr.move(i, 4); self.stdscr.clrtoeol() + self.stdscr.addstr(14, 4, 'Search for a thread: ' + self.label_forum_search) + self.stdscr.clrtoeol() + for i in [8, 10, 12]: + self.stdscr.move(i, 4) + self.stdscr.clrtoeol() self.stdscr.addstr(23, 1, '[RETURN] Search [ESC] Cancel') elif self.sub_screen == 'forum_results': if self.search_results is not None: @@ -640,32 +710,44 @@ class LabelScreen(Screen): self.is_typing = self.sub_screen not in ['menu', 'forum_results'] if self.sub_screen == 'menu': - if button == 'b' or c == KEY_ESCAPE: self.state.current_screen = 'home' + if button == 'b' or c == KEY_ESCAPE: + self.state.current_screen = 'home' elif button == 't': - self.sub_screen = 'tool'; self.label_tool = '_' + self.sub_screen = 'tool' + self.label_tool = '_' self.is_typing = True elif button == 's': - self.sub_screen = 'material_name'; self.label_material_name = '_' + self.sub_screen = 'material_name' + self.label_material_name = '_' self.is_typing = True elif button == 'g': - self.sub_screen = 'generic'; self.label_generic = '_' + self.sub_screen = 'generic' + self.label_generic = '_' self.is_typing = True elif button == 'c': - self.sub_screen = 'consumable'; self.label_consumable = '_' + self.sub_screen = 'consumable' + self.label_consumable = '_' self.is_typing = True elif button == 'f': - self.sub_screen = 'forum_search'; self.label_forum_search = '_' + self.sub_screen = 'forum_search' + self.label_forum_search = '_' self.is_typing = True - else: self.try_highlight(c) + else: + self.try_highlight(c) elif self.sub_screen == 'tool': if c == KEY_ESCAPE: self.on_enter() self.stdscr.erase() elif c == KEY_ENTER: if len(self.label_tool) > 1: - self.stdscr.addstr(15, 4, 'Printing...'); self.stdscr.refresh() - try: utils.print_tool_label(self.label_tool[:-1]) - except: self.stdscr.addstr(15, 4, 'Error.'); self.stdscr.refresh(); time.sleep(2) + self.stdscr.addstr(15, 4, 'Printing...') + self.stdscr.refresh() + try: + utils.print_tool_label(self.label_tool[:-1]) + except: + self.stdscr.addstr(15, 4, 'Error.') + self.stdscr.refresh() + time.sleep(2) self.on_enter() self.stdscr.erase() elif c <= 57 and c >= 48: @@ -675,56 +757,76 @@ class LabelScreen(Screen): self.on_enter() self.stdscr.erase() elif c == KEY_ENTER and len(self.label_material_name) > 1: - self.sub_screen = 'material_contact'; self.label_material_contact = '_' - else: self.label_material_name = self.handle_text_input(c, self.label_material_name) + self.sub_screen = 'material_contact' + self.label_material_contact = '_' + else: + self.label_material_name = self.handle_text_input(c, self.label_material_name) elif self.sub_screen == 'material_contact': if c == KEY_ESCAPE: self.on_enter() self.stdscr.erase() elif c == KEY_ENTER and len(self.label_material_contact) > 1: - self.stdscr.addstr(15, 4, 'Printing...'); self.stdscr.refresh() + self.stdscr.addstr(15, 4, 'Printing...') + self.stdscr.refresh() utils.print_sheet_label(self.label_material_name[:-1], self.label_material_contact[:-1]) self.on_enter() self.stdscr.erase() - else: self.label_material_contact = self.handle_text_input(c, self.label_material_contact) + else: + self.label_material_contact = self.handle_text_input(c, self.label_material_contact) elif self.sub_screen == 'generic': if c == KEY_ESCAPE: self.on_enter() self.stdscr.erase() elif c == KEY_ENTER and len(self.label_generic) > 1: - self.stdscr.addstr(15, 4, 'Printing...'); self.stdscr.refresh() - try: utils.print_generic_label(self.label_generic[:-1]) - except: self.stdscr.addstr(15, 4, 'Error.'); self.stdscr.refresh(); time.sleep(2) + self.stdscr.addstr(15, 4, 'Printing...') + self.stdscr.refresh() + try: + utils.print_generic_label(self.label_generic[:-1]) + except: + self.stdscr.addstr(15, 4, 'Error.') + self.stdscr.refresh() + time.sleep(2) self.on_enter() self.stdscr.erase() - else: self.label_generic = self.handle_text_input(c, self.label_generic) + else: + self.label_generic = self.handle_text_input(c, self.label_generic) elif self.sub_screen == 'consumable': if c == KEY_ESCAPE: self.on_enter() self.stdscr.erase() elif c == KEY_ENTER and len(self.label_consumable) > 1: - self.stdscr.addstr(15, 4, 'Printing...'); self.stdscr.refresh() - try: utils.print_consumable_label(self.label_consumable[:-1]) - except: self.stdscr.addstr(15, 4, 'Error.'); self.stdscr.refresh(); time.sleep(2) + self.stdscr.addstr(15, 4, 'Printing...') + self.stdscr.refresh() + try: + utils.print_consumable_label(self.label_consumable[:-1]) + except: + self.stdscr.addstr(15, 4, 'Error.') + self.stdscr.refresh() + time.sleep(2) self.on_enter() self.stdscr.erase() - else: self.label_consumable = self.handle_text_input(c, self.label_consumable) + else: + self.label_consumable = self.handle_text_input(c, self.label_consumable) elif self.sub_screen == 'forum_search': if c == KEY_ESCAPE: self.on_enter() self.stdscr.erase() elif c == KEY_ENTER and len(self.label_forum_search) > 2: - self.stdscr.addstr(16, 4, 'Searching...'); self.stdscr.refresh() + self.stdscr.addstr(16, 4, 'Searching...') + self.stdscr.refresh() try: self.search_results = utils.search_forum_thread(self.label_forum_search[:-1]) except: - self.stdscr.addstr(16, 4, 'Error.'); self.stdscr.refresh(); time.sleep(2) + self.stdscr.addstr(16, 4, 'Error.') + self.stdscr.refresh() + time.sleep(2) self.on_enter() self.stdscr.erase() return self.sub_screen = 'forum_results' self.stdscr.erase() - else: self.label_forum_search = self.handle_text_input(c, self.label_forum_search) + else: + self.label_forum_search = self.handle_text_input(c, self.label_forum_search) elif self.sub_screen == 'forum_results': if c == KEY_ESCAPE: self.on_enter() @@ -732,13 +834,20 @@ class LabelScreen(Screen): elif c >= 49 and c <= 57: num = int(chr(c)) if self.search_results and num <= len(self.search_results): - self.stdscr.addstr(21, 1, 'Printing...'); self.stdscr.refresh() - try: utils.print_forum_label(self.search_results[num-1]) - except: self.stdscr.addstr(15, 4, 'Error.'); self.stdscr.refresh(); time.sleep(2) + self.stdscr.addstr(21, 1, 'Printing...') + self.stdscr.refresh() + try: + utils.print_forum_label(self.search_results[num-1]) + except: + self.stdscr.addstr(15, 4, 'Error.') + self.stdscr.refresh() + time.sleep(2) self.on_enter() self.stdscr.erase() - else: self.try_highlight(c) - else: self.try_highlight(c) + else: + self.try_highlight(c) + else: + self.try_highlight(c) def is_entry_key(self, c): if self.sub_screen == 'menu': @@ -765,17 +874,28 @@ class GamesScreen(Screen): def handle_input(self, c): button = self.get_button(c) game_path = None - if button == 'b' or c == KEY_ESCAPE: self.state.current_screen = 'home' - elif button == 's' and utils.HAS_SUDOKU: game_path = utils.SUDOKU_LOCATION + ' -c' - elif button == 'h' and utils.HAS_FROTZ and utils.HAS_HITCHHIKERS: game_path = utils.FROTZ_LOCATION + ' ' + utils.HITCHHIKERS_LOCATION - elif button == '2' and utils.HAS_2048: game_path = utils._2048_LOCATION - elif button == 'm' and utils.HAS_MORIA: game_path = utils.MORIA_LOCATION - elif button == 'n' and utils.HAS_NETHACK: game_path = utils.NETHACK_LOCATION - elif button == 'd' and utils.HAS_DRUGWARS: game_path = utils.DRUGWARS_LOCATION - else: self.try_highlight(c) + if button == 'b' or c == KEY_ESCAPE: + self.state.current_screen = 'home' + elif button == 's' and utils.HAS_SUDOKU: + game_path = utils.SUDOKU_LOCATION + ' -c' + elif button == 'h' and utils.HAS_FROTZ and utils.HAS_HITCHHIKERS: + game_path = utils.FROTZ_LOCATION + ' ' + utils.HITCHHIKERS_LOCATION + elif button == '2' and utils.HAS_2048: + game_path = utils._2048_LOCATION + elif button == 'm' and utils.HAS_MORIA: + game_path = utils.MORIA_LOCATION + elif button == 'n' and utils.HAS_NETHACK: + game_path = utils.NETHACK_LOCATION + elif button == 'd' and utils.HAS_DRUGWARS: + game_path = utils.DRUGWARS_LOCATION + else: + self.try_highlight(c) if game_path: - curses.nocbreak(); self.stdscr.keypad(False); curses.echo(); curses.endwin() + curses.nocbreak() + self.stdscr.keypad(False) + curses.echo() + curses.endwin() logging.info('Spawning game: %s', game_path) os.system(game_path) exit() @@ -824,10 +944,15 @@ I will be terse in my responses.''')] def handle_input(self, c): button = self.get_button(c) if self.is_typing: - if c == KEY_ESCAPE: self.is_typing = False; self.message_to_send = ''; self.stdscr.erase() + if c == KEY_ESCAPE: + self.is_typing = False + self.message_to_send = '' + self.stdscr.erase() elif c == KEY_ENTER: if len(self.message_to_send) > 1: - self.stdscr.addstr(21, 21, 'Sending...'); self.stdscr.clrtoeol(); self.stdscr.refresh() + self.stdscr.addstr(21, 21, 'Sending...') + self.stdscr.clrtoeol() + self.stdscr.refresh() self.message_to_send = self.message_to_send[:-1] lines = textwrap.wrap(self.message_to_send, width=80, initial_indent=' '*20, subsequent_indent=' '*20) self.messages.append(''); self.messages.extend(lines) @@ -835,13 +960,19 @@ I will be terse in my responses.''')] gpt_reply = utils.message_protovac(self.thread) self.thread.append(gpt_reply) lines = textwrap.wrap(gpt_reply['content'], width=60) - self.messages.append(''); self.messages.extend(lines) + self.messages.append('') + self.messages.extend(lines) self.stdscr.erase() self.message_to_send = '_' - else: self.message_to_send = self.handle_text_input(c, self.message_to_send) - elif button == 'b' or c == KEY_ESCAPE: self.state.current_screen = 'home' - elif button == 'e': self.is_typing = True; self.message_to_send = '_' - else: self.try_highlight(c) + else: + self.message_to_send = self.handle_text_input(c, self.message_to_send) + elif button == 'b' or c == KEY_ESCAPE: + self.state.current_screen = 'home' + elif button == 'e': + self.is_typing = True + self.message_to_send = '_' + else: + self.try_highlight(c) def is_entry_key(self, c): button = self.get_button(c) @@ -901,10 +1032,15 @@ class ThinkScreen(Screen): def handle_input(self, c): button = self.get_button(c) if self.is_typing: - if c == KEY_ESCAPE: self.is_typing = False; self.think_to_send = ''; self.stdscr.erase() + if c == KEY_ESCAPE: + self.is_typing = False + self.think_to_send = '' + self.stdscr.erase() elif c == KEY_ENTER: if len(self.think_to_send) > 1: - self.stdscr.addstr(9, 4, 'Thinking...'); self.stdscr.clrtoeol(); self.stdscr.refresh() + self.stdscr.addstr(9, 4, 'Thinking...') + self.stdscr.clrtoeol() + self.stdscr.refresh() query = self.think_to_send[:-1] logging.info('Thinking about: %s', query) self.think_result = utils.think_send(query) @@ -912,10 +1048,15 @@ class ThinkScreen(Screen): self.is_typing = False self.think_to_send = '' self.stdscr.erase() - else: self.think_to_send = self.handle_text_input(c, self.think_to_send) - elif button == 'b' or c == KEY_ESCAPE: self.state.current_screen = 'home' - elif button == 'e': self.is_typing = True; self.think_to_send = '_' - else: self.try_highlight(c) + else: + self.think_to_send = self.handle_text_input(c, self.think_to_send) + elif button == 'b' or c == KEY_ESCAPE: + self.state.current_screen = 'home' + elif button == 'e': + self.is_typing = True + self.think_to_send = '_' + else: + self.try_highlight(c) def is_entry_key(self, c): button = self.get_button(c) @@ -924,22 +1065,27 @@ class ThinkScreen(Screen): class AboutScreen(Screen): def draw(self): self.stdscr.addstr(0, 1, 'PROTOVAC UNIVERSAL COMPUTER') - self.stdscr.addstr(2, 1, 'About'); self.stdscr.addstr(3, 1, '=====') + self.stdscr.addstr(2, 1, 'About') + self.stdscr.addstr(3, 1, '=====') self.stdscr.addstr(5, 1, 'Protovac is a universal mainframe computer accessible by terminal.') - self.stdscr.addstr(7, 1, 'License'); self.stdscr.addstr(8, 1, '-------') + self.stdscr.addstr(7, 1, 'License') + self.stdscr.addstr(8, 1, '-------') self.stdscr.addstr(10, 1, 'This program is free and open-source software licensed under the MIT License.') self.stdscr.addstr(11, 1, 'Please see the LICENSE file for details. This means you have the right to') self.stdscr.addstr(12, 1, 'study, change, and distribute the software and source code to anyone and for') self.stdscr.addstr(13, 1, 'any purpose.') self.stdscr.addstr(15, 1, 'Source code: github.com/Protospace/protovac') - self.stdscr.addstr(17, 1, 'Acknowledgements'); self.stdscr.addstr(18, 1, '----------------') + self.stdscr.addstr(17, 1, 'Acknowledgements') + self.stdscr.addstr(18, 1, '----------------') self.stdscr.addstr(20, 1, 'Thanks to Peter for lending the Morrow MTD-60 terminal and Jamie for the Pi.') self.stdscr.addstr(23, 1, '[B] Back', curses.A_REVERSE if self.state.highlight_keys else 0) def handle_input(self, c): button = self.get_button(c) - if button == 'b' or c == KEY_ESCAPE: self.state.current_screen = 'home' - else: self.try_highlight(c) + if button == 'b' or c == KEY_ESCAPE: + self.state.current_screen = 'home' + else: + self.try_highlight(c) class HelpScreen(Screen): def draw(self): @@ -951,5 +1097,7 @@ class HelpScreen(Screen): def handle_input(self, c): button = self.get_button(c) - if button == 'o': self.state.current_screen = 'home' - else: self.try_highlight(c) + if button == 'o': + self.state.current_screen = 'home' + else: + self.try_highlight(c)