Switch to new plugin framework.

This commit is contained in:
2025-09-03 20:35:35 +10:00
parent e3bdebe221
commit 749f2a021c
28 changed files with 228 additions and 2179 deletions

View File

@@ -1,44 +1,45 @@
import asyncio
import logging
import websockets
from twitchio.web import AiohttpAdapter
from meta import CrocBot, conf, setup_main_logger, args
from meta import Bot, conf, setup_main_logger, args, sockets
from data import Database
from constants import DATA_VERSION
from modules import setup
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():
version = await db.version()
if version.version != DATA_VERSION:
error = f"Data model version is {version}, required version is {DATA_VERSION}! Please migrate."
logger.critical(error)
raise RuntimeError(error)
adapter = AiohttpAdapter(
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 = CrocBot(
bot = Bot(
config=conf,
dbconn=db,
adapter=adapter,
setup=setup,
setup=twitch_setup,
)
try:
await bot.start()
finally:
await bot.close()
async with websockets.serve(sockets.root_handler, '', conf.wserver.getint('port')):
try:
await bot.start()
finally:
await bot.close()
def _main():