mirror of
https://gitverse.ru/kpa39l/chronicle.nixg.ru.git
synced 2026-09-29 09:55:08 +00:00
Fix telegram-archiver: graceful startup without .env + dev tools
This commit is contained in:
@@ -22,7 +22,7 @@ from app.models import (
|
||||
from app.telethon_client import TelethonArchiver
|
||||
from app.archiver import ChannelArchiver
|
||||
from app.logger import setup_logging, get_logger
|
||||
from config import get_settings, Settings
|
||||
from config import get_settings, get_required_settings, Settings
|
||||
|
||||
# Initialize logger
|
||||
logger = get_logger(__name__)
|
||||
@@ -38,16 +38,22 @@ async def lifespan(app: FastAPI) -> AsyncGenerator[None, None]:
|
||||
|
||||
# Startup
|
||||
logger.info("Starting Telegram Archiver...")
|
||||
settings = get_settings()
|
||||
setup_logging(
|
||||
log_level=settings.log_level,
|
||||
enable_otel=settings.otel_enabled,
|
||||
)
|
||||
|
||||
archiver_client = TelethonArchiver(settings)
|
||||
await archiver_client.connect()
|
||||
|
||||
logger.info("Telegram Archiver started successfully")
|
||||
|
||||
try:
|
||||
settings = get_required_settings()
|
||||
setup_logging(
|
||||
log_level=settings.log_level,
|
||||
enable_otel=settings.otel_enabled,
|
||||
)
|
||||
|
||||
archiver_client = TelethonArchiver(settings)
|
||||
await archiver_client.connect()
|
||||
|
||||
logger.info("Telegram Archiver started successfully")
|
||||
except Exception as e:
|
||||
logger.warning(f"Could not initialize Telegram client: {e}")
|
||||
logger.warning("Server will start but /archive endpoint will not work")
|
||||
logger.warning("Create .env file with API_ID, API_HASH, PHONE to enable archiving")
|
||||
|
||||
yield
|
||||
|
||||
@@ -90,13 +96,16 @@ async def archive_channel(request: ArchiveRequest) -> ArchiveResponse:
|
||||
Large files (>MAX_FILE_SIZE) are skipped and logged in 2big2get.md
|
||||
"""
|
||||
if not archiver_client:
|
||||
raise HTTPException(status_code=503, detail="Archiver not initialized")
|
||||
raise HTTPException(
|
||||
status_code=503,
|
||||
detail="Archiver not initialized. Check server logs. Make sure .env file exists with API_ID, API_HASH, PHONE."
|
||||
)
|
||||
|
||||
try:
|
||||
logger.info(f"Archive request for channel: {request.channel}")
|
||||
|
||||
# Get settings and override output_dir if specified
|
||||
settings = get_settings()
|
||||
settings = get_required_settings()
|
||||
if request.output_dir:
|
||||
settings.output_dir = Path(request.output_dir)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user