rewrite v3
This commit is contained in:
+19
@@ -2,6 +2,8 @@ import asyncio
|
||||
import logging
|
||||
from pathlib import Path
|
||||
|
||||
from sqlalchemy import select
|
||||
|
||||
from aiogram import Bot, Dispatcher
|
||||
from aiogram.client.default import DefaultBotProperties
|
||||
from aiogram.client.session.aiohttp import AiohttpSession
|
||||
@@ -11,6 +13,8 @@ from aiogram.types import BotCommand
|
||||
|
||||
from app.bot.handlers.main import build_router
|
||||
from app.config import Settings
|
||||
from app.db.models import RemnawaveUser
|
||||
from app.services.remnawave_identity import load_legacy_user_ids
|
||||
from app.db.session import create_engine_and_session_factory, ensure_database_exists, init_db
|
||||
from app.services.bot_config_service import BotConfigService
|
||||
from app.services.notification_service import SubscriptionNotificationService
|
||||
@@ -55,12 +59,27 @@ async def main() -> None:
|
||||
if settings.create_tables_on_start:
|
||||
await init_db(engine)
|
||||
|
||||
legacy_user_ids = None
|
||||
if settings.remnawave_api_version == 3:
|
||||
identity_map = Path(__file__).with_name("legacy_user_ids.json")
|
||||
legacy_user_ids = load_legacy_user_ids(identity_map)
|
||||
remnawave_client = RemnawaveApiClient(
|
||||
base_url=settings.remnawave_base_url,
|
||||
api_token=settings.remnawave_api_token,
|
||||
caddy_api_key=settings.remnawave_caddy_api_key,
|
||||
timeout_seconds=settings.remnawave_timeout_seconds,
|
||||
api_version=settings.remnawave_api_version,
|
||||
legacy_user_ids=legacy_user_ids,
|
||||
)
|
||||
if settings.remnawave_api_version == 3:
|
||||
async with session_factory() as session:
|
||||
cached_identities = await session.execute(
|
||||
select(RemnawaveUser.rw_id, RemnawaveUser.rw_uuid, RemnawaveUser.short_uuid)
|
||||
)
|
||||
historical_count = await remnawave_client.validate_cached_identities(
|
||||
cached_identities.all()
|
||||
)
|
||||
logger.info("Validated Remnawave identities; preserved %s deleted historical cache rows", historical_count)
|
||||
sync_service = SyncService(
|
||||
settings=settings,
|
||||
session_factory=session_factory,
|
||||
|
||||
Reference in New Issue
Block a user