![]() |
#16 |
Connoisseur
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 50
Karma: 16347
Join Date: Oct 2011
Location: Delta, B.C.
Device: kobo Aura HD,Apple Ipad Mini,Samsung Galaxy Tab S 8.4,LG G4
|
Are you using the OPDS feed on the content server? or are you scraping the mobile/desktop version? I have been working on my own app and I ended up being almost complete for using scraping before I discovered the OPDS feed and started over. I have since completed that part.
How do you do the syncing data? I am looking to implement syncing read data and I am not able to afford anything that has ongoing costs. I am working on a free open source app that I started making because I wanted an app with a set of specific features tailored specifically to my own needs. BTW your app looks beautiful. 100 percent better than what mine looks like! I am more of an SDK developer than anything else. I like creating apps for myself that meet my own needs. Yours has a ton of features too. Most of them I have zero interest in. Hence why I tend to make my own things. But I can appreciate what you have done. I can almost guarantee if we were to compare performance your app would beat the pants off of mine. I am relatively new developer and have a lot to learn. I would like to figure out a free way to implement syncing across devices to support myself, and other users using free services. Ideally not a shared database on a cloud hosted provider that I don't have control off. A service like dropbox, google drive, or onedrive are fine. But a shared hosted db that charges money is a little much for me. |
![]() |
![]() |
![]() |
#17 | ||
Member
![]() Posts: 17
Karma: 10
Join Date: Mar 2019
Location: Norway
Device: Onyx Boox Poke 3
|
Quote:
JetReader can sync read status and ratings back to Calibre. This is done through the same API as above (so basically "emulating" a user in the Content server web interface). Synchronization of user data, such as reading progress, statistics and bookmarks, is done in two different ways. 1. File-based: it is possible to sync using Dropbox or WebDav. In these cases, I use a JSON format that stores the data I want to sync to the external storage, and reads the same data from other devices (each device store their data in a separate folder). Then each device must read the data from the other devices, and merge it with the local data. Reading files through these services is usually a bit slow, so I store some metadata in separate files, that are used to check which of the other files I must check/download. Since each device merges data from the other devices, all data will eventually be duplicated on each device, but given proper IDs and date stamps, it is possible to avoid merging in data more than once. When something is deleted on one device, that ID must be marked as deleted, and stored somewhere, so that other devices can also delete it, instead of merging it back in. It's a bit messy, but it works. This could work with any file-based service, such as Google Drive or OneDrive as well. 2. Server-based: if the user chooses to sync via my server at jetreader.net, data is stored in an SQL database. Syncing is much quicker, and the merging algorithm is much easier, but as you say, that obviously requires server infrastructure, and the related costs for that. Quote:
Thanks again! I try to make it as efficient as possible. |
||
![]() |
![]() |
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
[iPhone] Ebook App + Calibre sync | grimorie | Devices | 0 | 02-05-2025 08:57 PM |
How to sync reading position from content server to calbre app? | millpondflora | Server | 7 | 03-03-2022 09:40 AM |
Is it possible to sync reading position between Kobo reader and (any app) iOS? | RedTomato | Kobo Reader | 7 | 04-30-2021 06:57 PM |
Aura sync reading progress between aura and android app, sideloaded books | Tikker | Kobo Reader | 5 | 05-15-2017 11:12 AM |
Reading app with freehand annotations and cloud sync (Dropbox, Google Drive, ...) | sjvs | Reading and Management | 1 | 08-30-2013 03:18 PM |