Scarica le serie tv/film dal sito AnimeSaturn e/o manga dal sito MangaWorld. Grazie al Web integrato in questo progetto è possibile scaricare e vedere da solo oppure con gli amici l'anime oppure manga.
Il progetto si suddivide in 9 progetti:
- 🧮Api Service (C#)
- 📩Download Service (C#)
- 📨Notify Service (C#)
- 💾Update Service (C#)
- 💽Upgrade Service (C#)
- 💱Conversion Service (C#)
- 🏠Room Server (Hapi)
- 📁Path Server (Nodejs)
- 🌐Web Server(Nuxtjs V3)
- 🎭Tor Proxy (Python)
Servizi utilizzati:
Nome Immagine | Link |
---|---|
🧮Api Service | Link |
📩Download Service | Link |
📨Notify Service | Link |
💾Update Service | Link |
💽Upgrade Service | Link |
💱Conversion Service | Link |
🏠Room server (Hapi) | Link |
🌐Web Client | Link |
🎭Tor Proxy | Link |
- Completare alcuni campi vuoti nel file docker-compose.yml
- Ho creato un file bash per gestire il progetto, ti basta solo avviare in
bash management.sh
oppure in./management.sh
e Goditi!😊😁🥴 - Se vuoi sapere di più dallo script, ti basterà fare solo
./management.sh -h
oppure./management.sh --help
Questo progetto verrà utilizzato per gli utenti che vorranno scaricare anime e/o manga. Hanno la possibilità di vedere l'anime con gli amici in tempo reale.
Expose ports | Protocol |
---|---|
3000 | TCP |
Services | Required |
---|---|
Api | ✅ |
Ftp | ✅ |
Room server | ⛔ |
example:
#--- API ---
NUXT_API_BASE: 'http://localhost:3333' #http://localhost:5000 [default]
#--- Path ---
NUXT_PUBLIC_HTTP_BASE: 'http://localhost:3333' #http://localhost:5002 [default]
NUXT_PUBLIC_BASE_PATH: "/path" #"/public" [default]
#--- WebSocket ---
NUXT_PUBLIC_SOCKET_BASE: "ws://localhost:1111/path" #ws://localhost:5001/room [default]
#--- Share link ---
NUXT_PUBLIC_WEB_BASE: "http://localhost:33333" #http://localhost:3000 [default]
#--- AUTH ---
NUXT_PUBLIC_SECRET: "secret" #animemanga [default]
Questo progetto verrà utilizzato per esporre i dati in maniera facile e veloce con il database postgresql e mongo.
Expose ports | Protocol |
---|---|
80 | TCP |
Note:
not
require volume mounted on Docker
Services | Required |
---|---|
Mongo | ✅ |
Postgresql | ✅ |
RabbitMQ | ✅ |
Notify | ⛔ |
example:
#--- DB ---
DATABASE_CONNECTION: User ID=guest;Password=guest;Host=localhost;Port=33333;Database=db; [require]
DATABASE_CONNECTION_MONGO: "mongodb://ip:port"
NAME_DATABASE_MONGO: "name db"
#--- Rabbit ---
USERNAME_RABBIT: "guest" #guest [default]
PASSWORD_RABBIT: "guest" #guest [default]
ADDRESS_RABBIT: "localhost" #localhost [default]
#--- API ---
PORT_API: "33333" #5000 [default]
#--- Logger ---
LOG_LEVEL: "Debug|Info|Error" #Info [default]
WEBHOOK_DISCORD_DEBUG: "url" [not require]
#--- General ---
BASE_PATH: "/folder/anime" or "D:\\\\Directory\Anime" #/ [default]
LIMIT_THREAD_PARALLEL: "8" #5 [default]
Questo progetto verrà utilizzato per controllare se sono presenti nel file locale se non ci sono, invia un messaggio a DownloadService che scarica l'episodio mancante.
Note:
require
volume mounted on Docker
Services | Required |
---|---|
Api | ✅ |
RabbitMQ | ✅ |
example:
#--- Rabbit ---
USERNAME_RABBIT: "guest" #guest [default]
PASSWORD_RABBIT: "guest" #guest [default]
ADDRESS_RABBIT: "localhost" #localhost [default]
#--- API ---
ADDRESS_API: "localhost" #localhost [default]
PORT_API: "33333" #5000 [default]
PROTOCOL_API: "http" or "https" #http [default]
#--- Logger ---
LOG_LEVEL: "Debug|Info|Error" #Info [default]
WEBHOOK_DISCORD_DEBUG: "url" [not require]
#--- General ---
BASE_PATH: "/folder/anime" or "D:\\\\Directory\Anime" #/ [default]
TIME_REFRESH: "60000" <-- milliseconds #120000 [default] 2 minutes
LIMIT_THREAD_PARALLEL: "8" #5 [default]
SELECT_SERVICE: "book or video" #video
Questo progetto verrà utilizzato per scaricare i nuovi episodi
Note:
not
require volume mounted on Docker
Services | Required |
---|---|
Api | ✅ |
RabbitMQ | ✅ |
Notify | ⛔ |
example:
#--- rabbit ---
USERNAME_RABBIT: "guest" #guest [default]
PASSWORD_RABBIT: "guest" #guest [default]
ADDRESS_RABBIT: "localhost" #localhost [default]
#--- API ---
ADDRESS_API: "localhost" #localhost [default]
PORT_API: "33333" #5000 [default]
PROTOCOL_API: "http" or "https" #http [default]
#--- Logger ---
LOG_LEVEL: "Debug|Info|Error" #Info [default]
WEBHOOK_DISCORD_DEBUG: "url" [not require]
#--- General ---
BASE_PATH: "/folder/anime" or "D:\\\\Directory\Anime" #http [default]
TIME_REFRESH: "60000" <-- milliseconds #1200000 [default] 20 minutes
LIMIT_THREAD_PARALLEL: "8" #5 [default]
SELECT_SERVICE: "book or video" #video
Questo progetto verrà utilizzato per scaricare i video e mettere nella cartella.
Notes:
require
volume mounted on Docker and se hai abilitato il proxy, nella cartella proxy devi inserire gli indirizzi ip con il comma, come in questo esempio:http:1111:1234,http:2222:1234
Services | Required |
---|---|
Api | ✅ |
RabbitMQ | ✅ |
example:
#--- rabbit ---
USERNAME_RABBIT: "guest" #guest [default]
PASSWORD_RABBIT: "guest" #guest [default]
ADDRESS_RABBIT: "localhost" #localhost [default]
LIMIT_CONSUMER_RABBIT: "5" #3 [default]
#--- API ---
ADDRESS_API: "localhost" #localhost [default]
PORT_API: "33333" #3000 [default]
PROTOCOL_API: "http" or "https" #http [default]
#--- Logger ---
LOG_LEVEL: "Debug|Info|Error" #Info [default]
#--- proxy ---
PROXY_ENABLE: "true" #false [default]
#--- General ---
DELAY_RETRY_ERROR: "60000" #10000 [default]
MAX_DELAY: "40" #5 [default]
LIMIT_THREAD_PARALLEL: "100" #5 [default]
PATH_TEMP: "/tmp/folder" #D:\\TestAnime\\temp [default]
BASE_PATH: "/folder/anime" or "D:\\\\Directory\Anime" #/ [default]
ENABLE_VIDEO: "false" #true [default]
ENABLE_BOOK: "true" #true [default]
Note:
not
require volume mounted on Docker
Services | Required |
---|---|
Api | ✅ |
RabbitMQ | ✅ |
example:
#--- rabbit ---
USERNAME_RABBIT: "guest" #guest [default]
PASSWORD_RABBIT: "guest" #guest [default]
ADDRESS_RABBIT: "localhost" #localhost [default]
#--- Webhook ---
WEBHOOK_DISCORD_BOOK: "url" [require]
WEBHOOK_DISCORD_BOOK_REQUEST: "url" [require]
WEBHOOK_DISCORD_VIDEO: "url" [require]
WEBHOOK_DISCORD_VIDEO_REQUEST: "url" [require]
#--- Bot Telegram ---
TOKEN_BOT: "token" [require]
CHAT_ID: "@channelusername" [require]
CHAT_ID_REQUEST: "@channelusername" [require]
#--- logger ---
LOG_LEVEL: "Debug|Info|Error" #Info [default]
WEBHOOK_DISCORD_DEBUG: "url" [not require]
#--- General ---
SELECT_SERVICE: "Discord|Telegram|Any"
Questo progetto verrà utilizzato per convertire file ts in mp4 da poter riprodurre in streaming
Note:
require
volume mounted on Docker
Services | Required |
---|---|
Api | ✅ |
RabbitMQ | ✅ |
example:
#--- rabbit ---
USERNAME_RABBIT: "guest" #guest [default]
PASSWORD_RABBIT: "guest" #guest [default]
ADDRESS_RABBIT: "localhost" #localhost [default]
LIMIT_CONSUMER_RABBIT: "5" #3 [default]
#--- API ---
ADDRESS_API: "localhost" #localhost [default]
PORT_API: "33333" #3000 [default]
PROTOCOL_API: "http" or "https" #http [default]
#--- Logger ---
LOG_LEVEL: "Debug|Info|Error" #Info [default]
WEBHOOK_DISCORD_DEBUG: "url" [not require]
#--- General ---
MAX_THREAD: "3" #3 default
PATH_TEMP: "/folder/temp" [require]
PATH_FFMPEG: "/folder/bin" #/usr/local/bin/ffmpeg [default]
BASE_PATH: "/folder/anime" or "D:\\\\Directory\Anime" #/ [default]
questo progetto viene gestito le sessioni di streaming e le interazioni dei video degli altri, per esempio se viene messo in pausa tutte le persone che sono presenti in quella stanza viene messo in pausa il video.
Note:
not
require volume mounted on Docker
example:
#--- General ---
HOST: "localhost" #0.0.0.0 [default]
PORT: "33333" #1234 [default]
PATH_URL: "/path" #/room [default]
Questo servizio serve ad esporre i file video per web.
Creare un container che contiene una lts di linux.
Installare nodejs
e npm
, infine installare il pacchetto ftp: npm install --global http-server
Avviare con http-server '/root/anime'
come avvio della macchina
Oppure si può usare questa immagine: danjellz/http-server
, la cartella che viene esposta è la seguente: /public
Questo progetto verrà utilizzato per fare proxy attraverso tor per evitare che venga tracciato e se dovesse bloccare per le troppe richieste viene riavviato con un ip sempre diverso dal precedente.
Note:
not require
volume mounted on Docker
Services | Required |
---|---|
RabbitMQ | ✅ |
example:
#--- General ---
ADDRESS_RABBIT: "localhost" #"localhost" [default]
PORT_RABBIT: 9999 #5672 [default]
USERNAME_RABBIT: "guest" #"guest" [default]
PASSWORD_RABBIT: "guest" #"guest" [default]
EXCHANGE_NAME: "example_exchange" [required]
QUEUE_RABBIT: "example_queue" #"animemanga-tor-proxy" [default]
REPLICAS: 4 #15 [default]
EXPECTED_ADDRESS: #ADDRESS_RABBIT [default]
START_PORT: 9999 #8000 [default]
PROXY_PATH: "/path/example" #"proxy.txt" [default]