| 1 | # Fanfix |
| 2 | |
| 3 | A small program to download and convert fanfictions and comics from supported websites into offline files (epu, cbz...). |
| 4 | |
| 5 | It can either "convert" a website into a file, or import/export to/from its library. |
| 6 | |
| 7 | ## Supported platforms |
| 8 | |
| 9 | Any platform with at lest Java 1.5 on it should be ok. |
| 10 | |
| 11 | It was only tested on Linux up until now, though. |
| 12 | |
| 13 | If you have any problems to compile it on another platform or with a supported Java version (1.4 won't work, but you may try to cross-compile; 1.8 had been tested and works), please contact me. |
| 14 | |
| 15 | ## Usage |
| 16 | |
| 17 | - java -jar fanfix.jar --convert http://SOME_SUPPORTE_URL/ epub /home/niki/my-story.epub: will convert the story to EPUB |
| 18 | - java -jar fanfix.jar --import http://SOME_SUPPORTED_URL/ : will import the story into the local library |
| 19 | - java -jar fanfix.jar --export LUID CBZ /tmp/comix.cbz : will export the story from the local library |
| 20 | - java -jar fanfix.jar --list: will list the known stories and their LUIDs from the local library |
| 21 | - ... (calling the program without parameters will display the syntax) |
| 22 | |
| 23 | ### Environment variables |
| 24 | |
| 25 | - LANG=en java -jar fanfix.jar: force the language to English (the only one for now...) |
| 26 | - CONFIG_DIR=$HOME/.fanfix java -jar fanfix.jar: use the given directory as a config directory (and copy the default configuration if needed) |
| 27 | - NOUTF=1 java -jar fanfix.jar: try to fallback to non-unicode values when possible (can have an impact on the resulting files, not only on user messages) |
| 28 | |
| 29 | ## Compilation |
| 30 | |
| 31 | ./configure.sh && make |
| 32 | |
| 33 | You can also import the java sources into, say, Eclipse, and create a runnable JAR file from there. |
| 34 | Just remember to unpak the 2 dependant libraries before (or "make libs" can do it). |
| 35 | |
| 36 | ### Dependant libraries (included) |
| 37 | |
| 38 | - libs/nikiroo-utils-sources-0.9.1.jar: some shared utility functions I also use elsewhere |
| 39 | - libs/unbescape-1.1.4-sources.jar: a nice library to escape/unescape a lot of text formats; I only use it for HTML |
| 40 | |
| 41 | Nothing else but Java 1.5+. |
| 42 | |
| 43 | Note that calling "make libs" will export the libraries into the src/ directory. |
| 44 | |
| 45 | ## Supported websites |
| 46 | |
| 47 | Currently, the following websites are supported: |
| 48 | - http://FimFiction.net/: Fanfictions devoted to the My Little Pony show |
| 49 | - http://Fanfiction.net/: Fan fictions of many, many different universes, from TV shows to novels to games. |
| 50 | - http://mangafox.me/: A well filled repository of mangas, or, as their website states: Most popular manga scanlations read online for free at mangafox, as well as a close-knit community to chat and make friends. |
| 51 | - https://e621.net/: Furry website supporting comics, including MLP |
| 52 | |
| 53 | We also support some other (file) types: |
| 54 | - epub: EPUB files created by this program (we do not support "all" EPUB files) |
| 55 | - text: Support class for local stories encoded in textual format, with a few rules : |
| 56 | - the title must be on the first line, |
| 57 | - the author (preceded by nothing, "by " or "©") must be on the second line, possibly with the publication date in parenthesis (i.e., "By Unknown (3rd October 1998)"), |
| 58 | - chapters must be declared with "Chapter x" or "Chapter x: NAME OF THE CHAPTER", where "x" is the chapter number, |
| 59 | - a description of the story must be given as chapter number 0, |
| 60 | - a cover image may be present with the same filename but a PNG, JPEG or JPG extension. |
| 61 | - info_text: Contains the same information as the TEXT format, but with a companion ".info" file to store some metadata |
| 62 | - cbz: CBZ (collection of images) files created with this program |
| 63 | |
| 64 | ## TODO |
| 65 | |
| 66 | - A nice README file |
| 67 | - A binary JAR release (and thus, versions) |
| 68 | - Improve the CLI reader |
| 69 | - Offer some other readers (TUI, GUI) |
| 70 | - Check if it can work on Android |
| 71 | |