Files

9.2 KiB
Raw Permalink Blame History

TürkAnime İndirici v9.4.9.0 Release Notes

Genel Bakış

v9.4.9.0 sürümü büyük çaplı bir güncelleme olup arama motorunu Jikan (MyAnimeList) API'sine taşır, FlareSolverr Cloudflare bypass entegrasyonu ekler, AniList API uyumluluğunu günceller, thumbnail yükleme güvenilirliğini artırır ve TRAnimeİzle kullanıcı deneyimini iyileştirir.

Sürüm Bilgileri

  • Sürüm: 9.4.9.0
  • Tarih: 25 Şubat 2026
  • Tip: Majör Feature Release
  • Önceki Sürüm: 9.4.1

✨ Yeni Özellikler ve İyileştirmeler

🌐 Jikan (MyAnimeList) Arama Entegrasyonu

+ Eklenen Özellikler:

  • Jikan REST API: Anime arama artık birincil olarak Jikan üzerinden yapılıyor
  • AniList Fallback: Jikan başarısız olursa AniList'e otomatik geçiş
  • Daha Zengin Sonuçlar: MAL veritabanından geniş anime kataloguna erişim

🔧 FlareSolverr Cloudflare Bypass

+ Eklenen Özellikler:

  • FlareSolverr Entegrasyonu: Uzak headless browser sunucusu ile CF bypass
  • API Desteği: request.get ve request.post komutları
  • Çerez Aktarımı: FlareSolverr'dan alınan çerezler otomatik uygulanır
  • User-Agent Senkronu: Sunucudan dönen User-Agent saklanır
  • Ayarlanabilir URL: FlareSolverr sunucu adresi ayarlardan değiştirilebilir

~ İyileştirilen Özellikler:

  • Bypass Zinciri: curl_cffi → cloudscraper → FlareSolverr → undetected-chrome → requests
  • POST Desteği: FlareSolverr üzerinden POST istekleri de destekleniyor

🔧 AniList API Güncellemesi

~ İyileştirilen Özellikler:

  • Refresh Token Kaldırıldı: AniList refresh token desteklemediği için kaldırıldı
  • 401 Handling: Token süresi dolunca kullanıcıya bilgilendirme mesajı gösterilir
  • Token Ömrü: AniList token'ları 1 yıl geçerli, süre dolunca yeniden giriş gerekir
  • Scope Kaldırıldı: AniList API scope parametresi desteklemediği için kaldırıldı
  • Daha Temiz Kod: Gereksiz retry mantığı sadeleştirildi

🚀 Paralel Kaynak Arama (SearchEngine)

+ Eklenen Özellikler:

  • ThreadPoolExecutor: Kaynaklar paralel olarak aranır (sıralı döngü yerine)
  • Hızlı Sonuçlar: Tüm kaynaklar aynı anda sorgulanır, toplam süre azalır

🚀 UI Performans İyileştirmeleri

~ İyileştirilen Özellikler:

  • Batch Rendering: Anime kartları 10'lu gruplar halinde render edilir (after_idle)
  • Bölüm Sayısı: Sayfa başına bölüm sayısı 30'dan 15'e düşürüldü
  • Background Name Check: İsim eşleştirme arka planda yapılır
  • Thumbnail Retry: Kapak görseli indirmede 3 deneme, 20s timeout, farklı User-Agent rotasyonu

+ Eklenen Özellikler:

  • Otomatik Cookie Tarayıcısı: İlk açılışta cookie yoksa kullanıcıya "Otomatik cookie almak ister misin?" sorusu
  • Entegre Tarayıcı (Selenium): Evet denildiğinde Chrome/Edge penceresi açılır, TRAnimeİzle'ye yönlendirilir
  • Captcha Çözümü: Kullanıcı tarayıcıda captcha'yı çözer, cookie'ler otomatik algılanır
  • Netscape Format: Tüm cookie'ler Netscape HTTP Cookie File formatında kaydedilir (çoklu cookie desteği)
  • Tek Tıkla Kaydetme: Cookie'ler algılandığında otomatik olarak ayarlara yazılır ve anında aktif olur
  • Manuel Seçenek: Ayarlar panelinden "🌐 Otomatik Cookie Al" butonu ile her zaman tekrar çalıştırılabilir
  • Cookie Tutorial: Elle almak isteyenler için adım adım DevTools rehberi
  • Bot Algılama Koruması: Tarayıcıda webdriver flag gizleme, automation switch'leri devre dışı

🔧 Dinamik Kaynak Butonları

~ İyileştirilen Özellikler:

  • Otomatik Butonlar: Kaynak butonları sabit kodlama yerine sources.keys()'den oluşturulur
  • Yeni Kaynak Uyumu: Yeni kaynak eklendiğinde buton otomatik oluşur

🔧 İsim Eşleştirme İyileştirmesi

~ İyileştirilen Özellikler:

  • Düşük Eşik: Fuzzy matching threshold 0.6'dan 0.4'e düşürüldü
  • Alternatif Başlıklar: Romaji, English ve Native başlıklar karşılaştırılır

🔧 Race Condition Koruması

+ Eklenen Özellikler:

  • _current_detail_request_id: Anime detay sayfası yarış koruması
  • _search_version: Arama sonuçları yarış koruması

🐛 Düzeltilen Hatalar

