Fix HLS proxy fallback and avoid overwriting invalid config

This commit is contained in:
Johnnybegood90
2026-03-14 13:16:09 +01:00
parent 90679e9221
commit fc608ee0e0
2 changed files with 23 additions and 16 deletions
+18 -16
View File
@@ -3,21 +3,23 @@ $config_path = __DIR__ . '/config.json';
// Automatically migrate the legacy config format.
if (file_exists($config_path)) {
$existing = json_decode(file_get_contents($config_path), true) ?? [];
if (isset($existing['epg_url']) && !isset($existing['epg_sources'])) {
$existing['epg_sources'] = [[
'name' => 'Main',
'epg_url' => $existing['epg_url'],
'm3u_url' => $existing['m3u_url'] ?? '',
]];
$existing['allow_personal_epg'] = false;
unset($existing['epg_url'], $existing['m3u_url']);
file_put_contents($config_path, json_encode($existing, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES));
}
// Bootstrap an admin key for older configs that do not have one yet.
if (empty($existing['admin_key'])) {
$existing['admin_key'] = bin2hex(random_bytes(16));
file_put_contents($config_path, json_encode($existing, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES));
$existing = json_decode(file_get_contents($config_path), true);
if (is_array($existing)) {
if (isset($existing['epg_url']) && !isset($existing['epg_sources'])) {
$existing['epg_sources'] = [[
'name' => 'Main',
'epg_url' => $existing['epg_url'],
'm3u_url' => $existing['m3u_url'] ?? '',
]];
$existing['allow_personal_epg'] = false;
unset($existing['epg_url'], $existing['m3u_url']);
file_put_contents($config_path, json_encode($existing, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES));
}
// Bootstrap an admin key for older configs that do not have one yet.
if (empty($existing['admin_key'])) {
$existing['admin_key'] = bin2hex(random_bytes(16));
file_put_contents($config_path, json_encode($existing, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES));
}
}
}
@@ -25,7 +27,7 @@ $is_first_setup = !file_exists($config_path);
$existing = [];
$corrupt_config = false;
if (!$is_first_setup) {
$existing = json_decode(file_get_contents($config_path), true) ?? [];
$existing = json_decode(file_get_contents($config_path), true);
if (!is_array($existing)) {
$existing = [];
$corrupt_config = true;