feat(tv): Kanonik TVDB anahtarları ve çoklu kök klasör desteği eklendi
Birden fazla kök klasör arasında veri birleştirmeyi sağlamak için TVDB kimliklerini kullanan TV dizileri için kanonik anahtar sistemi uygulandı. Kullanıcı arayüzünde reaktif yükleme eklendi ve eski yollardan otomatik geçişle meta veri yönetimi geliştirildi. Önemli Değişiklikler: - TV dizisi veri yapısı artık dizi başına birden fazla kök klasörü destekliyor - Eski klasör anahtarları otomatik olarak kanonik TVDB anahtarlarına taşınıyor - Veritabanı şeması, rootFolders dizisi için yeni indekslerle güncellendi
This commit is contained in:
@@ -13,6 +13,9 @@
|
||||
let refreshing = false;
|
||||
let rescanning = false;
|
||||
let error = null;
|
||||
let mounted = false;
|
||||
let lastLoadedCount = null;
|
||||
let unsubscribeCount = null;
|
||||
|
||||
let selectedShow = null;
|
||||
let selectedSeason = null;
|
||||
@@ -189,10 +192,12 @@ let filteredShows = [];
|
||||
const list = await resp.json();
|
||||
shows = Array.isArray(list) ? list.map(normalizeShow) : [];
|
||||
tvShowCount.set(shows.length);
|
||||
lastLoadedCount = shows.length;
|
||||
} catch (err) {
|
||||
error = err?.message || "TV dizileri alınamadı.";
|
||||
shows = [];
|
||||
tvShowCount.set(0);
|
||||
lastLoadedCount = 0;
|
||||
} finally {
|
||||
loading = false;
|
||||
}
|
||||
@@ -251,6 +256,21 @@ let filteredShows = [];
|
||||
}
|
||||
}
|
||||
|
||||
onMount(() => {
|
||||
mounted = true;
|
||||
loadShows();
|
||||
unsubscribeCount = tvShowCount.subscribe((val) => {
|
||||
if (!mounted) return;
|
||||
if (loading || refreshing || rescanning) return;
|
||||
if (val === lastLoadedCount) return;
|
||||
loadShows();
|
||||
});
|
||||
return () => {
|
||||
mounted = false;
|
||||
unsubscribeCount && unsubscribeCount();
|
||||
};
|
||||
});
|
||||
|
||||
function openShow(show) {
|
||||
if (!show) return;
|
||||
selectedShow = show;
|
||||
|
||||
Reference in New Issue
Block a user