![]() |
#721 |
Custom User Title
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 11,018
Karma: 75555555
Join Date: Oct 2018
Location: Canada
Device: Kobo Libra H2O, formerly Aura HD
|
list_filter() would definitely be more intuitive and ist_add() also being faster would be an advantage.
|
![]() |
![]() |
![]() |
#722 |
Custom User Title
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 11,018
Karma: 75555555
Join Date: Oct 2018
Location: Canada
Device: Kobo Libra H2O, formerly Aura HD
|
Arithmetic - how do I apply a format to the results?
e.g. program: divide($$#purchasecost, 1.15) returns 7.9913043478260875 when I just need 7.99. ({0:,.2f}) Last edited by ownedbycats; 10-12-2024 at 05:44 PM. |
![]() |
![]() |
![]() |
#723 | |
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 12,449
Karma: 8012886
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
Quote:
Also, $$#purchasecost/1.15 is faster than using the divide() function. |
|
![]() |
![]() |
![]() |
#724 |
Custom User Title
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 11,018
Karma: 75555555
Join Date: Oct 2018
Location: Canada
Device: Kobo Libra H2O, formerly Aura HD
|
Another question: After deleting an integer column (was converting it to a composite), I noticed that a template that checked the integer still worked, but treated everything as a '0'. Is this intentional?
Last edited by ownedbycats; 10-17-2024 at 12:09 AM. |
![]() |
![]() |
![]() |
#725 |
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 12,449
Karma: 8012886
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
Yes, assuming you are using raw_field() or $$ to fetch the value. It returns None for columns that don't exist. None is interpreted as zero in an arithmetic context. Using field() or $ will throw an error
|
![]() |
![]() |
![]() |
#726 |
Custom User Title
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 11,018
Karma: 75555555
Join Date: Oct 2018
Location: Canada
Device: Kobo Libra H2O, formerly Aura HD
|
A composite column #timesread calls field_list_count().
A second composite column then uses $$#timesread (previously it was integer column) as a check. Would using field_list_count() directly in that composite increase performance? Last edited by ownedbycats; 10-20-2024 at 10:10 PM. |
![]() |
![]() |
![]() |
#727 |
Connoisseur
![]() Posts: 66
Karma: 10
Join Date: Nov 2023
Device: Kindle Oasis
|
exclude books with specific tag
Code:
elif $series == "" && $#audiobook != "" then "Stand-Alone with AB" ![]() ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#728 |
Custom User Title
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 11,018
Karma: 75555555
Join Date: Oct 2018
Location: Canada
Device: Kobo Libra H2O, formerly Aura HD
|
|
![]() |
![]() |
![]() |
#729 |
Connoisseur
![]() Posts: 66
Karma: 10
Join Date: Nov 2023
Device: Kindle Oasis
|
|
![]() |
![]() |
![]() |
#730 |
Custom User Title
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 11,018
Karma: 75555555
Join Date: Oct 2018
Location: Canada
Device: Kobo Libra H2O, formerly Aura HD
|
you should also be able to replace $#audiobook != "" with just !$#audiobook
|
![]() |
![]() |
![]() |
#731 | |
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 12,449
Karma: 8012886
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
Quote:
If you are asking if it would be faster to use field_list_count() instead of $$#timesread then the answer is yes. In the best case where $$#timesread has already been evaluated for the book then the performance improvement will be around 2 times. If $$#timesread hasn't yet been evaluated for the book then the performance improvement is at least 10 times. If you are using $#timesread (not raw_field()) then the performance improvement of using field_list_count() directly is probably 10 to 100 times. Last edited by chaley; 10-21-2024 at 06:55 AM. Reason: corrected spelling error |
|
![]() |
![]() |
![]() |
#732 |
Connoisseur
![]() ![]() Posts: 63
Karma: 190
Join Date: Sep 2023
Device: Kobo Libra 2
|
Hello! I'm using a template that uses the word count column to assign a book's tags.
I have tags for Comics, Novellas, Novels, and Long. Ideally, anything under 2k words will be a Comic, under 40k is a Novella, 150k is a Novel, and anything above that is Long. It turns out that books with 100k and higher have the "Novel"/"Long" and the "comic" tags, books with 50k-100k words have the correct tags. Books less than 1k are not being given the "comic" tag and books over 188k are not being given any tags at all. What am I doing wrong? Example: Code:
program: words = $$#words; pages = $$#pages; new_colls = strcat( if (words < 1500000 && words > 150000) then 'Long,' fi, if (words < 150000 && words > 50000) then 'Novel,' fi, if (words < 40000 && words > 2000) then 'Novella,' fi, if (words < 2000 && words > 0 && pages > 0) then 'Comic,' fi ) new_colls |
![]() |
![]() |
![]() |
#733 | ||
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 12,449
Karma: 8012886
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
Quote:
As said in the template language manual, which is your friend: Quote:
BTW2: it seems you should be using >=# in the second relational clause of the if statements. Otherwise you are skipping exact matches. Last edited by chaley; 10-21-2024 at 09:37 AM. Reason: Added BTW2 |
||
![]() |
![]() |
![]() |
#734 | |
Custom User Title
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 11,018
Karma: 75555555
Join Date: Oct 2018
Location: Canada
Device: Kobo Libra H2O, formerly Aura HD
|
Quote:
Code:
program: status = readstatus(); times = field_list_count('#datesread'); readgoal = strcat('readinggoal:', format_date(today(), 'yyyy')) in $#admintags; switch_if( status=='read', 'Read', status=='didnotfinish', 'Did Not Finish', status=='currentlyreading', if times >#0 then 'Currently Rereading' else 'Currently Reading' fi, status=='toberead', 'To Be Read', status=='unread', if readgoal && $$#lastread != 'None' then 'To Be Read' elif readgoal then 'Backlog' else 'Unread' fi, '' ) I just realized I could probably speed up this template a nudge by turning those nested if-thens into switch_ifs. |
|
![]() |
![]() |
![]() |
#735 |
Custom User Title
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 11,018
Karma: 75555555
Join Date: Oct 2018
Location: Canada
Device: Kobo Libra H2O, formerly Aura HD
|
Code:
program: readgoal = strcat('readinggoal:', format_date(today(), 'yyyy')); challenge = strcat('rgchallenges:purchases', format_date(today(), 'yyyy')); if format_date($date, 'yyyy') == format_date(today(), 'yyyy') && readgoal in $#admintags && $#purchasesource && $#cost !='0.00' then list_union(challenge, $#admintags, ',') else $#admintags fi Last edited by ownedbycats; 10-21-2024 at 05:10 PM. |
![]() |
![]() |
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Library Management: various questions not worth their own thread | ownedbycats | Library Management | 218 | 07-11-2025 07:34 PM |
[Metadata Source Plugin] Questions regarding parse select, docs and ref templates | Boilerplate4U | Development | 13 | 07-07-2020 02:35 AM |
Questions on Kobo [Interfered with another thread topic] | spdavies | Kobo Reader | 8 | 10-12-2014 11:37 AM |
[OLD Thread] Some questions before buying the fire. | darthreader13 | Kindle Fire | 7 | 05-10-2013 09:19 PM |
Thread management questions | meme | Feedback | 6 | 01-31-2011 05:07 PM |