Files
hDM/README.md
2026-05-06 15:59:53 +03:00

81 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# hOLOlu Download Manager (hDM)
Modern, hızlı ve kullanıcı dostu, .NET 8 ve WPF tabanlıı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:**ı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