Kobo Utilities Plugin

The Kobo Utilities Plugin adds extra function to calibre for working with Kobo e-ink ereaders. This will allow changes on the ereades that either cannot be done or will make them easier to do. The current functions of the plugin are:

Known problems:

Warning

Almost all function of this plugin directly update the database on the Kobo device. If anything goes wrong, the database could get corrupter. It shouldn't happen, but it could. Before using any function of the plugin, it is recommended that you backup the database.

The plugin has been created by reverse engineering the function of the Kobo ereaders. This has been done by examining the database on the Touch and Glo and experimenting with it and the interface. There is a good chance that my conclusions from this are wrong. This is unlikely to damage the device, but it could result in the need to reset it. Again, if you cannot accept this, please do not try this plugin.

Acknowledgements

A large chunk of the code is borrowed from the plugins written by kiwidude.

A few people have tried the beta version of the plugin. Their reports and suggestions have been important in getting it working.

Current Version

The current version of the plugin is 0.0.27. It can be downloaded here.

Changes in this plugin include:

Installation and Configuration

The plugin is installed through the calibre prefences dialog. During the installation, you will be prompted on which toolbar or menu to put the plugin button. As there is no available function when no devices are connected, put it on the "Main toolbar when a device is connected" or "The menubar when a device is connected". After the plugin is installed, restart calibre before attempting to use it.

To use the plugin, it needs to be configured. This can be done throught the calibre preferences, or from the "Customise plugin" option on the plugins menu. There are two areas that need to be configured: the columns to be used by the plugin and the action to be taken when the plugin button is pressed.

Columns for the Plugin

The plugin can use several columns to store the current reading position of epubs on the ereader. If you do not want to use this part of the plugin, they do not need to be configured.

The columns and types needed are:

To add a custom column to calibre:

  1. Open the preferences and select "Add your own columns".
  2. Press the "Add custom column" button at the bottom, or the plus at the side of the window.
  3. Enter a lookup name for the column. This is used internally by calibre and the plugin.
  4. Enter the display name for the column. This is displayed in calibre with the column. This can be anything but should be meaningful to you and the purpose of the column.
  5. Select the "Column type" from the drop-down list. Select the appropriate type for the column from those mentioned above.
  6. Press OK to create the column.
  7. When you have finished adding columns, press the "Apply" button to save the changes. You will be promped to restart calibre. You must do this before the columns can be used.

Configuration

Once you have created the columns and restarted calibre, you can set the columns to be used by the plugin. To do this:

  1. Open the plugin configuration dialog by either:
  2. Choose the columns you want to use.
  3. Choose the function to use when the toolbar button is pressed.
  4. When finished customizing the plugin, press the "OK" button to save the changes.

Using the Plugin

The following section details each function available and how to use them. Some functions are only available for the library list, some only on the device list and some work for both. Most functions act on the books that are selected in the current list.

For most of the functions available, the way to use them are:

  1. Select the books you want to set change something for.
  2. Select the desired menu option.
  3. When the dialog is displayed, adjust the options.
  4. Press the OK button. If the Cancel button is pressed, no changes are made.

Set Reader Font for Selected Books

When the reader settings are changed in the device, they are stored for that book and for any future book opened. This allows the user to change these setting for one or more books. And, for some of the settings, it allows finer grade options than the device settings dialg.

This option works the same for both the library list and the device list.

The options on the dialog are:

Once the settings are how you want them, press the OK button to save the settings and update the database on the device.

Dismiss Tiles from Home Screen

The new home screen on the Aura HD uses as set of tiles to display recent activities. These can be pressed to do the same activity or dismissed. The tiles displayed change over time as different as the device is used.

This function is available for both the library and device lists.

When "Dismiss Tiles from Home Screen" is selected, a dialog is displayed. This has:

When you have selected the options, press the OK button. This updates the device and displays a message when finished.

Notes:

Remove Reader Font for Selected Books

The reader settings are stored in a database for each book. This option removes the settings for all books selected. It will prompt you to continue by pressing "Yes" or stop by pressing "No".

This function is available for both the library and device lists. It will work for all book types that store the settings.

Update metadata in device library

The metadata displayed on the device is read from sideloaded books the first time the device sees them. If the book and metadata is changed and sideloaded again, the metadata is not reread. There is also some standard metadata that is not read from epubs.

For kepubs synced from the Kobo server, the metadata is populated from the server. It might get changed at later syncs.

This option only works from the library list.

The options on the dialog are:

Change Reading Status in device library

This allows the reading status of books in the device that are not in the calibre library to be changed. An intended use is to reset an accidently opened book to unread. It can also be used to mark books as finished after a factory reset or other reason for relaoding books.

The function on dialog is shared with the "Reading Status" section of the "Update metadata in device library" function.

Note: When the OK button is pressed, the changes are made on the device. But, the reading status options are not save. The next time the dialogs is opened, all options will be reset. This is deliberate. If this function is used, the decision of what changes to make must be made each time.

Manage Series Information in device library

This allows you to change the series information for books already on the device. It allows you to set the series name and number for books that you do not have in your calibre. This can change the series information for kepubs.

