![]() |
#151 |
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 12,309
Karma: 7955525
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
|
![]() |
![]() |
![]() |
#152 | |
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 12,309
Karma: 7955525
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
Quote:
Another example: Code:
program: if '^science' inlist_field '#genre' then 'yes' else 'no' fi |
|
![]() |
![]() |
Advert | |
|
![]() |
#153 |
Custom User Title
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 10,561
Karma: 74000001
Join Date: Oct 2018
Location: Canada
Device: Kobo Libra H2O, formerly Aura HD
|
Ah, I was looking in the function reference. It works when I tried it.
|
![]() |
![]() |
![]() |
#154 |
Custom User Title
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 10,561
Karma: 74000001
Join Date: Oct 2018
Location: Canada
Device: Kobo Libra H2O, formerly Aura HD
|
Does inlist_field only work for strings? e.g.:
Code:
program: readgoal = strcat('readinggoal:', format_date(today(), 'yyyy')); if readgoal inlist_field '#admintags' |
![]() |
![]() |
![]() |
#155 | |
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 12,309
Karma: 7955525
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
Quote:
EDIT 2: the changes to the syntax highlighter are now in calibre source. Last edited by chaley; 10-23-2024 at 05:46 PM. Reason: Removed edit 1 -- identifiers now works in the same way as inlist |
|
![]() |
![]() |
Advert | |
|
![]() |
#156 |
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 12,309
Karma: 7955525
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
28 Oct 2024 (in calibre 7.21)
Last edited by chaley; 11-21-2024 at 10:14 AM. |
![]() |
![]() |
![]() |
#157 |
Wizard
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,181
Karma: 1306007
Join Date: Dec 2016
Location: Goiânia - Brazil
Device: iPad, Kindle Paperwhite
|
Nice. Even simpler. Now I can find all authors without a note like this:
Code:
not template:"""program: if $authors in has_note('authors', '') then '1' else '' fi;#@#:t:1""" |
![]() |
![]() |
![]() |
#158 | |
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 12,309
Karma: 7955525
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
Quote:
It will also be at least 10 times slower than the template I posted in the other thread. Perhaps as much as 50 times slower. Of course, this only matters if you have lots of books. This template uses the new has_note() to find books where 1 or more authors don't have a note. It works by returning '1' if all authors for a book have notes, otherwise ''. It will be slightly faster than your template, but nowhere near as fast as the python template. Code:
program: if list_count(has_note('authors', ''), '&') ==# list_count_field('authors') then return '1' fi; '' |
|
![]() |
![]() |
![]() |
#159 |
Wizard
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,181
Karma: 1306007
Join Date: Dec 2016
Location: Goiânia - Brazil
Device: iPad, Kindle Paperwhite
|
Oh, I see my mistake now. I'll leave the python template, then.
When using my template, I do think the first time was slow, then other times were fast. I guess it's the work of the cache in action. ________________________ EDIT: I decided to check the difference between the two templates (mine and yours, but not the python one). It seems to find the same results, even if only one author has a note. Then, looking again at the code, I notice it does work: Example: If i have a book with two authors (AuthorA and AuthorB), and only have notes for AuthorA. $authors = 'AuthorA & AuthorB' has_note('authors', '') = 'AuthorA' Now, the comparison if $authors in has_note('authors', '') will return False, as intended. But I'm definitely staying with the python template. ![]() Last edited by thiago.eec; 10-28-2024 at 04:11 PM. |
![]() |
![]() |
![]() |
#160 |
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 12,309
Karma: 7955525
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
New template functions
12 Feb 2025 - (in calibre 7.26)
Last edited by chaley; 02-16-2025 at 06:56 AM. |
![]() |
![]() |
![]() |
#161 |
want to learn what I want
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,579
Karma: 7463599
Join Date: Sep 2020
Device: none
|
Interesting updates, thank you! I noticed that running:
Code:
program: make_url_extended('https', 'en.wikipedia.org', '/w/index.php', 'search', field('author')) on Template tester (good link): https://en.wikipedia.org/w/index.php...B2+Machiavelli on new Template dialog for custom search: https://en.wikipedia.org/w/index.php...%2BMachiavelli ![]() |
![]() |
![]() |
![]() |
#162 | |
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 12,309
Karma: 7955525
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
Quote:
The problem is that the L&F / Book details dialog *knows* it is for authors only, and in fact doesn't even have the rest of the metadata. Historically, because L&F / Book details knows it is for authors, to simplify things for the expected use case the author is URL-encoded before it gets to the template. Thas is why the template Code:
https://www.wikipedia.org/w/index.php?search={author} If you want to use make_url_extended() there then you must use the variant where you control whether the query value is encoded (again) during URL construction. Code:
program: qs = query_string('search', $author, 2); make_url_extended('https', 'wikepedia.com', '/w/index.php', qs) This discrepency is why the new custom column link generation feature offers the item value unencoded, URL-encoded with '+' for spaces, and URL-encoded with %20 for spaces. Bottom line: you can't use the same template in L&F/ BD as you use in the new custom column web link feature. |
|
![]() |
![]() |
![]() |
#163 | |
Custom User Title
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 10,561
Karma: 74000001
Join Date: Oct 2018
Location: Canada
Device: Kobo Libra H2O, formerly Aura HD
|
Quote:
EDIT: Explain above. |
|
![]() |
![]() |
![]() |
#164 |
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 12,309
Karma: 7955525
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
|
![]() |
![]() |
![]() |
#165 |
want to learn what I want
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,579
Karma: 7463599
Join Date: Sep 2020
Device: none
|
At the moment I'm trying to figure how a deepseek query could be made using just a url. Not sure it's possible. :\
This add-on works fine on browser context menu: https://addons.mozilla.org/en-US/fir.../ask-deepseek/ Spoiler:
Last edited by Comfy.n; 02-12-2025 at 03:36 PM. |
![]() |
![]() |
![]() |
Thread Tools | Search this Thread |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
A few questions... (template language, mainly) | Clem2605 | Library Management | 2 | 12-30-2020 03:25 AM |
Template Language | phossler | Calibre | 8 | 01-12-2016 04:37 PM |
Help needed with template language | Mamaijee | Devices | 12 | 02-19-2013 01:52 AM |
Help with template language | Pepin33 | Calibre | 8 | 11-11-2012 08:32 AM |
Template language question | BookJunkieLI | Library Management | 7 | 02-02-2012 06:55 PM |