I just bought a new Kindle Paperwhite and so happens it's the perfect form factor to read good old, black and white, mangas.
So I decided to automate the process of fetching manga images from MangaReader.net, optimize and compile them into PDF files that fit the Kindle resolution.
Setup your environment with:
sudo apt-get install imagemagick
sudo gem install bundler
And install manga-downloadr with:
gem install manga-downloadr
And then execute:
$ manga-downloadr -u http://www.mangareader.net/onepunch-man -d /tmp/onepunch-man
In this example, all the pages of the "One Punch Man" will be downloaded to the directory "/tmp/onepunch-man" and they will have the following filename format:
/tmp/onepunch-man/Onepunch-Man-Chap-00038-Pg-00011.jpg
Tests are in Rspec:
bundle exec rspec
Version 2.0 is a complete rewrite, following what was learned writing my Elixir version.
This is basically a port of the Crystal version.
Elixir has superb parallelism and concurrency through Erlang's OTP architecture so it's easy to process hundreds of parallel requests, limited only to what MangaReader can respond.
Crystal is also super fast (because its compiled to native code) and has very good concurrency (through the use of Go-like CSP channels).
This Ruby version uses native Threads. Because this is I/O intensive, we assume we can run several HTTP requests concurrently. But because Threads have significantly more overhead than Elixir or Crystal architectures, we will be limited by Ruby's MRI interpreter.
- Fork it ( https://github.com/akitaonrails/manga-downloadr/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
- Version 2.0 removes the crash-recovery (saving state) from Version 1.0 - could be reimplemented
- Move MangaReader specifics to a different class
- Add support for MangaFox and other manga sites