added RAG, Multiuser, TG bot
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import asyncio
|
||||
import logging
|
||||
|
||||
from aiogram import Bot, Dispatcher
|
||||
|
||||
from bot.config import load_settings
|
||||
from bot.handlers import router as root_router
|
||||
from bot.middleware import InjectMiddleware
|
||||
from bot.notify_worker import run_notify_worker
|
||||
from bot.storage import Storage
|
||||
|
||||
logging.basicConfig(
|
||||
level=logging.INFO,
|
||||
format="%(asctime)s %(levelname)s %(name)s: %(message)s",
|
||||
)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
async def main() -> None:
|
||||
settings = load_settings()
|
||||
storage = Storage(str(settings.db_path))
|
||||
await storage.connect()
|
||||
|
||||
bot = Bot(token=settings.telegram_bot_token)
|
||||
dp = Dispatcher()
|
||||
dp.update.middleware(InjectMiddleware(settings, storage))
|
||||
dp.include_router(root_router)
|
||||
|
||||
worker_task = asyncio.create_task(
|
||||
run_notify_worker(
|
||||
bot,
|
||||
storage,
|
||||
settings.ha_api_base_url,
|
||||
settings.poll_interval_sec,
|
||||
)
|
||||
)
|
||||
|
||||
logger.info("Bot started, HA API: %s", settings.ha_api_base_url)
|
||||
try:
|
||||
await dp.start_polling(bot)
|
||||
finally:
|
||||
worker_task.cancel()
|
||||
try:
|
||||
await worker_task
|
||||
except asyncio.CancelledError:
|
||||
pass
|
||||
await storage.close()
|
||||
await bot.session.close()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(main())
|
||||
Reference in New Issue
Block a user