View Single Post
Old 01-20-2020, 01:31 PM   #17
ilovejedd
hopeless n00b
ilovejedd ought to be getting tired of karma fortunes by now.ilovejedd ought to be getting tired of karma fortunes by now.ilovejedd ought to be getting tired of karma fortunes by now.ilovejedd ought to be getting tired of karma fortunes by now.ilovejedd ought to be getting tired of karma fortunes by now.ilovejedd ought to be getting tired of karma fortunes by now.ilovejedd ought to be getting tired of karma fortunes by now.ilovejedd ought to be getting tired of karma fortunes by now.ilovejedd ought to be getting tired of karma fortunes by now.ilovejedd ought to be getting tired of karma fortunes by now.ilovejedd ought to be getting tired of karma fortunes by now.
 
ilovejedd's Avatar
 
Posts: 5,110
Karma: 19597086
Join Date: Jan 2009
Location: in the middle of nowhere
Device: PW4, PW3, Libra H2O, iPad 10.5, iPad 11, iPad 12.9
Quote:
Originally Posted by dhdurgee View Post
Does your folder structure involve nesting? How was that rendered into collections?
As mentioned, each full directory path becomes the collection name. See previously posted examples:
https://www.mobileread.com/forums/sh...9&postcount=14


Quote:
Originally Posted by dhdurgee View Post
Do you have books on the kindle that didn't come from Calibre?
Yes.

Quote:
Originally Posted by dhdurgee View Post
Did using the calibre plugin include them in any collections?
No. Calibre assigns books to collection based on identifier.

For example:
Spoiler:
Code:
/system/collections.json

{
  "Romance@en_US": {
    "items": [
      "#B01M18K9UM^EBOK",
      "#B009LM4E9G^EBOK",
      "#B01LX09O44^EBOK",
      "#B01M1KAHIH^EBOK",
      "#B01M0WYDYS^EBOK",
      "#B01M0L4H1H^EBOK"
    ],
    "lastAccess": 1554780019
  },
  "Romance: Contemporary@en_US": {
    "items": [
      "#B01M18K9UM^EBOK",
      "#B01M0L4H1H^EBOK"
    ],
    "lastAccess": 1554780019
  },
  "Romance: Historical@en_US": {
    "items": [
      "#B01LX09O44^EBOK",
      "#B01M1KAHIH^EBOK",
      "#B01M0WYDYS^EBOK"
    ],
    "lastAccess": 1554780019
  }
}

As my non-Calibre ebooks were added to the Kindle after the calibre plugin JSON was generated, Calibre wouldn't know the identifiers for these newly added books and thus, they wouldn't be in any Calibre collections.

I haven't had time to clean up metadata for my books for the past 4 months or so. It's been a long while since I last used the Calibre Kindle Collections plugin and I've forgotten if it's possible to create collections for books that are on-device only.

Note:
Iirc, if the same collection name exists in both the library JSON (/extensions/collections.json) and calibre plugin JSON (/system/collections.json), Librarian Sync will delete the previous collection and replace it with the contents of the last one that you run via Update collections. The Rebuild option deletes all previous collections every time.

For example if I have the following librarian format JSON and run "Update collections (librarian)", it will delete the Romance collection above and replace it with the contents of all books with romance in its path.
Spoiler:
Code:
/extensions/collections.json

{
    "re:Romance": ["Romance"]
}

Matches:
/Catalog - Romance.azw3
/Romance/JD Robb/In Death/[01] Naked in Death.azw3
/Romance/Nora Roberts/Northern Lights.azw3


Seriously, the best way to learn is to just try it. I went through multiple trial and error before finding a solution that worked for me.
ilovejedd is offline   Reply With Quote