- download of raw images using mloader
- EPUB / CBZ generation through KCC
- PDF generation through Pillow (yeah, easy there)
The application has been deployed onto:
- Google Cloud https://manganloader-bjo3n53nda-uc.a.run.app/
- Render https://manganloader.onrender.com/
- Render - light version https://manganloader-simple.onrender.com/ . The version does not rely on Selenium and Javascript to download mangas, hence its usage is restricted to those sources which do not require these tricks. If you dare downloading mangas from these exotic sources, you will get an empty zip file - and you deserve it, I told you to not try!
Since I am poor and I cannot afford unlimited cloud resources, the websites may not generate documents due to memory issues.
Render has a timeout for poor users - then wait few minutes until it spins up again. Workaround: try again.
Everybody likes Docker 🐳. I do, as well, then I provided a script to build an image 📦:
chmod +x docker_build.sh
sh docker_build.sh
... and a script to run it 💞:
chmod +x docker_run.sh
sh docker_run.sh
The Dockerfile fetches the latest version of the repo, prepares the environment for deployment, serves the app through Gunicorn.
The application is usually served on http://0.0.0.0:3000 . Just to be sure, check the Docker logs and you will see a nice sentence like:
Link to the project homepage: http://0.0.0.0:3000
Use the requirements.txt
file to load the high-level dependencies into a Python virtual environment - env
in the following example:
virtualenv env
source env/bin/activate
pip install -r requirements.txt
Use git to download the KCC source code:
git submodule update --init --recursive
KCC will be stored into the kcc
folder - and invoked from there.
If you just want your manga, run the Flask application with the command:
python3 flask_app.py
It is OS-agnostic, then you have no excuses for missing dependencies on your Windows machine.
If you are nerd, you can find examples of calls in the test.py
and download_colored.py
files.
It can be useful for people writing Telegram bots - we both now to whom this message should be delivered, right @ShadowTemplate ?
- (back-end) Distinguish between SIMPLE (no Selenium) and NORMAL (with Selenium) version during deployment.
- (back-end) Use either Gunicorn or Flask to serve the application, can be changed with an environment variable.