mirror of
https://github.com/RoyalnetworkTR/turkanime-client.git
synced 2026-09-25 02:20:07 +03:00
213 lines
9.2 KiB
Markdown
213 lines
9.2 KiB
Markdown
# 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
|
||
|
||
### 🌐 TRAnimeİzle Cookie Desteği
|
||
#### + 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ı
|
||
```python
|
||
# 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ş)
|
||
```python
|
||
# 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ığı
|
||
```python
|
||
# 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
|
||
```
|
||
|
||
### Cookie Tarayıcı Akışı
|
||
```python
|
||
# 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ı
|
||
```bash
|
||
# 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
|
||
- **GitHub Issues**: [Sorun Bildir](https://github.com/barkeser2002/turkanime-gui/issues)
|
||
- **Discussions**: [Genel Tartışmalar](https://github.com/barkeser2002/turkanime-gui/discussions)
|
||
- **Discord**: [Topluluk Sunucusu](https://discord.gg/tiky)
|
||
|
||
## 🔗 İlgili Bağlantılar
|
||
- **GitHub Repository**: https://github.com/barkeser2002/turkanime-gui
|
||
- **PyPI Package**: https://pypi.org/project/turkanime-gui/
|
||
- **Releases**: https://github.com/barkeser2002/turkanime-gui/releases
|
||
|