49 lines
1.1 KiB
Python
49 lines
1.1 KiB
Python
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())
|