08-09-2015, 01:39 PM | #1 |
Junior Member
Posts: 6
Karma: 475632
Join Date: Jan 2013
Device: IOS
|
New Cloud Storage + OPDS Plugin needs testers
New Cloud Storage + OPDS Plugin needs testers
Hi, I've been working on an open source device driver plugin + web server for Calibre. Features: - It allows you to connect many of the most common cloud storage providers (Dropbox, Google Drive, etc.) - Clouds are connected as a device drives in Calibre (manage them as you would books on your eReader/iPad) - Automatically creates a web accessible OPDS server (you don't have to keep your computer on to run Calibre Content Server, or open ports on your router to access your library) - There's no limit to how many books you can store (you're only limited by your aggregate dropbox/google drive storage space) Screenshots: Configuration Screen (Dropbox + Google Drive Connected) Standard Calibre Device Management Storage Providers: Here's a list of the storage providers that I currently have support for: - Dropbox - Google Drive - OneDrive (SkyDrive) - Box Here's a list of storage providers I want to add support for if there's enough appeal: - iCloud - Bittorrent Sync - OwnCloud Requests: - I need developers who are willing to be beta testers for the plugin. Once we've ironed out any bugs I've missed I'll repost to the plugins forumn. - I'm trying to figure out how to customize the UI to display custom icons and labels for the Card and Device buttons, I couldnt really figure out how to do that from the device driver api. Any help here would be appreciated. - I'm trying to gauge interest in the plugin and see if there's other storage providers I should support. If you have any storage requests, please leave a comment. Please share this with any developers you think might be interested in beta testing or contributing. The plugin and webserver are both open source, and I would appreciate any help -Jason Installation Instructions
Usage Instructions With QuietThyme installed, you'll see a few extra menu items. It is incredibly simple to store your books in your cloud storage.
Beta Updates Oct 22, 2015 - Misc. cleanup, web service api changes, added tests Aug 09, 2015 - Initial release Last edited by QuietThyme; 10-22-2015 at 03:25 AM. Reason: updated newer version, new instructions/usage sections. |
08-09-2015, 02:11 PM | #2 |
creator of calibre
Posts: 44,397
Karma: 23798586
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
|
IIRC you can customize the icon used for the device, by setting
icon = 'path to some icon file' in the device plugin. I dont think you can customize the card icons or any of the text. |
Advert | |
|
08-09-2015, 11:41 PM | #3 |
Ex-Helpdesk Junkie
Posts: 19,421
Karma: 85397180
Join Date: Nov 2012
Location: The Beaten Path, USA, Roundworld, This Side of Infinity
Device: Kindle Touch fw5.3.7 (Wifi only)
|
I tried installing the plugin and after restarting calibre it keeps on connecting and disconnecting to a "device".
Attempting to configure it through the plugin preferences yields the following error message: Code:
calibre, version 2.34.0 ERROR: Unhandled exception: <b>TypeError</b>:QUrl.fromEncoded(QByteArray, QUrl.ParsingMode mode=QUrl.TolerantMode): argument 1 has unexpected type 'unicode' calibre 2.34 isfrozen: False is64bit: False Linux-4.1.4-1-ARCH-i686-with-glibc2.0 Linux ('32bit', 'ELF') ('Linux', '4.1.4-1-ARCH', '#1 SMP PREEMPT Mon Aug 3 21:53:10 UTC 2015') Python 2.7.10 Linux: ('', '', '') Successfully initialized third party plugins: DeDRM && Quality Check && Kindle Collections && QuietThyme Device Plugin && Open With && View Manager && FanFicFare && KindleUnpack - The Plugin && Diaps Editing Toolbag && Overdrive Link && Goodreads Sync && Annotations && Modify ePub && Overdrive Link Traceback (most recent call last): File "/home/eschwartz/git/calibre/src/calibre/gui2/preferences/plugins.py", line 289, in double_clicked self.modify_plugin(op='customize') File "/home/eschwartz/git/calibre/src/calibre/gui2/preferences/plugins.py", line 370, in modify_plugin if plugin.do_user_config(self.gui): File "/home/eschwartz/git/calibre/src/calibre/customize/__init__.py", line 154, in do_user_config config_widget = self.config_widget() File "calibre_plugins.quietthyme.__init__", line 735, in config_widget File "calibre_plugins.quietthyme.config", line 47, in __init__ TypeError: QUrl.fromEncoded(QByteArray, QUrl.ParsingMode mode=QUrl.TolerantMode): argument 1 has unexpected type 'unicode' The idea sounds really interesting. Looking forward to seeing it in action. |
08-10-2015, 03:45 PM | #4 |
Junior Member
Posts: 6
Karma: 475632
Join Date: Jan 2013
Device: IOS
|
Hey eschwartz,
Yep, looks like your right. I only did testing on my machine using the latest Calibre, and I haven't done any testing against QT4. I'll take another look at it and release a version this evening. In case anyone's wondering, the source for the plugin is located here: https://github.com/AnalogJ/quietthyme.plugin Thanks for the feedback Last edited by QuietThyme; 08-10-2015 at 03:47 PM. Reason: added github repo. |
08-10-2015, 04:08 PM | #5 |
Grand Sorcerer
Posts: 11,951
Karma: 7225107
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
It would be interesting to know how this improves on calibre's connect to folder where the folder is in the cloud provider's sync directory (answer: opds server?), and where the OPDS server is running as it seems not to be on a computer controlled by the user.
|
Advert | |
|
08-10-2015, 04:33 PM | #6 | ||
Ex-Helpdesk Junkie
Posts: 19,421
Karma: 85397180
Join Date: Nov 2012
Location: The Beaten Path, USA, Roundworld, This Side of Infinity
Device: Kindle Touch fw5.3.7 (Wifi only)
|
Quote:
No Qt4 here. In fact, I am probably one of the only people anywhere who actually bothers to run calibre from a live checkout of the code, updated daily. But I doubt the fourteen commits since Friday broke compatibility. OTOH, I am using ArchLinux and building calibre from source -- which means e.g. my pyqt5 is more up-to-date than the official calibre builds. So I catch a few bugs that haven't made its way into official releases yet. Something like: http://pyqt.sourceforge.net/Docs/PyQt5/gotchas.html Quote:
|
||
08-10-2015, 04:39 PM | #7 |
Ex-Helpdesk Junkie
Posts: 19,421
Karma: 85397180
Join Date: Nov 2012
Location: The Beaten Path, USA, Roundworld, This Side of Infinity
Device: Kindle Touch fw5.3.7 (Wifi only)
|
I believe this plugin does not require an active Dropbox et al. client syncing, which could be nice. Esp. for GDrive, which is currently languishing doing nothing for me, since it is far too awkward to use on linux.
|
08-11-2015, 01:00 AM | #8 | |
Junior Member
Posts: 6
Karma: 475632
Join Date: Jan 2013
Device: IOS
|
@eschwartz
Quote:
@chaley As eschwartz mentioned, the plugin doesn't require you to have any client software installed on your machine, meaning you can store your books on dropbox or google drive with out their sync applications installed, or even (in the future) sync you books to your iCloud on a windows machine. The main difference is definitely the OPDS support though. It's not a very complicated system but I feel like it merges the best parts of 'Connect to Folder' and 'Content Server' without opening up any ports or setting up any dynamic dns services. Since we're all developers here, I feel like I should get into the gritty details a bit. Like chaley mentioned, the web server is on a computer that the user doesn't control, for the reasons I specified above. That said, the server is completely open source and the code can be viewed here: https://github.com/AnalogJ/quietthyme.web The web server component is currently baked into a docker image, and then deployed on a cluster of VPS's that I manage. The web server is written in node (using the sails framework) and its only role is to upload/download files from cloud storage and generate the OPDS catalog. |
|
08-11-2015, 01:25 AM | #9 |
creator of calibre
Posts: 44,397
Karma: 23798586
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
|
If you want to use fromEncoded in PyQt 5.5, you just need to do this
QUrl.fromEncoded(x if isinstance(x, bytes) else x.encode('utf-8')) |
08-11-2015, 03:44 AM | #10 |
Grand Sorcerer
Posts: 11,951
Karma: 7225107
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
@QuietThyme: Thanks for the answer.
Below are a few random thoughts. I haven't looked at the code so they might be totally off base, and it is highly likely that you have already thought of/dealt with most of them.
|
08-12-2015, 03:36 AM | #11 |
Junior Member
Posts: 6
Karma: 475632
Join Date: Jan 2013
Device: IOS
|
@kovidgoyal
Thanks, I ended up just ripping out fromEncoded calls. I don't think I acutally needed them. At one point I was doing some debugging and I thought I was seeing an error due to encoding problems. While I have you here, I'm looking at setting up a basic test suite of some sort for the plugin. It doesn't seem like there's an easy way to do that though. The only way I can think of is by making my methods accessable via the calibre CLI and then testing them that way. Is there some other way that I missed completely? @chaley Thanks for the thoughtful questions. I've been working on Quietthyme off and on for a while. It originally started as a calibre SAAS, but I recently decided to reduce the scope of the project and just leverage calibre as the metadata editor.
Sorry for the wall of text -Jason Last edited by QuietThyme; 08-12-2015 at 03:39 AM. Reason: english. |
08-12-2015, 06:49 AM | #12 |
creator of calibre
Posts: 44,397
Karma: 23798586
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
|
You can run any arbitrary python script, with full access to plugins, like this:
calibre-debug file.py and in file.py Code:
from calibre_plugins.whatever import whatever ... |
10-22-2015, 03:01 AM | #13 |
Junior Member
Posts: 6
Karma: 475632
Join Date: Jan 2013
Device: IOS
|
Sorry for the long delay. I've been traveling a lot for work.
The latest version of the plugin is now available. I've attached it below, but I'll also update the main post. If you run into any issues while testing the plugin, please post a response or create an issue on github: https://github.com/AnalogJ/quietthyme.plugin/issues -Jason |
11-03-2015, 11:22 AM | #14 |
Junior Member
Posts: 5
Karma: 10
Join Date: Feb 2012
Device: SGS1
|
Seems I'm missing something to get the plugin running
Hello,
I tried to install the plugin, but when I try to configute it, I get: {"success":false,"error_msg":"No Authorization header was found"} as response. What am I missing? Brgds DerBusIsVoll |
11-04-2015, 11:24 AM | #15 |
Member
Posts: 13
Karma: 10
Join Date: Jul 2014
Device: Kobo Touch, Kobo Arc
|
Installed plugin but when I try to connect to OneDrive get error message about forbidden. When I try the other services the log in pages appear properly.
|
Tags |
dropbox, googledrive, opds, plugin, quietthyme |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Calibre + cloud eBook storage plugin | geometer | Development | 4 | 11-27-2014 04:04 PM |
Amazon folds Kindle cloud storage into cloud drive | fjtorres | News | 4 | 04-17-2014 04:50 AM |
QuietThyme, an OPDS catalog on the cloud | Logseman | General Discussions | 1 | 05-30-2013 02:52 PM |
DjVu plugin for DR1000 (testers wanted) | luite | iRex | 42 | 02-13-2010 02:19 PM |
iPhone Two new iPhone Storage Solutions: Zoomit (SD Card Reader) & Boxnet (Cloud Storage) | kjk | Apple Devices | 0 | 02-09-2010 06:20 PM |