rewrite v3

This commit is contained in:
2026-10-28 13:01:59 +03:00
parent da24ed8ba7
commit 372781b956
15 changed files with 527 additions and 1158 deletions
+19
View File
@@ -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,