import asyncio import logging import websockets from twitchio.web import AiohttpAdapter from meta import Bot, conf, setup_main_logger, args, sockets from data import Database from modules import twitch_setup logger = logging.getLogger(__name__) class ProxyAiohttpAdapter(AiohttpAdapter): def _find_redirect(self, request): return self.redirect_url async def main(): db = Database(conf.data['args']) async with db.open(): adapter = ProxyAiohttpAdapter( host=conf.bot.get('wshost', None), port=conf.bot.getint('wsport', None), domain=conf.bot.get('wsdomain', None), eventsub_secret=conf.bot.get('eventsub_secret', None) ) bot = Bot( config=conf, dbconn=db, adapter=adapter, setup=twitch_setup, ) async with websockets.serve(sockets.root_handler, '', conf.wserver.getint('port')): try: await bot.start() finally: await bot.close() def _main(): setup_main_logger() asyncio.run(main())