Skip to content

PietroS-ITA/MultiHostDownloader

Repository files navigation

🚀 Multi-Host Downloader

Important

🔮 VIBECODING PROJECT Questo progetto è stato interamente sviluppato in modalità Vibecoding (interazione in linguaggio naturale con agenti AI). Non una singola riga di codice è stata scritta manualmente: tutto il software, l'interfaccia utente, la logica di rete e il packaging sono frutto di conversazione, prompt guidati e pair programming guidato dall'intelligenza artificiale.

Un downloader multi-host desktop potente, moderno ed esteticamente premium, progettato per automatizzare la scansione, il pre-check, la risoluzione e lo scaricamento di pacchetti di file (specialmente archivi divisi e file di ripristino) da provider esterni come FileStore e Terabytez, sia con account Premium che Free.


✨ Funzionalità Chiave

  • 🌐 Rilevamento e Ingestione di Collegamenti:
    • Supporto per Click 'n' Load 2 (CnL2) per importare pacchetti direttamente dai siti web con un clic.
    • Ingestione manuale di URL singoli o multipli.
    • Scansione e decrittazione di contenitori (DLC, portali intermediari come Filecrypt).
  • 🔍 Analisi e Pre-check Intelligente:
    • Riconoscimento automatico dello stato online/offline dei link tramite richieste asincrone ottimizzate con timeout adattivo.
    • Identificazione immediata di file di ripristino (.rev) e delle parti mancanti del pacchetto.
  • 🔑 Autenticazione e Risoluzione Cookie:
    • Accesso automatico e refresh intelligente dei cookie per account Premium e Free.
    • Lock di concorrenza per evitare richieste di login duplicate e rate-limit.
    • Cooldown di 60 secondi sui tentativi di refresh falliti per evitare blocchi ed attese inutili su link offline.
  • Gestore dei Download ad Alte Prestazioni:
    • Code di download parallele con supporto per il ripristino di file parziali (.tmp).
    • Limitatore di velocità globale impostabile al volo.
  • 📦 Post-Elaborazione Automatica:
    • Ricostruzione automatica degli archivi corrotti o incompleti utilizzando i file .rev tramite binari rar/unrar integrati.
    • Estrazione automatica degli archivi estratti con password salvate o inserite.
    • Pulizia automatica opzionale dei file compressi dopo l'estrazione.
  • 📊 Dashboard Web Premium e Reattiva:
    • Interfaccia responsive in modalità scura con design moderno e pulito (vetromorfismo, animazioni fluide).
    • Grafici di velocità globali e progresso dei singoli file con calcolo dell'ETA.
    • Sincronizzazione in tempo reale dello stato tramite WebSockets bidirezionali.
    • Indicatori del traffico Premium rimanente che si aggiornano in tempo reale interrogando direttamente l'hoster.
  • 💻 Integrazione di Sistema:
    • Tray icon di sistema (pystray) per ridurre a icona l'applicazione e lasciarla in esecuzione in background.
    • Eseguibili portatili autocontenuti per Windows e Linux (AppImage).

🛠️ Struttura del Progetto

├── backend/                   # Codice sorgente Python (FastAPI + Asyncio)
│   ├── archive_manager.py     # Gestione archivi, ricostruzione .rev ed estrazione
│   ├── config.py              # Gestione delle impostazioni (settings.json)
│   ├── downloader.py          # Gestore della coda download, velocità e traffico
│   ├── hosts.py               # Risoluzione cookie, login premium/free
│   └── main.py                # Server FastAPI principale e gestione WebSockets
├── frontend/                  # Interfaccia grafica (HTML5 / Vanilla CSS / JS)
│   ├── app.js                 # Logica UI e connessioni WebSocket
│   ├── index.html             # Layout principale
│   └── style.css              # Styling e animazioni grafiche
├── config/                    # Cartella di configurazione dell'utente
├── dist/                      # Contiene gli eseguibili compilati completi
├── build_appimage.sh          # Script bash per impacchettare l'AppImage Linux
├── build_exe.bat              # Script batch per compilare l'eseguibile Windows (via Docker)
├── Dockerfile                 # Dockerfile per il container di sviluppo/produzione
├── docker-compose.yml         # Composizione dei servizi per Docker
├── downloader.spec            # Configurazione PyInstaller per il compilatore
├── requirements.txt           # Dipendenze Python richieste
└── README.md                  # Questo file

🚀 Come Eseguire il Progetto

1. Installazione Locale (Python)

Assicurati di avere Python 3.10+ installato.

# Installa le dipendenze
pip install -r requirements.txt

# Scarica i binari estrattori richiesti (rar/unrar)
python3 download_binaries.py

# Avvia l'applicazione locale
python3 -m backend.main

L'interfaccia utente sarà accessibile all'indirizzo http://localhost:8005. L'icona dell'applicazione apparirà anche nella barra di sistema.

2. Docker Compose (Consigliato per Server/NAS)

Puoi avviare l'applicazione in un container Docker isolato:

docker-compose up -d

🏗️ Compilazione degli Eseguibili (Packaging)

Tip

Eseguibili Pronti all'Uso: Se non desideri compilare i file manualmente, puoi trovare i pacchetti precompilati per Windows (.exe) e Linux (.AppImage) pronti all'uso direttamente nella sezione Releases di questo repository GitHub.

Per Linux (Genera un AppImage portatile)

Lo script compila i sorgenti tramite PyInstaller e li pacchettizza usando appimagetool:

chmod +x build_appimage.sh
./build_appimage.sh

Il risultato finale sarà disponibile in dist/MultiHostDownloader-x86_64.AppImage.

Per Windows (Genera un file .exe autocontenuto)

Usa Docker per compilare l'eseguibile Windows direttamente da Linux senza installare toolchain Windows locali:

./build_exe.bat

Il file eseguibile compilato sarà generato in dist/MultiHostDownloader.exe.


📝 Licenza e Limitazioni

Questo software è distribuito sotto licenza GNU GPL v3.0 (maggiori dettagli nel file LICENSE). Viene fornito per scopi puramente educativi e personali; gli autori non si assumono alcuna responsabilità per utilizzi che violino i termini di servizio degli hoster esterni.

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors