News:

SMF - Just Installed!

Main Menu

v1.1.17

Started by hitsumo, Jul 23, 2026, 03:31 PM

Previous topic - Next topic

hitsumo

# Anime Tracker 1.1.17

**Yayın tarihi:** 2026-07-19

## Yeni: Ülkeye göre filtreleme

- **Ana listede artık ülkeye göre filtreleme yapılabilir.** Filtre kutusunda,
  yayın durumu filtresinin hemen altında yeni bir "Ülkeye Göre Filtrele"
  açılır kutusu vardır. Seçim, diğer filtrelerle (tür, izleme durumu, yayın
  durumu, harf, yıl) birlikte çalışır.
- **Açılır kutu sabit bir ülke listesi değildir: yalnızca katalogda gerçekten
  girilmiş ülkeleri gösterir.** Katalogda hiç Kore yapımı yoksa "Güney Kore"
  seçeneği görünmez, dolayısıyla boş sonuç veren bir filtre seçmeniz mümkün
  olmaz. Siz animelere ülke girdikçe seçenekler kendiliğinden belirir.
- **Hiçbir animede ülke girilmemişse** açılır kutu yerine "Henüz kayıtlı ülke
  yok." bilgisi görünür.
- **Yetişkin içerik tercihi burada da geçerlidir.** Yetişkin içerik kapalıyken,
  yalnızca +18 animelerde geçen bir ülke listede görünmez - yıl filtresindeki
  davranışın aynısı.
- **Filtre, sıralama ve sayfalama gezinirken korunur.** Sütun başlığına
  tıklayıp sıralamayı değiştirdiğinizde, harf seçtiğinizde, sayfa
  değiştirdiğinizde veya arama yaptığınızda ülke seçiminiz düşmez. Bu,
  "İzlenen Bölüme Göre" sıralaması için de geçerlidir.

## Yeni: Anime kaydında yapım ülkesi

- **Anime ekleme ve düzenleme formlarına "Yapım Ülkesi" alanı eklendi**
  (opsiyonel). Medya Türü alanının hemen altındadır.
- **Ülke listeden seçilir, elle yazılmaz.** Başlangıç listesi: Amerika
  Birleşik Devletleri, Çin, Fransa, Güney Kore, Japonya, Tayvan.
- **Ülke adı arayüz diline göre görünür.** Türkçe arayüzde "Japonya",
  İngilizce arayüzde "Japan" yazar. Bunun sebebi, veritabanında ülke adının
  değil uluslararası ülke kodunun (JP, CN, KR ...) saklanmasıdır. Kodu ne
  girersiniz ne de görürsünüz; her yerde ülkenin adı gösterilir.
- **Serbest metin yerine liste kullanılmasının nedeni** katalogun ortak
  olmasıdır: serbest yazımda aynı ülke "Japonya", "Japan" ve "japonya" olarak
  üç ayrı filtre değeri üretir ve dil desteği mümkün olmazdı.
- **Anime detay sayfasında ülke, yayın tarihi bilgilerinin altında gösterilir.**
  Ülke girilmemişse satır hiç basılmaz - "Belirtilmemiş" yazan boş bir satır
  eklenmez.
- **Listeye yeni ülke eklemek tek satırlık bir iştir:**
  `functions/country_helpers.php` içindeki `country_codes()` haritasına bir
  satır ve `lang/tr.php` + `lang/en.php` dosyalarına ülkenin adı eklenir.

## Mevcut animeler

- **Mevcut animelerin hiçbirine ülke atanmaz.** Sürüm yükseltmesi yalnızca
  alanı ekler; hiçbir satır tahmin yoluyla damgalanmaz. Dolayısıyla ülke
  filtresi ilk açılışta boş görünür ve siz doldurdukça dolar.
- Bunun nedeni, katalogda Çin ve Kore yapımı animelerin de bulunabilmesidir;
  "hepsi Japonya" varsayımı gözden kaçan yapımları yanlış ülkede bırakırdı.

## Toplu doldurma aracı (tek seferlik, isteğe bağlı)

- **`tek_kullanimlik/anilist_country_backfill.php`**, ülkesi boş olan animeleri
  AniList'e sorup size çalıştırılacak `UPDATE` cümleleri üretir. Ülke bilgisi
  tahmin edilmez: AniList'in `countryOfOrigin` alanı zaten bizim sakladığımız
  biçimde (ISO 3166-1 alpha-2) yapısal veri verir.
- **Veritabanına dokunmaz.** Ürettiği SQL'i inceleyip phpMyAdmin'de siz
  çalıştırırsınız:
  `php anilist_country_backfill.php > country_backfill.sql`
- **Elle girdiğiniz ülkeleri ezmez** - yalnızca `country IS NULL` satırları
  sorgular, ürettiği `UPDATE` de aynı koşulu taşır.
- **Ülke listesinde olmayan bir kod dönerse yazılmaz**, ayrıca raporlanır.
  Tanımlı olmayan bir kod veritabanına girseydi o anime hiçbir filtrede
  görünmezdi. Raporu görüp o ülkeyi listeye eklemek isteyip istemediğinize
  siz karar verirsiniz.
