MainKronos / Sonarr-AnimeDownloader

It is a Docker Container that uses Sonarr to download anime from AnimeWorld site (ITALY).
https://mainkronos.github.io/Sonarr-AnimeDownloader/
MIT License
43 stars 10 forks source link

[Domanda] Velocità download #94

Closed berta24 closed 1 year ago

berta24 commented 1 year ago

Ciao, ho una domanda, la velocità di download è limitata lato libreria di animeworld giusto? Capita che ogni tanto alcuni episodi vengano scaricati a piena banda mentre altri a velocità ridotte : image

sarebbe possibile avere un controllo prima del download per quale servizio di download sia più veloce? image

oppure se hai qualche idea più valida possiamo discuterne

MainKronos commented 1 year ago

La funzione di ordinamento che è attualmente in uso si trova qui

Per ora i server supportati sono 3: YouTube, AnimeWorld_Server, Streamtape. Escludendo youtube, che è sempre più improbabile trovarlo, la scelta rimane tra due. Quando scrissi la libreria avevo testato i vari server e li avevo ordinati in modo statico per velocità di download; ma come di ci te sarebbe più efficiente se ci fosse un ordinamento un po' meno euristico. Potrei fare in modo di scegliere un server a caso così nel 50% dei casi ci azzecchi 😂, ma non è un idea molto migliore di quella che c'è già....

Non saprei come testare la velocità dei server senza rallentare troppo il processo di download... Mi documento se ci fossero delle richieste http per ottenere queste informazioni in modo veloce e ottimizzato.

Sarebbe piú efficiente se la libreria supportasse piú server, ma stare dietro a tutti i cambiamenti di piú di due/tre siti è sfiancante😥

MainKronos commented 1 year ago

Aggiunta la nuova funzione alla libreria, il codice è questo: https://github.com/MainKronos/AnimeWorld-API/blob/v1.5.0/animeworld/episodio.py#L163L189

Aggiunge un piccolo rallentamento delle prestazioni (al massimo 3 secondi) ma è trascurabile in confronto al tempo di download dell'episodio. La funzione __choiceBestServer() viene eseguita ogni volta che viene richiamata la funzione download().

Ho fatto un po' di test e sembra funzionare. Ho anche aggiunto una sezione di contributing che spiega come aggiungere nuovi server alla libreria.