feat: add À la une feature
This commit is contained in:
@@ -397,6 +397,67 @@ function getLiveStream() {
|
||||
return !empty($activeLives) ? reset($activeLives) : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Récupère une vidéo spécifique par son ID
|
||||
*
|
||||
* @param string $videoId ID de la vidéo
|
||||
* @return array|null Informations sur la vidéo ou null si non trouvée
|
||||
*/
|
||||
function getVideoById($videoId) {
|
||||
if (empty($videoId)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$data = callPeerTubeApi('videos/' . $videoId);
|
||||
|
||||
// Vérifier si on a des résultats
|
||||
if (empty($data)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Formater les données de la vidéo
|
||||
$videoData = formatVideosData([$data]);
|
||||
|
||||
// Retourner la première vidéo formatée
|
||||
return !empty($videoData) ? reset($videoData) : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Récupère la vidéo à afficher selon le mode configuré (auto ou static)
|
||||
*
|
||||
* En mode 'auto' : détecte automatiquement un direct en cours
|
||||
* En mode 'static' : affiche une vidéo spécifique définie par STATIC_VIDEO_ID
|
||||
*
|
||||
* @return array|null Tableau avec 'video' (données de la vidéo ou null), 'mode' ('auto'|'static'), 'isLive' (bool), 'badge' (texte du badge)
|
||||
*/
|
||||
function getDisplayVideo() {
|
||||
$mode = defined('LIVE_MODE') ? LIVE_MODE : 'auto';
|
||||
|
||||
if ($mode === 'static') {
|
||||
// Mode vidéo statique
|
||||
$videoId = defined('STATIC_VIDEO_ID') ? STATIC_VIDEO_ID : '';
|
||||
$video = getVideoById($videoId);
|
||||
$badge = defined('STATIC_VIDEO_BADGE') ? STATIC_VIDEO_BADGE : 'À LA UNE';
|
||||
|
||||
return [
|
||||
'video' => $video,
|
||||
'mode' => 'static',
|
||||
'isLive' => false,
|
||||
'badge' => $badge
|
||||
];
|
||||
} else {
|
||||
// Mode automatique (détection de direct)
|
||||
$video = getLiveStream();
|
||||
|
||||
return [
|
||||
'video' => $video,
|
||||
'mode' => 'auto',
|
||||
'isLive' => $video !== null,
|
||||
'badge' => 'DIRECT'
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Formate les données brutes des vidéos venant de l'API
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user