The interface and most of the function has been taken from the "Manage Series" plugin written by kiwidude. If you are familiar with that plugin, this works in a very similar way, but is restricted to books on the device. If you want to manage series for books in your calibre library, please use the "Manage Series" plugin. The Kobo Touch driver can update the device with this information.

If you find a problem with the "Manage Series" function of the Kobo Utilities plugin, report it to the developer of the Kobo Utilities plugin. DO NOT report it as a bug in the original "Manage Series" plugin.

To manage series on the device, from the device list:

  1. Select the books that are in the same series.
  2. Select "Manage Series Information in device library"
  3. A dialog displaying the list of books with several options is displayed. Here you can:
  4. When finished making changes, press the OK button to save them, or the cancel button to quit. No changes are made to the device database unless the OK button is pressed.

Store/Restore current bookmark

This allows the current reading position in an epub to be stored in the calibre library. This can then be sent back to the device or another Kobo device to restore the reading position. As well, the rating set on the device can also be stored and restored.

The device store the reading position in the database on the device. This is stored in several parts:

These can all be retrieved from the device and stored in custom columns in the calibre library.

This is only available in the library list.

To use this function, you need to:

  1. Create the necessary custom columns and configure the plugin. This is described above.
  2. Select the books you want to store or restore the reading position for. If books are selected that are not on the device or do not have an ePub format, they will be ignored.
  3. Select the "Store/Restore current bookmark".
  4. Choose either "Store" to copy the current bookmark to the library, or "Restore" to set the current bookmark on the device.
  5. Set the options needed.
  6. Press the OK button to do the action.
  7. The function will run and a message will be shown with the changes made.

The options on the dialog are:

Upload covers for Selected Books

With this, you can change the cover on the device to the current cover in the calibre library.

To use it, select the books that you want to change the cover for, and choose the desired options. Then press the OK button to upload the covers.

The options on the dialog are:

Remove covers for Selected Books

This will remove saved covers for the selected books from the device. This will allow the device to regenerate covers for these books when they are next needed.

To use it, select the books that you want to change the cover for, and choose the desired options. Then press the OK button to upload the covers.

The options on the dialog are:

This function is available for both the library and device lists. It will work for all book types that store the settings.

Copy annotations for Selected Book

This will retrieve any annotations for the selected books and display them in a dialog. The annotations can be copied and save elsewhere. The annotations are retrieve using the same code as the "Fetch annotations".

Backup Annotation File

Annotations for ePubs are stored on the device in two places: the internal database and files. The files have type "ANNOT" and are stored within the directory Digital Editions\Annotations. These files are contain XML that define the annotations. They can be copied to another Kobo device, or with a little fiddling, used with ADE.

Selecting this option will prompt for a directory to copy the files to. Either enter the directory name, or press the "..." button to select a directory. When the directory has been entered, press the OK button to copy the files.

Show books not in the device database

There are several cirumstances where calibre will think a book is on the device, but it is not in the device database. This usually means the book has been sent to the device by calibre, but the book has not been processed yet.

When selected, a list of books is displayed in a separate window. This is simply a list of the books and has no function other than to display the books.

Note: This does not show any books that are on the device and calibre does not know about and are not in the device database. If books have been sideloaded in some other way and are not in the device database, they will not be displayed.

This function is only available when viewing the device list.

Refresh the list of books on the device

When this us used, the books on the device will be reread. This is done in the same way as when the device is first connected. The main use for this is it will cause any changes for shelves an series information to be sent to the device.

Check the device database

Unfortunately, there are circumstances where the database on the device can become corrupted. When this happens, the database usually has to be replaced. This means loss of annotations and reading status for any sideloaded books. With this option, the status of the database can be checked.

One of the signs of a corrupt database is an error from calibre when the device is connected. This error is "DatabaseError: database disk image is malformed". When using the device, the symptoms can include things like the loss of reading position or the same books being processed multiple times.

Selecting this option will run PRAGMA integrity_check against the database and display the output in a window. If there are no problems with the database, "ok" will be displayed in the window. If the database is corrupt, the errors found in the database will be displayed.

Backup device database

This will copy the device database to somewhere on your computer. This will allow it to be

Customize plugin

About Plugin

Problems

If you problems, you can find me on the MobileRead forums. My profile is davidfor. Visit there and send me a private message explaining what the problem is. When describing the problem, please give as much information as possible. In general, there is no such thing as to much information when trying to debug remotely.

If you send me a message, I will respond as quickly as I can. But, remember, it will take time to read the report, think about what could be going on and then write a response. And I am probably in a different timezone to you. Plus, this is done in my spare time. I work, have a family and like to use my Kobo devices for their intended purpose, reading.

After hearing of a problem, I might ask you to run calibre in debugging mode and send me the output produced. If I do, these are the steps:

  1. Restart calibre in debug mode by clicking on the arrow next to the prefences button and selecting "Restart in Debug mode".
  2. Calibre will close and reopen. When calibre reopens a message about being in debug mode will be displayed.
  3. Perform the actions in calibre that are not working as expected. This will normally mean connecting the the device and waiting for it to sync and then using whichever of the plugins functions didn't work for you.
  4. Close calibre.
  5. The calibre debug log will then be displayed.
  6. Send a copy of the log file to me when requested.

Release History