Integrazione con Soulseek
TuneCamp si integra con la rete P2P Soulseek per consentire agli amministratori di cercare e scaricare file musicali direttamente da altri utenti.
1. Architettura
L'integrazione con Soulseek è implementata in src/server/modules/integrations/soulseek.ts (con un wrapper DownloadProvider in src/server/providers/download/soulseek.provider.ts). Utilizza un client personalizzato per connettersi al server Soulseek e gestire i trasferimenti di file peer-to-peer.
Attivazione esplicita (Opt-in): Soulseek è disabilitato per impostazione predefinita per motivi legali e deve essere abilitato esplicitamente tramite l'opzione dei plugin nel pannello di amministrazione.
Caratteristiche Principali
- Ricerca Globale: Cerca tracce o album nell'intera rete Soulseek.
- Sfoglia Cartelle Peer: Visualizza i file condivisi da uno specifico utente di Soulseek.
- Coda di Download: Gestisce più download simultanei con tentativi di ripristino automatici in caso di errore.
- Importazione Automatica: Una volta completato il download, i file vengono passati al componente
Scannerper l'elaborazione e aggiunti alla libreria.
2. Struttura delle Cartelle
I download effettuati da Soulseek vengono memorizzati nel percorso:
- Percorso:
music/downloads/soulseek/
3. Configurazione
Normalmente configurabile tramite il Pannello di Amministrazione → sezione Integrations. Variabili d'ambiente di fallback:
SLSK_USER: Il nome utente del tuo account Soulseek.SLSK_PASS: La password del tuo account Soulseek.
4. Limitazione del Tasso (Rate Limiting) e Sicurezza
Per evitare di essere bananti o di sovraccaricare il server:
- Limiti di Ricerca: Il sistema applica un ritardo obbligatorio tra le ricerche.
- Slot di Download: Solo un numero limitato di file viene scaricato simultaneamente.
- Convalida dei File: L'integrità dei file scaricati viene verificata prima dell'importazione nella libreria.
5. Flusso di Utilizzo
- Ricerca: L'amministratore inserisce una chiave di ricerca nella scheda Soulseek della dashboard.
- Risultati: Viene mostrato un elenco di file corrispondenti provenienti dai vari utenti, con informazioni sul bitrate e sulla dimensione del file.
- Coda: L'amministratore seleziona i file da scaricare, che vengono aggiunti alla coda interna.
- Trasferimento: Il server stabilisce una connessione P2P diretta con l'utente remoto per scaricare il file.
- Acquisizione: Una volta completato, il file viene spostato nella libreria e scansionato.