81 lines
5.5 KiB
Markdown
81 lines
5.5 KiB
Markdown
# hOLOlu Download Manager (hDM)
|
||
|
||
Modern, hızlı ve kullanıcı dostu, .NET 8 ve WPF tabanlı açık kaynaklı bir indirme yöneticisidir.
|
||
|
||
## 🚀 Öne Çıkan Özellikler
|
||
|
||
* **Segmentli İndirme:** Dosyaları parçalara bölerek maksimum bant genişliği ile indirme sağlar.
|
||
* **Hız Limitleme (Speed Throttling):** Kullanıcı tanımlı hız limiti (KB/s) belirleyerek ağ trafiğini kontrol etme imkanı.
|
||
* **Otomatik Yeniden Deneme (Auto-Retry):** Kopan bağlantılarda veya hata veren indirme parçalarında artan gecikme (exponential backoff) süreleriyle otomatik tekrar deneme.
|
||
* **Kesintiye Uğrayan İndirmelere Devam Etme (Resuming):** İndirmeyi duraklattığınızda ve daha sonra devam ettirdiğinizde, tam kaldığı yerden segment bazlı veya tekil devam edebilme.
|
||
* **Tarayıcı Entegrasyonu:** Özel browser eklentisi (Chrome/Edge) ve `BrowserBridge` teknolojisi ile tarayıcıdaki linkleri otomatik yakalama.
|
||
* **Site İncele (Site Grabber):** Bir web sitesindeki indirilebilir tüm dosyaları analiz edip listeleme ve seçilenleri tek tıkla indirme.
|
||
* **Canlı Hız Grafiği:** Ana pencerenin üst kısmında, son 30 saniyelik toplam indirme hızını gösteren interaktif grafik.
|
||
* **Akıllı Dosya Adı Algılama:** Karmaşık yönlendirmeler (redirect) ve dinamik URL'lerden gerçek dosya adını otomatik tespit eder.
|
||
* **Sistem Tepsisi (Systray) Desteği:** Uygulama kapandığında sistem tepsisine küçülür, arka planda çalışmaya devam eder.
|
||
* **Gelişmiş Sıralama ve Filtreleme:** İndirmeleri tarihe, boyuta, duruma veya isme göre akıllıca sıralar; kategori bazlı filtreleme yapar.
|
||
* **Kullanıcı Arayüzü Özelleştirme:** Açık/Koyu tema desteği, kategori panelini gizleme/gösterme ve sütun genişliklerini otomatik kaydetme.
|
||
* **Türkçe Arayüz ve Loglama:** İndirme durumları ve arka plan motor loglamaları Türkçeye çevrilmiş olup SQL logları minimize edilmiştir.
|
||
|
||
## 🛠 Teknik Mimari
|
||
|
||
Uygulama modern yazılım prensipleri (Clean Architecture) ve MVVM deseni üzerine inşa edilmiştir:
|
||
|
||
* **DownloadManager.Core:** İndirme motoru, Hız Sınırlayıcı (SpeedThrottler), HTTP protokol yönetimi, SQLite veritabanı katmanı ve temel modelleri içerir.
|
||
* **DownloadManager.WPF:** CommunityToolkit.Mvvm kullanılarak geliştirilmiş, ModernWpf UI kütüphanesi ile zenginleştirilmiş kullanıcı arayüzü.
|
||
* **DownloadManager.BrowserBridge:** Tarayıcı eklentisinden gelen verileri Named Pipe üzerinden ana (`hDM`) uygulamaya aktaran hafif köprü uygulaması.
|
||
* **Veritabanı:** Ayarlar ve indirme geçmişi SQLite üzerinde Entity Framework Core ile yönetilir.
|
||
|
||
## 📦 Kurulum ve Çalıştırma
|
||
|
||
### Gereksinimler
|
||
* .NET 8.0 SDK (Eğer Self-Contained olarak derlenmediyse .NET Desktop Runtime 8.0 gereklidir)
|
||
* Windows 10/11
|
||
* Google Chrome veya Microsoft Edge (Eklenti için)
|
||
|
||
### Derleme
|
||
Proje kök dizininde aşağıdaki komutu kullanarak `Release` modunda derleme yapabilirsiniz:
|
||
|
||
```powershell
|
||
dotnet build ./src/DownloadManager.sln -c Release
|
||
```
|
||
|
||
Daha gelişmiş dağıtım seçenekleri (Self-Contained veya Advanced Installer kullanımı) için lütfen [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md) rehberini okuyun.
|
||
|
||
### 🧩 Tarayıcı Eklentisi Kurulumu
|
||
|
||
hDM'nin tarayıcı ile entegre çalışabilmesi için aşağıdaki iki adımı tamamlamanız gerekir:
|
||
|
||
#### 1. Köprü Uygulamasını Kaydetme (Windows Registry)
|
||
Tarayıcının eklenti üzerinden ana uygulama ile konuşabilmesi için "Native Messaging" köprüsünü Windows'a tanıtmalısınız:
|
||
* `src/DownloadManager.BrowserBridge/register_bridge.reg` dosyasına sağ tıklayıp **Birleştir (Merge)** diyerek kayıt defteri ayarlarını uygulayın.
|
||
* *Not: Kayıt defterindeki `path` değerinin derlediğiniz `DownloadManager.BrowserBridge.exe` dosyasının gerçek yolu ile eşleştiğinden emin olun.*
|
||
|
||
#### 2. Eklentiyi Tarayıcıya Yükleme
|
||
* Chrome veya Edge tarayıcınızda `chrome://extensions` adresine gidin.
|
||
* **Geliştirici Modu (Developer Mode)** seçeneğini aktif hale getirin.
|
||
* **Paketlenmemiş öğe yükle (Load unpacked)** butonuna tıklayın.
|
||
* Proje içindeki `browser-extension` klasörünü seçerek yükleyin.
|
||
|
||
### 🖱 Kullanım
|
||
|
||
* **Otomatik Yakalama:** Eklenti yüklendikten sonra tarayıcıda sağ tık menüsünden **"hDM ile indir"** diyerek veya desteklenen uzantılara tıklayarak otomatik yakalama sağlayabilirsiniz.
|
||
* **Site İncele:** Sayfa içindeyken sağ tıklayıp **"Siteyi hDM ile incele"** diyerek sayfadaki tüm dosyaları topluca analiz edebilirsiniz.
|
||
* **Pano Desteği:** Herhangi bir linki kopyalayıp hDM içindeki "Ekle" butonuna bastığınızda link otomatik olarak yapıştırılır.
|
||
|
||
## 📈 Son Durum ve İyileştirmeler
|
||
|
||
Son yapılan güncellemeler ile:
|
||
- [x] Derleme adı `hDM.exe` olarak güncellendi. Özel ikonlar (`Down_nb-02`) eklendi.
|
||
- [x] İndirme hızı limitleme (`SpeedThrottler`) ve otomatik yeniden deneme (`Auto-Retry`) motoru yazıldı.
|
||
- [x] İndirme duraklatma ve devam ettirme mekanizmasındaki ilerleme (progress) sıfırlanma hataları giderildi.
|
||
- [x] UI Durum bildirimleri ve arka plan logları Türkçeleştirildi. EF Core SQL logları temizlendi.
|
||
- [x] Tarayıcı eklentisinden bağlam menüsü entegrasyonu (Context Menu) ile URL'nin doğrudan Site İncele paneline aktarılması sağlandı.
|
||
|
||
## 🛡 Güvenlik ve Gizlilik
|
||
hDM, kullanıcı verilerini sadece yerel SQLite veritabanında saklar. Şifreler ve kimlik bilgileri `ProtectedData` (DPAPI) ile Windows seviyesinde şifrelenerek korunur.
|
||
|
||
---
|
||
**Geliştirici:** hOLOlu
|
||
**Lisans:** MIT
|