mirror of
https://gitverse.ru/kpa39l/vesti.git
synced 2026-09-29 09:55:03 +00:00
1.3 KiB
1.3 KiB
Design
services/publisher/app/main.py
Модель уже имеет dry_run: bool = False. В роуте publish (тело):
@app.post("/api/v1/publish")
def publish(payload: PublishRequest):
# dry_run — тестовый режим: НЕ уходит в Telegram, возвращает эмуляцию
if payload.dry_run:
results = {
ch: {
"message_id": 0,
"media_message_id": 0,
"views": 0,
"error": None,
}
for ch in resolve_channels(payload.channels)
}
return {"ok": True, "results": results, "dry_run": True}
... (реальный путь — как сейчас)
При dry_run получатель — resolve_channels(payload.channels or конфиг), т.к. без него непонятно, для какого канала эмулировать (разумно: тот же, что и в реале).
Верификация
curl -d '{"card":{...},"dry_run":true}'→ dry_run:true, message_id:0, телеграм НЕ тронут.curl -d '{"card":{...},"dry_run":false}'→ как раньше (реальный publish).- docker compose restart vesti-publisher (пересборка: код меняется, нужен образ).