47 lines
1.4 KiB
PHP
47 lines
1.4 KiB
PHP
<?php
|
|||
|
|
/**
|
||
|
|
* Préchauffe le cache API de l'application.
|
||
|
|
*
|
||
|
|
* À appeler en tâche cron pour éviter que le premier visiteur ne paye le coût
|
||
|
|
* des appels API externes (PeerTube, Castopod, Funkwhale) sur cache froid.
|
||
|
|
*
|
||
|
|
* Exemple cron (toutes les 5 minutes) :
|
||
|
|
* php /var/www/annu-kute-ced/scripts/warm-cache.php >/dev/null 2>&1
|
||
|
|
* (à programmer toutes les 5 minutes dans la crontab)
|
||
|
|
*/
|
||
|
|
|
||
|
|
require_once __DIR__ . '/../includes/config.php';
|
||
|
|
|
||
|
|
$start = microtime(true);
|
||
|
|
$results = [];
|
||
|
|
|
||
|
|
// Vidéos PeerTube
|
||
|
|
$results['recent_videos'] = count(getRecentVideos());
|
||
|
|
$results['trending_videos'] = count(getTrendingVideos());
|
||
|
|
$results['shorts'] = count(getShorts());
|
||
|
|
|
||
|
|
// Catégories affichées
|
||
|
|
$categories = getDisplayCategories();
|
||
|
|
$results['display_categories'] = count($categories);
|
||
|
|
foreach ($categories as $category) {
|
||
|
|
$results['category_' . $category['id']] = count(getVideosByCategory($category['id']));
|
||
|
|
}
|
||
|
|
|
||
|
|
// Live
|
||
|
|
$live = getLiveStream();
|
||
|
|
$results['live_stream'] = $live ? 1 : 0;
|
||
|
|
|
||
|
|
// Podcasts Castopod
|
||
|
|
$results['castopod_episodes'] = count(getCastopodEpisodes());
|
||
|
|
|
||
|
|
// Funkwhale (si activé)
|
||
|
|
if (defined('FUNKWHALE_ENABLED') && FUNKWHALE_ENABLED) {
|
||
|
|
$results['funkwhale_tracks'] = count(getFunkwhaleTracks());
|
||
|
|
}
|
||
|
|
|
||
|
|
$duration = round(microtime(true) - $start, 2);
|
||
|
|
echo "Cache préchauffé en {$duration}s\n";
|
||
|
|
foreach ($results as $key => $value) {
|
||
|
|
echo " - {$key}: {$value}\n";
|
||
|
|
}
|