Friday, December 17, 2010
Online Manga Downloader 0.0.1
Now that I know how to decrypt PCViewer images, I can release an early version of the downloader I've been working on. It can currently download all Yahoo! Comic and GanGan Online series; I'm working on Club Sunday.
Note that this is 0.0.1, which means that it's very immature. My badly-written code isn't documented and eats up exceptions quite frequently.
A design choice I made was for it to call home (that is, a file on my dropbox account) to look for updates. The reason was that it currently scrapes too many pages and files in order to find where the files are, so refreshing its list of manga takes several minutes. The file it downloads from dropbox already has the information processed for the client, provided that I remember to update it regularly. The list is actually a serialized object, which wasn't a very good idea in retrospect; I'll probably change it to YAML in the future.
Nevertheless, this program, in client mode, can still manually refresh, and it locally stores its list of manga. When I get to adding an preferences dialog, I'll add an option to disable checking for updates.
Also, the client and server are actually the same program. Just run the .jar with arguments "--server file" and it will generate the list at file "file".
A known bug with Yahoo! Comic is that it might not display the correct chapter number. For example, chapter 44 under Hyakko is actually chapter 40. The reason for this is that it only bothers to look at the "key1" parameter to figure out the chapter number, which is apparently incorrect for Hyakko and maybe a few other Yahoo! Comic series.
Running it requires Java 6. Compiling it requires JDK 6 (maybe JDK 5 works, idk) and SnakeYAML to parse the information files it has on series and magazines. This program is also licensed under new BSD, as ironic as it is for me to try to impose a license on something.
Oh, and to download the chapter, double-click it.
Online Manga Downloader 0.0.1 (4SH)
Online Manga Downloader 0.0.1 source code (4SH)
I'll open up a github repo or Google Code project later.