![]() |
#1 |
Junior Member
![]() Posts: 2
Karma: 10
Join Date: Dec 2019
Location: Canada
Device: Samsung Galaxy Note 4
|
how to isolate titles that are not in a virtual library
I have been diligently importing my collection of ebooks, which is currently scattered among a number of folders, into the calibre library to have all the titles in one place. To keep them organized, I've created a couple of Virtual Libraries, one of which I've labeled Storage referring to the bricks-and-mortar library practice of keeping books for which there is not a high demand away from the main library stacks. These are ebooks I don't have any reason to look at regularly so don't want their titles constantly thrust to my attention.
What I want to see when I open calibre are tabs for my virtual libraries (including Storage) and one for the titles that have not yet been assigned to a virtual library. Instead I get my virtual libraries and All Books (which puts the titles I don't want to look at back in my face). The instructions for the structure of a search to create a virtual library say "The value following vl: must be the name of a virtual library." Which means that I can't use vl:false as a search term to isolate the unassigned titles. What am I missing? Is there another way to get the result I want that doesn't involve having to tag every unassigned title and then re-tag them when they get assigned to a virtual library? |
![]() |
![]() |
![]() |
#2 |
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 12,447
Karma: 8012886
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
I know of three ways:
1) Create a column made from other columns and use the virtual_libraries() function. This will populate the column with the names of the VLs a book is in. You can then use #column:false (where #column is your column's lookup name) to find books in no VL. This method can be slow if your library is large (thousands of books) and/or if you have lots of virtual libraries. If the performance is unacceptable then method 2 will be better. 2) Use either or both of the plugins Save Virtual Libraries To Column (GUI) and Save Virtual Libraries To Column. Both of these compute the column values on demand and save the results in a standard custom tags-like column, so the performance penalty is minimal. 3) if you have only a few VLs then you can use a saved search. Assuming you have virtual librarys Lib1, Lib2, and Storage, the search expression to save would be Code:
not (vl:"Lib1" or vl:"Lib2" or vl:"Storage") |
![]() |
![]() |
Advert | |
|
![]() |
#3 |
Well trained by Cats
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 31,062
Karma: 60358908
Join Date: Aug 2009
Location: The Central Coast of California
Device: Kobo Libra2,Kobo Aura2v1, K4NT(Fixed: New Bat.), Galaxy Tab A
|
![]() But I don't think this will do what you think it will do. ![]() ![]() |
![]() |
![]() |
![]() |
#4 |
Junior Member
![]() Posts: 2
Karma: 10
Join Date: Dec 2019
Location: Canada
Device: Samsung Galaxy Note 4
|
Coming back to this now that holiday hysteria is over....
Thanks Chaley. I set this up at the time you posted using option number 1 (because I thought I understood it and using it saved me investigating all about plug-ins) and it seemed to work as I had hoped. However, on opening calibre now, in my new Virtual Libraries column most entries read "TEMPLATE ERROR maximum recursion depth exceeded" but two read "TEMPLATE ERROR maximum recursion depth exceeded in _instancecheck_". Outside of those, one title is correctly labeled in the column but doesn't appear in the "VL not yet assigned" virtual library, and one title shows up in the "VL not yet assigned" virtual library but the field is blank in the Virtual Libraries column. (Note to TheDucks: Your message was too cryptic for me to decode. ![]() A search on the error message shows nothing in the forum. If there is a quick fix, I'll stick with option 1. Otherwise, I'll undo what I've done and experiment with the plug-ins. Any advice? TIA. |
![]() |
![]() |
![]() |
#5 |
Well trained by Cats
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 31,062
Karma: 60358908
Join Date: Aug 2009
Location: The Central Coast of California
Device: Kobo Libra2,Kobo Aura2v1, K4NT(Fixed: New Bat.), Galaxy Tab A
|
The inverse of a search term just begins with a not
You made a VL using a search term ![]() ![]() |
![]() |
![]() |
Advert | |
|
![]() |
#6 | |
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 12,447
Karma: 8012886
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
Quote:
If the last case doesn't apply then I don't know of a way to reliably fix it. In fact, I made the plugins because of this problem. If you have muliple columns that use the virtual_libraries() function then the first thing to do is refactor your processing so that only one column does that. If you don't then I suggest you start with the Save Virtual Libraries To Column (GUI) plugin to see if it solves your problem. It is easy to install using calibre's plugin manager (Preferences / Plugins / Get new plugins). You must remember to run it whenever you change a VL search or book metadata that might change the VLs. The other plugin runs every time you close calibre or change libraries so the column is recomputed at that point. This is especially useful if you use any third party tools that look at calibre's database because the column is guaranteed to be up-to-date. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Virtual Library | Rellwood | Library Management | 2 | 07-08-2018 09:14 AM |
Returning to Full Library from Virtual Library | The Texas Dude | Library Management | 11 | 02-19-2017 08:32 PM |
Help with Virtual Library | NugentS | Library Management | 5 | 06-07-2015 04:09 AM |
Virtual Library | Infinite3 | Library Management | 2 | 03-31-2015 06:19 PM |
Virtual Library still show up in main library | bskies | Library Management | 3 | 11-13-2013 10:41 PM |