2019.05.04 | Something else | 0 赞 | 0 comment.

请注意,本文编写于 269 天前,最后修改于 269 天前,其中某些信息可能已经过时。

I have a lot of devices: my two laptops, my android phones, my pad and my kindle, and I always read the same book in different devices. Therefore it has been a problem for a long time for me to sync my books across different devices. And after my tries these days, the final solution came up: to use OneDrive for sync books, calibre-web on server side to offer webview, calibre on PC to read, Moon+ on Android to read and GDrive for android to sync reading process.

Maybe the whole system seems too complex, but I think maybe you can take one part or serveral parts. For example you may do not have server, so calibre on PC is a great choice; you may have iPhone instead of android phones, maybe there are also some readers which can fetch OPDS so that you can also sync it. I hope my experience could help you in any ways.

In this part I will combing my requirements and tell you why I use such a complex way to sync my books, and in the other parts I will discuss how to make it in different devices.

My Requirements

First of all, I listed what I needed while reading and what the "shelf" should be like. It should have the following features:

  • Sync the books (including the information and the file).
  • Auto search the cover and the introduction of the books.
  • Better to have a modern web view for using and display my shelf everywhere.
  • Sync the reading process (whether I have read the book and where I stopped last time).

And finally I combined several tools together and meet the requirements. Here's what it needs:

  • a cloud server
  • an onedrive account (in fact I prefer dropbox however it syncs slow in China)
  • a google drive account for sync reading process (because Moon+ only supports dropbox and gdrive)

Why This Solution

Every software has its functions, however none of them can achieve all the goals I listed above, so that I must combine them together.

  • Calibre: Calibre is "the one stop solution to all your e-book needs" (the official site says). However, it doesn't have ways to sync across internet (though it has ways to send books to kindle, I need to obtain the books through internet). So only calibre is not enough, but it is the core part. And what's more, it doesn't have the way to label whether the book has been read or not (its label is just a bullshit).
  • Calibre-web: Calibre-web is a web app for browsing, reading and downloading e-books stored in Calibre database. By Calibre-web, we can browsing the books we have and download them easily. But the problem is that it's hard to upload and update new books and to recognize them on the server and in command line. So we need to operate and import the new books locally and to sync it onto the server. And here OneDrive came.
  • OneDrive: OneDrive is for sync the books across different devices. GDrive is blocked in China and the speed is really slow. So OneDrive becomes the best way in China to sync. If you are not in China, maybe GDrive is better because Calibre-web support GDrive so you don't need rclone to mount onedrive on server side.
  • Rclone: a softeware on server side to mount onedrive and use it in server.
  • Moon+: an android APP which supports opds, so you can import the book though web.
  • GDrive: Moon+ only supports GDrive or Dropbox to sync reading process.

Next Parts

In next parts I will introduce how to make the whole system run in different devices.


本作品由 idealclover 采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可,转载请注明出处。



No comment. T^T


No configuration information has been found for plugin TeConnect.

exception 'Typecho_Plugin_Exception' with message 'No configuration information has been found for plugin TeConnect.' in /home/wwwroot/index/var/Widget/Options.php:560 Stack trace: #0 /home/wwwroot/index/usr/plugins/TeConnect/Plugin.php(168): Widget_Options->plugin('TeConnect') #1 /home/wwwroot/index/usr/plugins/TeConnect/Plugin.php(153): TeConnect_Plugin::options() #2 /home/wwwroot/index/usr/themes/clover/components/comments.php(62): TeConnect_Plugin::show() #3 /home/wwwroot/index/var/Widget/Archive.php(1937): require('/home/wwwroot/i...') #4 /home/wwwroot/index/usr/themes/clover/post.php(75): Widget_Archive->need('components/comm...') #5 /home/wwwroot/index/var/Widget/Archive.php(2022): require_once('/home/wwwroot/i...') #6 /home/wwwroot/index/var/Typecho/Router.php(138): Widget_Archive->render() #7 /home/wwwroot/index/index.php(23): Typecho_Router::dispatch() #8 {main}