Kobo sync read status not synced
Bug Report Template for Booklore
What happened?
The new kobo sync is awesome. Thanks!
Whenever I mark a book as read inside booklore and manual sync to kobo the read status is not synced. It does sync the other way around tho, marking a book as read in kobo syncs the read status in booklore.
Also would it be possible to sync the booklore read percentage with the kobo percentage?
How can we see it happen?
Steps to reproduce the issue:
- Open Booklore and open a book
- Set the read status to
read - Use your kobo and sync the books
- Book marked as read is untouched (the last known status in kobo is used, either status reading or unread)
- Opening the book in kobo and skip few pages updates the read process in booklore and changes the read status from
readtoreading
What did you expect to happen?
The status in booklore should represent the status in kobo also the booklore read percentage should match the kobo read percentage
Screenshots or Error Messages
If you can, please share screenshots or any error messages you saw. It really helps!
About your setup:
- Booklore version v.1.11.0
- LXS Proxmox
It should be possible to have the reading status come back down from Booklore to Kobo, I'll give that a look.
However, syncing down the read percentage from books read in Booklore only to Kobo is a different matter.
So the way that kobo stores reading progress is unique, and is tracked separately (This is similar to the way that KOReader progress functions). While the reading state will update for the book when you read on kobo, the percentage is tracked separately.
Basically when your kobo syncs its read progress to booklore, it syncs a few details, but the ones that matter (From my testing) are the below.
- ProgressPercent
- ContentSourceProgressPercent
- Location, specifically the Source key
So ProgressPercent this reports the displayed reading progress, and is what Booklore displays on your progress badge. However, when your Kobo goes to restore your reading progress on the device, this percentage is not actually used for restoring progress and is more to just report a overall progress number. This is more a display only number, and I don't believe is used to actually restore the progress on the kobo.
What I believe the Kobo is mainly using is the Location, but specifically Location.Source this points to the specific content file inside the epub that the reader was on. This will be something like OEBPS/chapter1.xhtml. When the reading progress is synced down, the kobo opens the epub, and then opens that specific content file within the epub.
ContentSourceProgressPercent is saved and stored, but as far as I can tell this isn't actually used when restoring reading progress between devices/syncs. Basically this is a percentage of how far through the given content file given in the Location.Source you are. It's possible this can be used, but returning this back to the Kobo didn't seem to restore progress midway through the content file, as the kobo sync always restored to the start of the content file in my testing (I'll admit that something may be missed here, so further testing could be used).
The only way I could see the Booklore progress being able to sync down to a Kobo, would be to create some form of translation, where Booklore takes it's internal reading progress, finds the specific content file within the epub that sits within that progress, ideally also provides an estimated ContentSourceProgressPercent for how far within that content file it is, and then constructs it's own CurrentBookmark dict to add to the ReadingStates JSON to send back to the Kobo.
Thanks for the explanation, if I'm not misleading autocaliweb is able to sync the reading status with a kobo. I'm not sure about reading progress, need to check that