self._log_buffer += [f'---> {event.payload}']
self._draw_log()
elif event.type_ == 'INPUT_PROMPT':
- if event.payload[0] == 'ENTER':
+ if event.payload[0] == 'ENTER' and self._prompt:
self.broadcast('PROMPT_COMMAND', self._prompt)
self._prompt = ''
elif event.payload[0] == 'BACKSPACE':
self.broadcast('INPUT_PROMPT', ('BACKSPACE',))
elif len(yielded) == 1:
self.broadcast('INPUT_PROMPT', ('CHARACTER', yielded))
- elif yielded == '[81]':
- self.broadcast('QUIT')
else:
- self.broadcast('ALERT', f'unknown combo: {yielded}')
+ self.broadcast('ALERT', f'unknown keyboard input: {yielded}')
def run() -> None:
q_to_main.eput('SEND',
IrcMessage('PONG', [msg.parameters[0]]))
elif event.type_ == 'PROMPT_COMMAND':
- toks = event.payload.split(maxsplit=1)
- if toks and toks[0] in {'QUIT'}:
- q_to_main.eput('SEND', IrcMessage(toks[0], toks[1:]))
- else:
- q_to_main.eput('ALERT',
- f'invalid message: {event.payload}')
+ if event.payload[0] == '/':
+ toks_init = event.payload[1:].split(maxsplit=1)
+ command = toks_init[0]
+ if command == 'disconnect':
+ q_to_main.eput('SEND',
+ IrcMessage('QUIT', toks_init[1:]))
+ continue
+ if command == 'quit' and len(toks_init) == 1:
+ q_to_main.eput('QUIT')
+ continue
+ q_to_main.eput('ALERT',
+ f'invalid prompt command: {event.payload}')
if __name__ == '__main__':