Fanfix is a small Java program that can download stories from some supported websites and render them offline.
+![Main GUI](screenshots/fanfix.png?raw=true "Main GUI")
+
It will convert from a (supported) URL to an .epub file for stories or a .cbz file for comics (a few other output types are also available, like Plain Text or LaTeX).
To help organize your stories, it can also work as a local library.
In this mode, you can:
- Import a story from its URL (or even another file)
- Export a story to a file (.epub or .cbz)
-- Display a story from the local library
+- Display a story from the local library in text format in the console
+- Display a story from the local library graphically **by calling a native program to handle it** (though Fanfix can automatically process it into HTML so any browser can open it)
## Supported websites
## Supported platforms
-Any platform with at lest Java 1.5 on it should be ok.
+Any platform with at lest Java 1.6 on it should be ok.
+
+It has only been tested on Linux and Windows for now, but feel free to inform me if you try it on another system.
-If you have any problems to compile it 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.
+If you have any problems to compile it with a supported Java version (1.5 won't work, but you may try to cross-compile; 1.6 and 1.8 have been tested and work), please contact me.
## Usage
-You can start the program in CLI mode:
+You can start the program in GUI mode (as in the screenshot on top):
- ```java -jar fanfix.jar```
-__TODO__: offer a GUI mode (work in progress)
-The following arguments are allowed:
+The following arguments are also allowed:
- ```--import [URL]```: import the story at URL into the local library
- ```--export [id] [output_type] [target]```: export the story denoted by ID to the target file
- ```--convert [URL] [output_type] [target] (+info)```: convert the story at URL into target, and force-add the .info and cover if +info is passed
### Dependant libraries (included)
-- libs/nikiroo-utils-sources-0.9.2.jar: some shared utility functions I also use elsewhere
-- [libs/unbescape-1.1.4-sources.jar](https://github.com/unbescape/unbescape): a nice library to escape/unescape a lot of text formats; I only use it for HTML
+- libs/nikiroo-utils-sources.jar: some shared utility functions I also use elsewhere
+- [libs/unbescape-sources.jar](https://github.com/unbescape/unbescape): a nice library to escape/unescape a lot of text formats; I only use it for HTML
-Nothing else but Java 1.5+.
+Nothing else but Java 1.6+.
Note that calling ```make libs``` will export the libraries into the src/ directory.
## TODO
Currently missing, but either in progress or planned:
-- A GUI (work in progress)
-- A binary JAR release (and thus, version 1)
-- Some readers other than CLI (TUI, GUI)
-- Check if it can work on Android
-- French translation
+- [ ] A GUI (work in progress)
+ - [x] Make one
+ - [x] Make it run when no args passed
+ - [x] Fix the UI, it is ugly
+ - [ ] Work on the UI thread is BAD
+ - [ ] Allow export
+ - [ ] Show a list of types
+ - [x] ..in the menu
+ - [ ] ..as a screen view
+ - options screen
+- [ ] A TUI reader
+- [ ] Check if it can work on Android
+- [ ] Translations
+ - [x] i18n system in place
+ - [x] Make use of it
+ - [x] Use it for all user output (some WIP remains)
+ - [ ] French translation
+- [ ] Allow lauching a custom application instead of Desktop.start ?
+ - [ ] Make a wrapper for firefox to create a new, empty profile ?
+- [ ] Install a mechanism to handle stories import progress update
+