Files
TVGuide/app/src/Services/ChannelService.php
T
2026-07-08 15:58:53 +02:00

50 lines
1.5 KiB
PHP

<?php
class ChannelService
{
public function synchronizeChannels(array $cachedChannels, Config $config): void
{
// Alt-Methode bleibt absichtlich harmlos.
// Neue Sender werden jetzt vom SenderSyncService im XmlTvCacheService ergänzt.
}
public function saveChannelsFromPost(Config $config, array $post): void
{
$savedChannels = $config->getChannels();
foreach ($savedChannels as $id => &$channel) {
$channel['enabled'] = isset($post['enabled'][$id]);
$channel['favorite'] = isset($post['favorite'][$id]);
$channel['number'] = (int)($post['number'][$id] ?? $channel['number'] ?? 999999);
$channel['group'] = trim($post['group'][$id] ?? $channel['group'] ?? 'Unknown');
}
unset($channel);
$config->saveChannels($this->sortChannels($savedChannels));
@unlink('/var/www/cache/guide.json');
@unlink('/var/www/cache/guide.version');
}
public function getSortedChannels(Config $config): array
{
return $this->sortChannels($config->getChannels());
}
private function sortChannels(array $channels): array
{
uasort($channels, function ($a, $b) {
return [
(int)($a['number'] ?? 999999),
strtolower($a['name'] ?? '')
] <=> [
(int)($b['number'] ?? 999999),
strtolower($b['name'] ?? '')
];
});
return $channels;
}
}