Pocketbook Collections
I waited for years for someone to write this plugin, but nobody did, so I finally decided to do it myself. Here is the plugin to sync Pocketbook collections with Calibre!
What it does
This plugin allows you to send your collections, read marks and favorite marks from Pocketbook device to Calibre custom columns and vice versa. You can send and load all at once or do collections and statuses separately (can be useful, for example, if you want to send collections from Calibre and load read statuses from device without overwriting anything).
How it works
For the plugin to work you need to create three custom columns with lookup names "#shelf", "#read" and "#favorite". The "#shelf" column must be of "comma separated text" type, the other two — of "yes/no" type. You can skip some columns you don't need. You can also change columns lookup names in plugin's settings. After that you can connect the device and run send and load commands from the plugin's menu.
IMPORTANT! This plugin only works with the books that have been already indexed by device. This means, if you add some new books to the reader, you need to unplug it, wait a few seconds for the device to find books and add them to the database, then plug it again, and only then you can send collections for these books. Also if you added some books not from Calibre, make sure that the device metadata is updated. I tried to find the way to add the books to device database manually, but it didn't work, because Pocketbook keeps rewriting data.
This plugin was tested on my Pocketbook 627. It should also work on some other Pocketbook devices if they use the same database structure. It would probably not work on the older devices that do not support collections.
If you ever tried my old app I posted about
there and it worked with your device, this plugin should work too.
Since version 1.1.1 plugin works on Calibre v.3.48.0 and later. It might actually work on earlier versions, but I didn't checked it yet.
This is my first plugin and I actually know very little of Python, so any advices of improvements would be appreciated.
Link to Github.