Kritik Hatalar

  • ✅ Thumbnail Timeout: s4.anilist.co read timeout hatası düzeltildi (retry + artırılmış timeout)
  • ✅ AniList 401 Döngüsü: Geçersiz refresh token ile sonsuz döngü düzeltildi
  • ✅ Race Condition: Hızlı arama/detay geçişlerinde eski veri gösterimi düzeltildi

Kaynak Düzeltmeleri

  • ✅ Animely Kaldırıldı: Kapanan kaynak tamamen temizlendi
  • ✅ TRAnimeİzle Session: Cookie tabanlı oturum yönetimi eklendi

Kod Kalitesi

  • ✅ Pylint 10.00/10: Tüm lint uyarıları giderildi
  • ✅ Tip Uyumsuzlukları: 20+ lokasyondaki tip hataları düzeltildi
  • ✅ ABC Kalıtım: Adapter sınıflarında ABC inheritance düzeltildi
  • ✅ Ölü Kod: Kullanılmayan import ve değişkenler temizlendi

📁 Değiştirilen Dosyalar

turkanime_api/anilist_client.py       # ~refresh token kaldırıldı, 401 handling, scope kaldırıldı
turkanime_api/jikan_client.py         # +Jikan REST API client
turkanime_api/common/cf_bypass.py     # +FlareSolverr entegrasyonu, bypass zinciri güncellendi
turkanime_api/common/adapters.py      # ~SearchEngine paralel, Animely kaldırıldı
turkanime_api/common/ui.py            # ~dinamik kaynak butonları, batch rendering
turkanime_api/gui/main.py             # ~thumbnail retry, cookie tutorial, Jikan arama, cookie browser entegrasyonu
turkanime_api/gui/cookie_browser.py   # +Selenium entegre cookie tarayıcısı (CookieBrowserWorker)
turkanime_api/cli/dosyalar.py         # +flaresolverr_url, cookie_browser_prompted
turkanime_api/sources/__init__.py     # ~Animely kaldırıldı
turkanime_api/sources/adapter.py      # ~ABC inheritance
turkanime_api/title_matching.py       # ~threshold 0.4, alt başlıklar
README.md                             # ~güncel özellikler
docs/V9.4.9.0.md                      # +Bu dosya

📈 Teknik Detaylar

FlareSolverr API Kullanımı

# GET isteği
POST http://node-kyb.bariskeser.com:8191/v1
{
    "cmd": "request.get",
    "url": "https://hedef-site.com",
    "maxTimeout": 60000
}

# Yanıt
{
    "status": "ok",
    "solution": {
        "url": "https://hedef-site.com",
        "status": 200,
        "cookies": [{"name": "cf_clearance", "value": "..."}],
        "userAgent": "Mozilla/5.0...",
        "response": "<!DOCTYPE html>..."
    }
}

AniList Token Yönetimi (Güncellenmiş)

# Eski davranış (kaldırıldı):
# refresh_access_token() → refresh_token ile yenileme denendi

# Yeni davranış:
# 401 → token temizlenir, "Yeniden giriş gerekli" mesajı
# Token ömrü: 1 yıl
# Refresh token: AniList desteklemiyor

Thumbnail Retry Mantığı

# 3 deneme, 20s timeout, farklı User-Agent
for attempt in range(3):
    headers = {"User-Agent": user_agents[attempt % len(user_agents)]}
    response = requests.get(url, timeout=20, headers=headers)
    # Başarısızsa: 1.5s * (attempt + 1) bekle
# 1. İlk açılış: cookie yoksa → _prompt_cookie_browser()
#    "Otomatik cookie almak ister misin?" dialogu
#    cookie_browser_prompted = True (bir daha sorma)

# 2. Evet → start_cookie_browser()
#    CookieBrowserWorker arka plan thread'inde çalışır

# 3. Selenium Chrome/Edge açılır (headed, bot korumalı)
#    - webdriver flag gizlenir
#    - automation switch'leri devre dışı
#    - tranimeizle.io → /anime/naruto-izle yönlendirmesi

# 4. 2 saniye aralıklarla cookie polling
#    .AitrWeb.Session algılanınca Netscape formatına çevrilir

# 5. Netscape cookie → txtTranimeCookie textbox + set_tranime_cookie()
#    → dosya.set_ayar("tranime_cookie", netscape_str)

🔄 Geçiş ve Uyumluluk

⚠️ Breaking Changes

  • AniList Refresh Token: Mevcut refresh_token kaydı artık kullanılmıyor. Kullanıcıların yeniden giriş yapması gerekebilir (token 1 yıl geçerli olduğundan çoğu durumda etkilenmez).
  • Animely: Kaynak tamamen kaldırıldı (site kapalı).

Önerilen Güncelleme Adımları

# Güncelleme için
pip install --upgrade turkanime-gui

# Veya kaynak koddan
git pull origin main
pip install -r requirements-gui.txt

Yeni Bağımlılıklar

  • FlareSolverr sunucusu (opsiyonel, node-kyb.bariskeser.com:8191 varsayılan)
  • Jikan API (harici bağımlılık yok, REST çağrısı)

🙏 Teşekkürler

Bu sürüm topluluk geri bildirimleri doğrultusunda hazırlanmıştır. AniList API değişikliklerini bildiren, kaynak sorunlarını raporlayan ve FlareSolverr entegrasyonunu öneren herkese teşekkürler!

📞 Destek ve Geri Bildirim

🔗 İlgili Bağlantılar