Commit History
-
Exact copy of Reoo88/On @ 826bfe0 (relay-v2.32-gap-filler)
Verified signaturef847423
-
نتيجة تنبيه بدء البثّ تُظهر الوجهات التي وصلت ومعرّف كل رسالة
arenad15ab1d -
تنبيه بدء البثّ المباشر إلى تيليغرام + حذف الحسابين غير الموجودين
arena- telegram_api: notify_live_start()/notify_targets()/live_start_text() — رسالة باسم المذيع والتاريخ والوقت إلى القناة والحساب الشخصي، مرة لكل بثّ (منع التكرار بـroom_id في السجلّ الدائم)، وأي فشل يُسجَّل ولا يرمي استثناءً. - app.py: خطّاف في حلقة المراقبة قبل أول اتصال بالمصدر + POST /api/telegram/notify-test. - index.html: زرّ تجربة التنبيه وسطر حالة 🔔 في لوحة تيليغرام. - Dockerfile/variables.env: LIVE_NOTIFY=on, LIVE_NOTIFY_TARGETS=both, LIVE_NOTIFY_TEXT. - اختبارات §18 (33) ⇒ 159/159.eef656f -
Split over-limit broadcasts and send them as ONE album
Reooiq96A broadcast longer than the upload ceiling used to retire FAILED and stay on disk. Now it is split without re-encoding (ffmpeg -c copy -f segment, cut at keyframes, so the original quality is preserved bit for bit) into parts of at most ARCHIVE_PART_MB (default: 95% of the current ceiling, i.e. 1900MB local / 47MB public), and the parts are delivered as a single sendMediaGroup album. Order matters: parts are uploaded to the BACKUP chat first, which satisfies the mandatory-backup rule and yields file_ids, then the channel album is composed from those file_ids with no second upload of the data. Album max is 100 items (~190GB locally). Local deletion (original AND every part) still happens only after both deliveries. Resume safety: part_file_ids are persisted after each part, so a failed album step never re-uploads anything. Verified against the real Bot API before coding: sendVideo with a file:// path pushed a 56.7MB part in 2.7s through the local server, and the album key must be 'me…fee6c6c -
Surface why the local Bot API server is not ready
Reooiq96local_ready() already required ok:true, so wrong TELEGRAM_API_ID/API_HASH fell back to the public 50MB API silently. The probe now keeps Telegram's own reason (e.g. 'Unauthorized: invalid api-id/api-hash'), exposes it as snapshot 'local_error' on both /api/telegram and /api/archive, shows it in the dashboard, and names the missing variables when they are unset. Verified the v10.3 binary runs and binds :8081 locally, answering 401 for dummy credentials. Tests: section 13 (9 checks) covers wrong creds, unset creds, and that the cap stays 50MB rather than claiming 2000MB. 80/80 + 9/9 green.3787e28 -
V15: replace YouTube archiving with Telegram
Reooiq96- Removed youtube_api.py, youtube_core.py, youtube_archive.py and their tests - Added telegram_api.py (Bot API transport, local-server discovery, chat identity) - Added telegram_archive.py (same queue/join-window/retry engine, Telegram transport) - Primary destination: TELEGRAM_CHAT_ID; backup copy sent by file_id (no second upload) - Local telegram-bot-api (--local) support raises the file cap 50MB -> 2000MB - entrypoint.sh starts the local server when TELEGRAM_API_ID/HASH are present - Dashboard, README, VARIABLES.md, variables.env and deploy script updated - Recorder untouched: TikTok FLV -> mkvmerge -> ffmpeg -c copy -> MP4 - Tests: 57 archive + 9 dashboard regressions passing096481b