Initial framework

This commit is contained in:
2025-07-24 03:33:42 +10:00
commit 9c0ae404c8
31 changed files with 3435 additions and 0 deletions

46
src/bot.py Normal file
View File

@@ -0,0 +1,46 @@
import asyncio
import logging
from twitchio.web import AiohttpAdapter
from meta import CrocBot, conf, setup_main_logger, args
from data import Database
from constants import DATA_VERSION
logger = logging.getLogger(__name__)
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(
host=conf.bot.get('wshost', None),
port=conf.bot.getint('wsport', None),
domain=conf.bot.get('wsdomain', None),
)
bot = CrocBot(
config=conf,
dbconn=db,
adapter=adapter,
)
# await bot.load_module('modules')
try:
await bot.start()
finally:
await bot.close()
def _main():
setup_main_logger()
asyncio.run(main())