Currently the progress sent to the server can be either a string or an int (depending on whetther the document has pages).
The following are both payload sent from koreader to the server.
```
{"percentage":0.005,"device":"device_name","device_id":"B78EA04ACC3A453DBA220D720C0BE102","document":"348e34463a44ba68659fc6fe814a6778","progress":3}
```
where document `348e34463a44ba68659fc6fe814a6778` is a pdf file.
```
{"percentage":1,"device":"device_name","device_id":"B78EA04ACC3A453DBA220D720C0BE102","document":"4eb484b229696cb39cd8fe5495aa1bbe","progress":"\/body\/DocFragment[30]\/body\/p\/img.0"}
```
where document `4eb484b229696cb39cd8fe5495aa1bbe` is an epub file.
This may add extra work to the backend server. A few commits were added to my personal fork of [kosyncsrv](https://github.com/yeeac/kosyncsrv) (a kosync backend server). kosyncsrv initially tries to decode progress as a string. It then failed on document with pages (in which, progress is just integer page number). I then change the field's type, only to [revert it later](8a642e31a0).
I believe it is more appropriate for us to fix the progress type to string.
KOReader is a document viewer primarily aimed at e-ink readers.
Download • User guide • Wiki • Developer docs
Main features
-
portable: runs on embedded devices (Cervantes, Kindle, Kobo, PocketBook, reMarkable), Android and Linux computers. Developers can run a KOReader emulator in Linux and MacOS.
-
multi-format documents: supports fixed page formats (PDF, DjVu, CBT, CBZ) and reflowable e-book formats (EPUB, FB2, Mobi, DOC, CHM, TXT). Scanned PDF/DjVu documents can also be reflowed with the built-in K2pdfopt library.
-
full-featured reading: multi-lingual user interface with a highly customizable reader view and many typesetting options. You can set arbitrary page margins, override line spacing and choose external fonts and styles. It has multi-lingual hyphenation dictionaries bundled into the application.
-
integrated with calibre (search metadata, receive ebooks wirelessly, browse library via OPDS), Wallabag, Wikipedia, Google Translate and other content providers.
-
optimized for e-ink devices: custom UI without animation, with paginated menus, adjustable text contrast, and easy zoom to fit content or page in paged media.
-
extensible: via plugins
-
fast: on some older devices, it has been measured to have less than half the page-turn delay as the built in reading software.
-
and much more: look up words with StarDict dictionaries / Wikipedia, add your own online OPDS catalogs and RSS feeds, over-the-air software updates, an FTP client, an SSH server, …
Please check the user guide and the wiki to discover more features and to help us document them.
Screenshots
Installation
Please follow the model specific steps for your device:
Android • Cervantes • Kindle • Kobo • Linux • Pocketbook • reMarkable
Development
Setting up a build environment • Collaborating with Git • Building targets • Porting • Developer docs
Support
KOReader is developed and supported by volunteers all around the world. There are many ways you can help:
- fix bugs and implement new features
- translate the program into your language or improve an existing translation
- document lesser-known features on the wiki
- help others with your knowledge on the forum
Right now we only support liberapay donations, but you can also create a bounty to motivate others to work on a specific bug or feature request.
