ANIME TRACKER

ANİME TRACKER => Duyurular ve Sürümler => Topic started by: hitsumo on Oct 05, 2026, 12:38 PM

Title: 1.1.49
Post by: hitsumo on Oct 05, 2026, 12:38 PM
# Anime Tracker 1.1.49

**Yayın tarihi:** 2026-09-24

Tek iş: **içe aktarma kara listesinin yedeği.** Kara liste sayfasına
"Dışa aktar" ve "İçe aktar" düğmeleri geldi; liste artık ayrı bir dosya
olarak yedeklenip geri yüklenebiliyor. Şema değişikliği yok (boş
migration); merkez katalogda yapılacak bir şey yok. Yalnız çok
kullanıcılı (online) modu ilgilendirir.

## 1. Neden

İçe aktarma kara listesi (1.1.35) katalogdan silinen animelerin
kimliklerini tutar; MAL ve AniList içe aktarımı bu animeleri yeniden
katalog önerisi olarak açmaz. Ama liste **yalnızca uygulamanın
veritabanında** duruyordu:

- merkez kataloğa gönderilmez (tasarım gereği),
- Liste Ayarları'ndaki JSON yedeğine girmez,
- kara liste sayfasında da dışa / içe aktarma yoktu.

Sonuç: JSON yedeğinden temiz bir kuruluma dönüldüğünde liste boş
başlıyor ve ilk içe aktarım bilerek silinmiş animeleri yeniden
öneriyordu — 1.1.35'in kapattığı sorunun ta kendisi. Listeyi yalnızca
veritabanı yedeği kurtarıyordu.

## 2. Kara liste sayfasında "Yedek" kutusu

Yönetim panosu → **İçe Aktarma Kara Listesi** (moderatör ve üstü),
sayfanın altında:

- **Dışa aktar** — listenin tamamını `import_blacklist_YYYY-AA-GG.json`
  olarak indirir. Her kayıt: MAL ve AniDB kimliği, ad, kayıt türü
  (Silindi / Elle), not ve **orijinal tarih** (liste aynı zamanda silme
  defteri; "bunu ne zaman sildim" bilgisi korunur). Ekleyen kullanıcı
  taşınmaz — kullanıcı numarası kuruluma özeldir; geri yüklenen
  kayıtlarda ekleyen, yükleyen moderatör olur.
- **İçe aktar** — yalnızca **ekler**. Listede zaten olan kayıtlar
  atlanır, hiçbir şey silinmez ya da değişmez; aynı dosyayı iki kez
  yüklemek zararsızdır. Sonuç satırı "N kayıt eklendi, M kayıt zaten
  listedeydi" der; okunamayan satır varsa sayısını ayrıca söyler.
  Kayıtlar tek seferde yazılır: bir hata çıkarsa hiçbiri yazılmaz,
  yarım kalmış bir liste oluşmaz.

**Yanlış dosyaya karşı koruma:** yedek dosyası kendi türünü söyleyen
bir işaret taşır. Liste JSON yedeği (Liste Ayarları) ya da başka bir
dosya bu sayfaya yüklenirse reddedilir — bir üyenin anime listesini
kazara kara listeye çevirmek mümkün değildir.

**Tekrarları nasıl ayırt eder:** kimliği olan kayıtlar MAL / AniDB
kimliğiyle eşleşir. Dosyadaki bir kayıt, listedeki bir kayıtla
kimliklerinden yalnızca **birini** paylaşıyorsa "zaten listede" sayılır;
listedeki kayıt o kimliği engellemeye devam eder. Kimliği olmayan silme
kayıtları (hiçbir şeyi engellemezler, yalnız defterdir) ad + tarihle
eşleşir, böylece yeniden yükleme defteri ikiye katlamaz.

## 3. Neden liste JSON yedeğinin içinde değil

İki yol düşünüldü; ayrı dosya seçildi:

- Liste JSON yedeği **düz bir anime dizisidir**. Kara listeyi içine
  koymak dosyanın biçimini değiştirmek demekti ve 1.1.48 ve önceki
  sürümler yeni yedekleri "geçersiz biçim" diye reddederdi.
- Liste yedeği bir **üyenin kişisel dosyasıdır**; kara liste ise katalog
  politikasıdır ve yalnızca moderatörleri ilgilendirir. Üyelerin
  yedeğine girmemesi, üyelerin yüklemesiyle de değişmemesi gerekir.

## 4. Yardım

İçe aktarma yardımındaki kara liste bölümü güncellendi: eski "JSON
yedeğe girmez, yalnızca veritabanı yedeğinde yaşar" cümlesinin yerine
yedeğin nasıl alınıp yükleneceği ve **temiz kuruluma dönerken bu
dosyanın ilk içe aktarımdan önce yüklenmesi** gerektiği yazıldı.

## Dosyalar

**Yeni:**

```
files/migration/1.1.49/upgrade.sql        boş (sürüm damgası)
```

**Değişen:**

```
files/functions/blacklist_helpers.php     blacklist_export_rows(), blacklist_import_rows(), BLACKLIST_BACKUP_FORMAT
files/admin/admin_blacklist.php           export / import işlemleri, "Yedek" kutusu
files/lang/admin_tr.php                   +10 anahtar (admin_blacklist.backup.*, btn.export/import, hata/sonuç metinleri)
files/lang/admin_en.php                   aynı
files/lang/tr.php                         help.blacklist.where metni
files/lang/en.php                         aynı
files/version.txt
```

Dil dosyası eşitliği: kullanıcı 1149 = 1149, yönetici 321 = 321.

## Dağıtım notu

- **Merkez katalogda iş yok.** Tablo 1.1.35'ten beri var; kolon
  eklenmedi.
- Migration boştur; ilk sayfa yüklemesinde sürüm damgasını taşır.
- Tek kullanıcılı kurulumda kara liste zaten etkin değildir; yedek
  kutusu da orada görünmez.
- **Dağıtım sunucusunda** her zamanki iki adım: yayımlanan `version.txt`
  1.1.49'a çekilir ve `updates/1.1.49/anime-tracker-1.1.49.zip` paketi
  yayımlanır.