View Single Post
Old 11-08-2010, 03:45 AM   #6
Jim Chapman
Addict
Jim Chapman ought to be getting tired of karma fortunes by now.Jim Chapman ought to be getting tired of karma fortunes by now.Jim Chapman ought to be getting tired of karma fortunes by now.Jim Chapman ought to be getting tired of karma fortunes by now.Jim Chapman ought to be getting tired of karma fortunes by now.Jim Chapman ought to be getting tired of karma fortunes by now.Jim Chapman ought to be getting tired of karma fortunes by now.Jim Chapman ought to be getting tired of karma fortunes by now.Jim Chapman ought to be getting tired of karma fortunes by now.Jim Chapman ought to be getting tired of karma fortunes by now.Jim Chapman ought to be getting tired of karma fortunes by now.
 
Posts: 310
Karma: 2025434
Join Date: Oct 2009
Device: Lumia 950 Phone
Hi,

The Windows Phone 7 version of Freda can access your Calibre library over the network, but Microsoft doesn't provide any generic way to put your own files onto the phone - there is no 'ActiveSync', and in fact WP7 doesn't support the idea of a generally accessible file system that you can copy files into so that apps will be able to see them. Each app runs in its own isolated little piece of file system, and in general they can't share files between them.

As for ways to get your book collection onto Freda, the best way is to install Calibre on your PC, point Calibre at your book collection, then start the Calibre Content Server. Then you create a Freda catalog that points at your Calibre content server (actually Freda ships with a predefined catalog item that you can adapt), and you will see all your books as entries in that catalog; when you click on one of them, it will download onto your phone, and you can read it. Once a book is downloaded, you can read it whenever you want (you won't need to be connected to the network to see it, because it's now locally present on your phone; Freda will store up to 20 books on your phone in this way). There is a link to a detailed 'how-to' walkthrough in the manual at http://www.turnipsoft.co.uk/freda .

You can also, using DropBox and a program called Calibre2Opds, post your book collection on line so that it's always accessible to Freda as long as your phone has internet connectivity (because the solution I described previously will only work when Calibre Content Server is actually running on your PC). But the DropBox approach has privacy issues because it means publishing your whole book collection to everyone on the internet.

Ideally what you'd want is a way to copy your entire book collection up onto your phone, so that all of it is accessible to Freda, whether you have network connection or not. I'm still pondering the best way to do that, because it's kinda fiddly. The basic idea would be to run a SOAP web service on your PC that exposes all the files, and have a client on your phone that downloads whatever files you tell it to (and puts them into Freda's private file system). But from a design perspective this will be complicated, because:
1) It is going to involve some very long file transfers (a moderately large book collection could take an hour or more to copy over WiFi), and these need to start/stop/resume tidily, without losing or corrupting files.
2) I need to store metadata, or at least a file/folder structure.
3) The phone-side client has to deal sensibly with moving and renaming files (and the WP7 operating system actually does not support these operations, bizarrely enough).
4) I need to protect the user from filling up the phone file system (but WP7 doesn't give me any APIs that I can use to check whether the file system is full).

An alternative would be for Freda to interrogate your Calibre library for a list of all books (or all books meeting some criterion), and then download them in some sort of 'batch mode'. That still leaves me having to deal with all the issues 1-4 above, but at least I don't have to write a SOAP web service (and I get a solution that will let you download book libraries from any machine that can run Calibre). But this solution brings complexities of its own (not least: Kovid might consider it an abuse of his APIs!).

So in short the answer is: right now, you have a couple of not entirely satisfactory ways to do this, and I am continuing to think about the best answer.

Cheers,

Jim

Last edited by Jim Chapman; 11-08-2010 at 03:49 AM.
Jim Chapman is offline   Reply With Quote