Commit graph

8 commits

Author SHA1 Message Date
vrubelroman
b5f0670754 feat(admin_bot): показывать состояние загрузчиков в /stat
All checks were successful
CI/CD Pipeline / build-and-deploy (push) Successful in 47s
Раньше о поломке сервиса админ узнавал только из алерта health-check или
из ошибки живого пользователя. Теперь /stat отдаёт состояние всех пяти
загрузчиков по запросу.

У YouTube и Instagram дёргается /cookies/check, поэтому статусы различают
причину: работает / cookies протухли / не извлекает видео (не cookies) /
недоступен. Остальные три проверяются через /health.

Проверка ходит в реальные YouTube и Instagram и занимает секунды, поэтому
статистика отправляется сразу, а блок состояния дозаполняется правкой
сообщения. Все сервисы опрашиваются параллельно — последовательно набежало
бы под полминуты.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-26 00:40:32 +00:00
vrubelroman
d5201df802 fix(stats): count link_count per Telegram user, not per chat
All checks were successful
CI/CD Pipeline / build-and-deploy (push) Successful in 2m11s
chat_id is shared by every member of a group chat, so all group
messages incremented one shared row and username kept getting
overwritten by whoever sent last. Track link counts in a new
user_links table keyed by the real from_user.id instead.
2026-07-03 14:29:35 +00:00
vrubelroman
87ef82ef7f fix(admin_bot): align /stat output and expand top list to 10
All checks were successful
CI/CD Pipeline / build-and-deploy (push) Successful in 2m6s
Per-line strip() only stripped the first line's leading spaces, leaving
subsequent lines indented differently. RTL names (Arabic etc.) also
flipped the number/counter to the right via Telegram's bidi handling.
2026-07-03 13:48:28 +00:00
vrubelroman
d9ff2aec57 feat(admin_bot): show link-senders count and top-5 active users in /stat
All checks were successful
CI/CD Pipeline / build-and-deploy (push) Successful in 1m43s
Adds users.link_count, incremented in bot.py whenever a user submits
a recognized link (regardless of eventual download success), and
surfaces it in admin_bot's /stat as a count of users who ever sent a
link plus a top-5 leaderboard by link count.
2026-06-30 22:28:53 +00:00
vrubelroman
6df47f3082 feat(admin_bot): prepend service-message header to broadcasts
All checks were successful
CI/CD Pipeline / build-and-deploy (push) Successful in 1m50s
2026-06-30 20:48:57 +00:00
vrubelroman
3ffdbbcdaf feat(admin_bot): add /send_messages broadcast command
All checks were successful
CI/CD Pipeline / build-and-deploy (push) Successful in 1m47s
Admin sends /send_messages, the next text message is broadcast to
every user in the users table. Sends via TELEGRAM_BOT_TOKEN (the
client bot), not the admin bot's own token — broadcasting through
context.bot would land in the user's chat with the admin bot, which
they've never opened, instead of the client bot they actually use.
2026-06-30 20:46:11 +00:00
vrubelroman
4629535e97 fix: отправка видео как документ (без сжатия Telegram) и исправление format_id для точного выбора качества
- Замена reply_video() на reply_document() в bot.py — Telegram больше не сжимает видео
- Исправление format_id в get_youtube_formats(): конкретные format codes + fallback best[height<=N]
- Замена bestvideo[height<=N]+bestaudio на best[height<=N] — гарантированно работает когда
  YouTube не отдаёт отдельные video-only потоки для низких разрешений
- Добавлено логирование реально скачанного формата для диагностики
2026-04-30 01:36:43 +03:00
vrubel
2d248b9ce0 add admin bot 2025-12-20 22:17:20 +03:00