import asyncio
import sys
import curses

class ConsoleInput:
    def __init__(self, controller, window):
        self.controller = controller
        self.win = window

    async def start(self):
        self.loop = asyncio.get_running_loop()
        self.loop.add_reader(sys.stdin, self.handle_input)
    
    def handle_input(self):
        chs = []
        try:
            while True:
                chs.append(self.win.getkey())
        except curses.error:
            pass
        
        self.loop.create_task(self.controller.handle_input(chs))