- Sınır: yalnızca `mal_id` taşıyan animeler eşleşir. Eşleşmeyenler ve
  `mal_id`'si olmayanlar sayı olarak raporlanır, elle doldurulur.

## AniList içe aktarma artık ülkeyi kendisi getirir

- **AniList'ten içe aktarılan her anime ülkesiyle birlikte gelir.** AniList
  `countryOfOrigin` alanını zaten veriyor; içe aktarma sorgusu artık bu alanı
  da istiyor ve değeri kayda taşıyor. Yani içe aktardığınız bir donghua
  katalogda doğrudan "Çin" olarak doğar, sonradan doldurulmayı beklemez.
- Bu hem online (öneri kaydına yazılır, moderatör onayında kataloğa geçer) hem
  self-host (yerel kayda doğrudan yazılır) tarafında geçerlidir.
- **Ülke listesinde olmayan bir kod gelirse yazılmaz, alan boş bırakılır.**
  Tanımsız bir kod kaydedilseydi o anime hiçbir filtrede görünmezdi.
- MyAnimeList (XML) içe aktarmasında ülke bilgisi yoktur; o yoldan gelen
  animeler ülkesiz kalır ve elle ya da toplu doldurma aracıyla tamamlanır.

## Ülke bilgisi taşınan yollar

Ülke, animeye ait bir katalog bilgisidir ve verinin dolaştığı her yolda
korunur:

- **Merkez kataloğa gönderme ve merkez katalogdan çekme** (online mod).
- **Yedek alma / geri yükleme** (self-host). Yedek dosyası ülkeyi içerir;
  1.1.17 öncesinde alınmış yedeklerde alan bulunmadığı için o kayıtlar ülkesiz
  geri yüklenir.
- **Üye önerisi ve moderatör onayı.** Öneri kaydı ülkeyi taşıyabilir ve onayda
  kataloğa aktarılır.

## Şema / migration

- `migration/1.1.17/upgrade.sql`, `animes` ve `catalog_requests` tablolarına
  `country` kolonunu ekler (`char(2)`, NULL = ülke girilmemiş) ve sürümü
  1.1.17'ye yükseltir. Tekrar çalıştırmada yinelenen-kolon hatası yok sayılır.
- **Merkez katalog için elle adım (yalnızca online):** merkez katalog
  veritabanı ayrı bir kurulumdur ve otomatik migration çalıştırıcısı yoktur.
  Ülke bilgisini oraya göndermeden önce merkez katalog DB'sinde bir kez
  çalıştırın:
  `ALTER TABLE animes ADD COLUMN country CHAR(2) DEFAULT NULL AFTER media_type;`
  Bu yapılmadan gönderim denenirse istek hata verir. Sıra önemlidir: önce
  sunucuda bu komut, sonra uygulama güncellemesi, sonra gönderim. Self-host
  kurulumları etkilenmez (yerel migration kendiliğinden çalışır).

## Değişen / yeni dosyalar

- files/migration/1.1.17/upgrade.sql (yeni: country kolonu, iki tablo)
- files/schema.sql (yeni kurulum için kolon; animes + catalog_requests)
- files/functions/country_helpers.php (yeni: country_codes / country_label /
  country_options / country_sort_key / is_valid_country_code)
- files/functions.php (yeni yardımcı dosyayı yükle)
- files/tek_kullanimlik/anilist_country_backfill.php (yeni: tek seferlik toplu
  doldurma aracı; DB'ye yazmaz, SQL üretir)
- files/index.php (katalogda geçen ülkelerin listesi; ülke filtresi kutusu;
  filtre koşulu `select_from`'a eklendi - böylece "İzlenen Bölüme Göre"
  sıralama dalı da aynı koşulu alır; sıralama/harf/yıl/arama bağlantılarında
  seçimin korunması)
- files/add_anime.php, files/edit_anime.php (Yapım Ülkesi açılır kutusu; kayıt
  öncesi kod doğrulaması)
- files/anime_details.php (ülke satırı; boşsa gösterilmez)
- files/functions/anilist_import_helpers.php (içe aktarma sorgusuna
  countryOfOrigin; kayda country alanı - tanınmayan kod boş bırakılır)
- files/list_settings.php (yedek geri yüklemede, üye önerisi oluşturmada ve
  AniList içe aktarmanın her iki dalında ülkeyi taşı)
- files/catalog_import.php, files/admin/catalog_push.php,
  files/admin/admin_sync_example.php, files/admin/admin_catalog_requests.php,
  catalog_server/catalog.php, catalog_server/admin_push.php
  (katalog veri formatı boyunca country)
- files/lang/tr.php, files/lang/en.php (ülke adları; form ve filtre etiketleri;
  anime detay etiketi)
- files/version.txt

Not: ülke adlarının sıralaması arayüz diline göre yapılır. Türkçe arayüzde
"Çin", "C" ile "D" arasında doğru yerde çıkar; PHP'nin varsayılan
karşılaştırması bu harfi listenin sonuna atacağı için sıralama Türk
alfabesine göre ayrıca düzenlenmiştir.