@eschwartz
Quote:
Originally Posted by eschwartz
If Qt expects a QByteArray then PyQt5 will accept a unicode that contains only Latin-1 characters. This is deprecated in PyQt v5.4 and will be removed in PyQt v5.5.)
|
I'm still not completely familiar with the way that PyQt works internally, but that does look like the problem. I've switched the QUrl.fromEncoded call to use the QUrl constructor directly (it supports QString). I've made the change but I won't make a new release just yet, as there's probably other v5.5 issues that I've missed. I'm going to try to come up with a plugin test suite that I can run inside a docker container that will test the plugin out in multiple versions of calibre.
@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.