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
BrowserBridgeteknolojisi 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:
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 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.regdosyasına sağ tıklayıp Birleştir (Merge) diyerek kayıt defteri ayarlarını uygulayın.- Not: Kayıt defterindeki
pathdeğerinin derlediğinizDownloadManager.BrowserBridge.exedosyası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://extensionsadresine 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-extensionklasö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:
- Derleme adı
hDM.exeolarak güncellendi. Özel ikonlar (Down_nb-02) eklendi. - İndirme hızı limitleme (
SpeedThrottler) ve otomatik yeniden deneme (Auto-Retry) motoru yazıldı. - İndirme duraklatma ve devam ettirme mekanizmasındaki ilerleme (progress) sıfırlanma hataları giderildi.
- UI Durum bildirimleri ve arka plan logları Türkçeleştirildi. EF Core SQL logları temizlendi.
- 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