feat: parser, refactoring

This commit is contained in:
Artem Tsyrulnikov
2025-12-07 22:17:24 +03:00
parent e90c6bfb75
commit 2af23f84fe
39 changed files with 503 additions and 822 deletions

View File

@@ -5,15 +5,13 @@ from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from shared import logger
from src import dependencies
from src import deps
from src.adapter.jwt import JWT
from src.adapter.postgres import Postgres
from src.adapter.telegram_bot import TelegramBot
from src.adapter.telegram_parser import TelegramParser
from src.config import settings
from src.controller.http import api_router
from src.controller.telegram_callback import telegram_callback_router
from src.controller.worker.views_worker import FetchViewsWorker
from src.usecase import Usecase
@@ -22,32 +20,25 @@ async def lifespan(app: FastAPI) -> AsyncGenerator[None]:
await postgres.connect()
await telegram.start_polling()
await telegram.set_commands()
await views_worker.start()
yield
await views_worker.stop()
await telegram.stop_polling()
await postgres.close()
logger.init(settings.logger)
# Dependencies
postgres = Postgres(settings.db)
telegram = TelegramBot(settings.telegram, telegram_callback_router)
telegram_views_fetcher = TelegramParser(settings.telegram_parser)
jwt_encoder = JWT(settings.jwt)
usecase = Usecase(
database=postgres,
telegram_bot=telegram,
telegram_parser=telegram_views_fetcher,
jwt_encoder=jwt_encoder,
)
dependencies.set_usecase(usecase)
views_worker = FetchViewsWorker(config=settings.fetch_views_worker)
deps.set_usecase(usecase)
app = FastAPI(lifespan=lifespan, version=settings.logger.APP_VERSION)