View Single Post
Old 10-08-2012, 12:51 AM   #1
PeterT
Grand Sorcerer
PeterT ought to be getting tired of karma fortunes by now.PeterT ought to be getting tired of karma fortunes by now.PeterT ought to be getting tired of karma fortunes by now.PeterT ought to be getting tired of karma fortunes by now.PeterT ought to be getting tired of karma fortunes by now.PeterT ought to be getting tired of karma fortunes by now.PeterT ought to be getting tired of karma fortunes by now.PeterT ought to be getting tired of karma fortunes by now.PeterT ought to be getting tired of karma fortunes by now.PeterT ought to be getting tired of karma fortunes by now.PeterT ought to be getting tired of karma fortunes by now.
 
PeterT's Avatar
 
Posts: 12,119
Karma: 73448614
Join Date: Nov 2007
Location: Toronto
Device: Nexus 7, Clara, Touch, Tolino EPOS
Quick Guide to Shelf Management with calibre 0.9.1 & above (Touch / Glo / Mini /Aura)

PLEASE NOTE: I AM LEAVING THIS THREAD HERE FOR DISCUSSION AND HISTORY.

ALL FUTURE UPDATES WILL BE MADE ON THE MOBILEREAD WIKI Kobo_Shelves_and_Collections

ADDITIONALLY PLEASE NOTE THAT YOU THE READER CAN UPDATE THE WIKI ENTRY AS WELL


** NOTE: THIS ALSO APPLIES TO USE OF THE KOBO TOUCH EXTENDED DRIVER ***

ALSO SEE THE END OF THIS POST FOR TIPS ON REMOVING DUPLICATED SHELVES




With the new Kobo driver introduced with calibre 0.9.1, there has been some confusion over how to automate the management of shelves.

The steps I use are the following

