Auto NBA : afficher les matchs beIN même sans chaîne reliée, diagnostic

L'onglet restait vide alors que le guide beIN annonçait des matchs : une
diffusion n'était prise en compte que si sa chaîne beIN était reliée à
un flux de la règle (liste vide si la détection avait échoué à la
création, ou nom différent chez le revendeur).

- Toute diffusion en direct du guide beIN est rapprochée et affichée ;
  seul l'enregistrement exige un flux IPTV (sinon « absente de la
  playlist », bouton inactif, aucun enregistrement créé).
- Les beIN FR de la playlist sont redétectées à chaque passage et
  complètent les flux choisis dans la règle.
- Plus besoin de playlist pour afficher le programme.
- Diagnostic par règle (source, directs au guide, chaînes reliées ou
  absentes, matchs rapprochés) renvoyé par l'API et affiché quand la
  liste est vide.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
MichaelandClaude Opus 5.5 committed 2026-10-18 17:16:01 +02:00
1 parent 5f0f6abcc6
commit 29b4e11d13
4 files changed
+235 -60

No files matched your search

+4 -1
View File
@@ -267,7 +267,10 @@ fn games(state: &SharedState, req: &Req, rule: &AutoRule) -> Resp {
game_json(rule, g, taken)
})
.collect();
json(200, &json!({"rule": rule, "games": list}))
json(
200,
&json!({"rule": rule, "games": list, "diagnostic": state.nba.diagnostic(&rule.id)}),
)
}
async fn decision(state: &SharedState, req: &Req, rule: &AutoRule, game_id: &str) -> Resp {
+5 -8
View File
@@ -264,17 +264,14 @@ impl EpgApi {
self.programmes_with_source(playlist, channel_id).await.0
}
/// Nom de la chaîne dans la table du panneau (cache 6 h).
pub async fn channel_name(
&self,
playlist: &PlaylistConfig,
channel_id: &str,
) -> Option<String> {
/// Toutes les chaînes du panneau : `(stream_id, nom)` (cache 6 h).
pub async fn channel_names(&self, playlist: &PlaylistConfig) -> Vec<(String, String)> {
self.channel_map_for(playlist)
.await
.names
.get(channel_id)
.cloned()
.iter()
.map(|(id, name)| (id.clone(), name.clone()))
.collect()
}
async fn programmes_with_source(