mirror of
https://github.com/R0m1k3/xtremflow.git
synced 2026-10-24 07:28:05 +02:00
Enregistrements : auto-enregistrement des matchs NBA en direct sur beIN Sports FR
Le calendrier NBA (API ESPN, 21 jours) annonce les matchs à l'avance ; l'EPG des beIN Sports françaises confirme la chaîne ~48 h avant. Seule la diffusion qui démarre avec le coup d'envoi est retenue : les rediffusions sont ignorées, sans dépendre des titres. Le CDN nba.com refuse les requêtes serveur (403), d'où ESPN. - Serveur : tables auto_rules / nba_games (migration v3 : source_rule_id), réconciliation toutes les 30 min, marges, filtre d'équipes, conflits de créneaux, rétention, API /api/auto-rules (oui/non par match). - Détection des beIN FR (hors MENA, TR, ES…), meilleure qualité par chaîne. - XMLTV : sous-titre, catégories, drapeaux live/new/premiere/ previously-shown, horizon EPG_HORIZON_HOURS. - Plex/Jellyfin : vignette et affiche avec logos des équipes, .nfo, pochette intégrée au MKV, nom de fichier lisible. - UI : onglet « Auto NBA » et pastille sur les enregistrements. - Docker : fonts-dejavu-core (texte des vignettes) et tzdata. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
530bf82b04
commit
f291b66087
20 files changed
+4486
-32
No files matched your search
@@ -21,6 +21,7 @@ use crate::server::RateLimiter;
|
||||
use crate::services::cleanup::CleanupService;
|
||||
use crate::services::ffmpeg_sessions::FfmpegSessionManager;
|
||||
use crate::services::logo_catalog::LogoCatalog;
|
||||
use crate::services::nba_autorec::NbaAutoRecorder;
|
||||
use crate::services::recording_scheduler::RecordingScheduler;
|
||||
use crate::services::xmltv::{XmltvConfig, XmltvEpgService};
|
||||
use crate::state::AppState;
|
||||
@@ -127,6 +128,15 @@ async fn main() {
|
||||
});
|
||||
let epg = EpgApi::new(xmltv, http.clone(), default_panel_xmltv(http.clone()));
|
||||
|
||||
// Enregistrement automatique des matchs NBA en direct sur beIN Sports FR.
|
||||
let nba = Arc::new(NbaAutoRecorder::new(
|
||||
db.clone(),
|
||||
http.clone(),
|
||||
epg.clone(),
|
||||
scheduler.clone(),
|
||||
));
|
||||
nba.start();
|
||||
|
||||
// Purge des temporaires. Jamais le dossier temporaire système en
|
||||
// récursif : il contient les sessions HLS.
|
||||
let cleanup = Arc::new(CleanupService::new());
|
||||
@@ -166,6 +176,7 @@ async fn main() {
|
||||
http: http.clone(),
|
||||
http_manual,
|
||||
scheduler: scheduler.clone(),
|
||||
nba,
|
||||
streaming,
|
||||
proxy: ProxyHandler::new(),
|
||||
epg,
|
||||
|
||||
Reference in new issue
Block a user