Driver / calibre Configuration
This column is just what I made. If you have an existing column (either custom or builtin that YOU want to use, there is NO need to make one.
  1. Added a custom column to calibre
    This column is just what I made. If you have an existing column (either custom or builtin that YOU want to use, there is NO need to make one.
    • Preferences | Change Calibre Behaviour | Add your own columns
    • Select Add custom column
    • Select Tags in Quick create
    • I used Lookup Name myshelves and Column heading My Shelves
      Do make sure this column is of type Comma separated text, like tags, shown in the tag browser.
  2. Configured either the Kobo Touch or the Kobo Touch Extended driver depending on which you are using.
    • Preferences | Advanced | Plugins
    • Expand Device Interface plugins section and look for KoboTouch or Kobo Touch Extended driver
    • With KoboTouch or Kobo Touch Extended highlighted, select Customize plugin
    • In the area for shelf info, type #myshelves, series.
      (Any time a custom column is used within calibre, it HAS to be referenced with a # symbol in front of it.)
      (Please note that #myshelves is just what I used. As I said at the start "These are the steps I used". Nothing prevents you from using an existing column in YOUR calibre setup.)
    • Select any other relevant options. It is suggested that at a minimum you select the Create Bookshelves and Delete Empty Bookshelves options. The other options are not shelf specific.
Now, when you edit the metadata for a book, look for the Custom Metadata area (where it is found depends on the view you are using). In the field My Shelves type in whatever shelves you want the books to be placed.

If you do as I did and also add series to the driver options, a shelf will be created automatically for each book series, and the books added to that shelf.

Configuring calibre's Metadata Management options

calibre has three options as to when it updates Metadata on the device. This also affects when the shelves are managed on the Kobo.

This option is managed as follows:
  • Preferences | Import/Export | Sending books to devices
  • The Metadata management selection has three options
    • Manual management: Calibre updates the metadata and adds collections only when a book is sent. With this option, calibre will never remove a collection.
    • Only on send: Calibre updates metadata and adds/removes collections for a book only when it is sent to the device.
    • Automatic management: Calibre automatically keeps metadata on the device in sync with the calibre library, on every connect
  • As can be seen from the descriptions, for full functionality of the Kobo driver, set the Metadata management to either Only on send or Automatic management. From my experience, I have seen the easiest option to be Automatic management.

    If the option is set to Manual management, shelves will NEVER be removed.

Changing Book Titles to include Series Info

One probably also wants to change book titles to include Series info. That gets done via what is called a "metadata plugboard". Through these you are able to modify items like the book's title or author as it gets transferred to your device.

Goto Preferences | Import/Export | Metaboard plugboards

It looks complex, but is not.

On the line that reads Add new plugboard do the following
  • In the box Format (choose first) select epub
  • in the Device (choose second) box select KOBOTOUCH
  • In the Source Template the magic happens . Here you have a lot of options
    • To modify the book's title to <Series> - <Number> - <Title> type
      Code:
      {series}{series_index:0>2s| - | - }{title}
    • To modify the book's title to <Number> - <Title> type
      Code:
      {series_index:0>2s|| - }{title}
    • To modify the book's title to <First Letter of Each word in Series> - <Number> - <Title> type
      Code:
      {series:re(([^\s])[^\s]+(\s|$),\1)}{series_index:0>2s| - | - }{title}
  • Finally in Destination Field select title
Once all that is done, take a DEEP breath and hit the Save Plugboard button and then the Apply checkmark at the top of the screen.

You will find a lot more discussion of these over in the calibre Library Management forum with more examples in this thread.

For those people who don't care about syncing of shelves between their device and the cloud (and in turn with other devices), the ability exists to override shelf syncing.

Quote:
Originally Posted by davidfor View Post
While we are on the topic of shelves and syncing, there is a way to prevent shelves from syncing. Add the following line into your "Kobo eReader.conf" file in the "ApplicationPreferences":

SyncShelves=false

To enable shelf syncing again, either remove the line or change the value to "true".
I'm not sure which firmware level this was added, but it is present in 2.8.1 at least.

CLEANING UP DUPLICATE SHELVES

Occasionally, due to issues with the Kobo infrastructure, a sync with Kobo will have the unfortunate side-effect of restoring ALL previously deleted shelves (including the possibility of myriads of duplicated shelf names).

These are a PAIN (if not impossible) to remove from the device itself, but luckily CAN be handled via calibre. Remember, this ONLY effects the shelves on the device; the definitions within calibre stay intact, and shelves WILL be correctly re-added and populated by calibre when the device is next attached.
  1. calibre has available for it a plugin called Kobo Utilities.

    With this plugin installed, and your Kobo attached, launch the plugin. (This will be dependent on where YOU selected to have the icon for the plugin added when you installed it).

    From the plugins menu, select Database and then Fix Duplicate Shelves. The plugin will then display a list of shelves and how many occurences of each shelf are found. Select which shelves to delete, and then indicate whether to keep the oldest or newest shelf of each duplicated one. (I *think* that normally, you would want to keep the newest instance).

    Next, decide whether or not to Purge the shelves from the database. If you decide to Purge, then the records are totally dropped from the Kobo; however, they will remain on the Kobo Server, and, unless the second bullet is done, will reappear. If you decide NOT to purge, then the next sync of your device to Kobo will also remove the duplicate records from their infrastructure.

    Finally, press the OK button and watch the magic happen.
  2. The option also exists to ensure that neither shelves nor their conrents (only Kobo format books) EVER sync to the Kobo servers.

    To do this, with your Kobo attached to your computer, browse through the directories on it and find the .kobo\Kobo directory. (Note that under Linux and OS/X environments, the .kobo directory will be hidden due to the leading period). Within this directory will be a couple of files; the one you are concerned with is the Kobo eReader.conf file. This file contains various options that are used to control the device.

    Open this file in a text editor (on Windows for instance, use Notepad, NOT Word or Write), and look for a line [ApplicationPreferences]. After this line, add a new line SyncShelves=false. Save the file, and disconnect the Kobo as usual.

    The addition of this line will ensure that shelves do NOT get synced to the Kobo Cloud.

Last edited by PeterT; 12-06-2014 at 07:00 PM. Reason: Tried to clarify myshelves
PeterT is offline   Reply With Quote