Quote:
Originally Posted by altruizine
Thanks for your very thorough response, chaley!
|
You are welcome.
Quote:
I do understand that not having the book file in the CC directory creates problems. Just a thought: Perhaps creating a placeholder file or a symlink instead would make the rest of your code happy enough? (Symlinks probably don't work on FAT-formatted SD cards, though.)
|
The problem isn't the missing book. CC tolerates very well having the books disappear. About the only thing that breaks is launching the reader app, for obvious reasons.
The problems that arise come from the assumption that the book file is owned by CC. The wireless device driver might update it. CC might delete it. CC owns the set of folders where books are stored and can move them. CC might store calibre news in the folder. And so on. I either need to allow CC to corrupt the library (not a good idea) or to change every place where CC makes assumptions about its folder and file structure.
Quote:
I actually have already explored most of the alternatives you mention:
CC's sync doesn't seem to support WebDAV, which is how I happen to have my library available (on my own server; I try to avoid third-party “cloud” solutions whenever possible).
|
This isn't the sync-type I was referring to. I suggested that you use the wireless device driver to load your library. Many people do this. The first sync can be long, depending on the number of books in the library, but subsequent syncs run quickly. One advantage in addition: CC's copy of book metadata is updated on every connection. There are calibre plugins to tell you if there are books in your library that aren't on your device and vice versa. The reading list plugin supports automatic transfer of books, which works well with CC's automatic connect feature. And perhaps more important, it is how CC was designed to operate.
As for webdav: CC's cloud connection implementation requires 2 things: OAUTH2 authentication and an HTTP RESTFUL API for walking the folder tree and fetching files. All webdav implementations that I know of violate one or the other of these two requirements. It could be that all webdav implementations violate the second, especially with methods like LOCK, but CC might not stumble over these. And finally, it isn't at all clear that the libraries CC use would tolerate the added webdav methods and headers.
Another suggestion: put a copy of calibre's content server on your NAS or on a machine that can mount its disks. Then you can use CC's content server connection to fetch books on demand from an up-to-date source. I do this, running the content server on a linode VPS.