# 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. * **Tarayıcı Entegrasyonu:** Özel browser eklentisi (Chrome/Edge) ve `BrowserBridge` teknolojisi ile tarayıcıdaki linkleri otomatik yakalar. * **Canlı Hız Grafiği:** Ana pencerenin üst kısmında, son 30 saniyelik toplam indirme hızını gösteren sağdan sola kayan 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 seçeneği. * Sütun genişliklerini otomatik kaydetme ve geri yükleme. * **Detaylı İndirme Özellikleri:** Her indirme için özel özellikler formu üzerinden detaylı bilgi, kopyalanabilir linkler ve hızlı dosya erişimi. ## 🛠 Teknik Mimari Uygulama modern yazılım prensipleri (Clean Architecture) ve MVVM deseni üzerine inşa edilmiştir: * **DownloadManager.Core:** İndirme motoru, 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 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 * 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 ``` ### 🧩 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 bir indirme linkine tıkladığınızda hDM otomatik olarak açılır ve linki "Ekle" penceresine taşır. * **Pano Desteği:** Herhangi bir linki kopyalayıp hDM içindeki "Ekle" butonuna bastığınızda link otomatik olarak yapıştırılır. * **Sistem Tepsisi:** Uygulamayı kapattığınızda saat yanındaki simgeden sağ tıklayarak "Göster" diyebilir veya "Çıkış" ile tamamen kapatabilirsiniz. ## 📈 Son Durum ve İyileştirmeler Son yapılan güncellemeler ile: - [x] SVG tabanlı ikon desteği ve modern Systray entegrasyonu tamamlandı. - [x] "Kalan Süre" (ETA) hesaplama algoritması eklendi. - [x] "Ekle" penceresine Pano (Clipboard) otomatik yapıştırma özelliği getirildi. - [x] Dinamik/Redirect linklerdeki "0 B" boyutu ve hatalı dosya adı sorunları giderildi. - [x] StatusBar üzerinden anlık disk alanı ve toplam hız takibi eklendi. - [x] Üst başlık alanına canlı hız dalgalanma grafiği eklendi. ## 🛡 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