| 
			
			 | 
		#706 | |
| 
			
			
			
			 Evangelist 
			
			![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 479 
				Karma: 41524 
				Join Date: Sep 2011 
				
				
				
				Device: Kobo Libra 2 & Clara BW 
				
				
				 | 
	
	
	
		
		
		
		
		 Quote: 
	
 Code: 
	{#koboreadpct:'cmp($,100,#read,#kobolastread,#read)'}
#read and #kobolastread are both Date Any of them might be blank. ?? EDIT: The program version worked. I do wonder why the above doesn't.  
		Last edited by foosion; 07-27-2024 at 04:54 PM.  | 
|
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#707 | 
| 
			
			
			
			 Custom User Title 
			
			![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 11,360 
				Karma: 79528341 
				Join Date: Oct 2018 
				Location: Canada 
				
				
				Device: Kobo Libra H2O, formerly Aura HD 
				
				
				 | 
	
	
	
		
		
		
		
		 Code: 
	program:
	status = readstatus();
	times = $$#timesread;
	readgoal = strcat('readinggoal:', format_date(today(), 'yyyy'));
	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 in $#admintags && $$#lastread then 'To Be Read' 
			elif readgoal in $#admintags then 'Backlog' 
			else 'Unread' fi,
		''
	)
 | 
| 
		
 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#708 | |
| 
			
			
			
			 Grand Sorcerer 
			
			![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 12,525 
				Karma: 8065948 
				Join Date: Jan 2010 
				Location: Notts, England 
				
				
				Device: Kobo Libra 2 
				
				
				 | 
	
	
	
		
		
		
		
		 Quote: 
	
 Code: 
	if readgoal in $#admintags && $$#lastread != 'None' then 'To Be Read' Code: 
	if readgoal in $#admintags && raw_field('#lastread', '') then 'To Be Read'
 | 
|
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#709 | 
| 
			
			
			
			 Custom User Title 
			
			![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 11,360 
				Karma: 79528341 
				Join Date: Oct 2018 
				Location: Canada 
				
				
				Device: Kobo Libra H2O, formerly Aura HD 
				
				
				 | 
	
	
	
		
		
		
		
		 
			
			Yes, that works. Thank you.
		 
		
	
		
		
		
		
		
		
		
		
		
		
	
	 | 
| 
		
 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#710 | 
| 
			
			
			
			 Custom User Title 
			
			![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 11,360 
				Karma: 79528341 
				Join Date: Oct 2018 
				Location: Canada 
				
				
				Device: Kobo Libra H2O, formerly Aura HD 
				
				
				 | 
	
	
	
		
		
		
		
		 
			
			I'd like to replace my 'Add Cleanup tag' and 'Remove Cleanup tag' action chains with a single one that toggles it. 
		
	
		
		
		
		
		
		
		
		
		
		
	
	Code: 
	program: if '[Cleanup]' inlist $tags then list_difference($tags,'[Cleanup]' , ',') else list_union($tags,'[Cleanup]' , ',') fi  | 
| 
		
 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#711 | |
| 
			
			
			
			 Grand Sorcerer 
			
			![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 12,525 
				Karma: 8065948 
				Join Date: Jan 2010 
				Location: Notts, England 
				
				
				Device: Kobo Libra 2 
				
				
				 | 
	
	
	
		
		
		
		
		 Quote: 
	
 If the tag is actually the string '[Cleanup]', which your list_... expressions imply, then you can use the str_in_list() function to avoid regular expressions. Something like Code: 
	program: if str_in_list($tags, ',', '[Cleanup]', 1, '') then list_difference($tags,'[Cleanup]' , ',') else list_union($tags,'[Cleanup]' , ',') fi  | 
|
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#712 | 
| 
			
			
			
			 Custom User Title 
			
			![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 11,360 
				Karma: 79528341 
				Join Date: Oct 2018 
				Location: Canada 
				
				
				Device: Kobo Libra H2O, formerly Aura HD 
				
				
				 | 
	
	
	
		
		
		
		
		 
			
			Ah, I didn't realize it'd register as a regex - I use brackets to make it sort to the beginning. Thanks.
		 
		
	
		
		
		
		
		
		
		
		
		
		
	
	 | 
| 
		
 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#713 | 
| 
			
			
			
			 Addict 
			
			![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 211 
				Karma: 126824 
				Join Date: Dec 2008 
				Location: Out There 
				
				
				Device: K3 W/3G (Fixed screen!) & Paperwhite Wifi 
				
				
				 | 
	
	
	
		
		
		
		
		 
			
			Currently the Series column shows digits.  
		
	
		
		
		
		
		
		
		
		
		
		
	
	Great Series [1] Great Series [2] Perfect. But occasionally I want to break it down more and add decimals points with up to 2 digits. Another Great Series [1] Another Great Series [1.75] <-book/short story written later which fits here timewise. Another Great Series [2] Ok Good. However usually I want to have 2 digits after the decimal point. New Great Series [1.08] <- works great for monthly magazines i.e. 1979.08 for Aug '79 New Great Series [1.09] New Great Series [1.10] New Great Series [1.11] New Great Series [1.12] BUT The [1.10] gets displayed as [1.1] loosing zero in the 2nd decimal place, as is instead displayed like this: New Great Series [1.08] New Great Series [1.09] New Great Series [1.1] New Great Series [1.11] New Great Series [1.12] Is there a tweak I can use for the Series Column that will force it to use 2 decimal places if a decimal is used? (I do like it uses whole numbers if no decimal is involved. so [1] [2] are fine. I just want it to display [1.1] as [1.10]) Thanks, JohnnyBook  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#714 | 
| 
			
			
			
			 Grand Sorcerer 
			
			![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 12,525 
				Karma: 8065948 
				Join Date: Jan 2010 
				Location: Notts, England 
				
				
				Device: Kobo Libra 2 
				
				
				 | 
	
	
	
		
		
		
		
		 
			
			No, there isn't. The solution is the one you got when you asked this question before, make a column built from other columns that displays the series as you like. Note that you can't edit such a column. Changes must be made in the series column.
		 
		
	
		
		
		
		
		
		
		
		
		
		
	
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#715 | 
| 
			
			
			
			 Custom User Title 
			
			![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 11,360 
				Karma: 79528341 
				Join Date: Oct 2018 
				Location: Canada 
				
				
				Device: Kobo Libra H2O, formerly Aura HD 
				
				
				 | 
	
	
	
		
		
		
		
		 
			
			On the inverse: How do I define a regex? 
		
	
		
		
		
		
		
		
		
		
		
		
		
			Since has_extra_files() is a bit slow, I'm adding the count to my admintags column with a template that: 1. Use a regex to match and remove any existing extra_files entries. 2. Generate a new extra_files entry. 3. Remove any entries matching 'extra_files:' exactly (zero files). However, the regex on line 6 is failing to match: Code: 
	program:
#to be replaced with $#admintags
tags = 'extra_files:123, blahblah';
old_tag = 'extra_files:\d+';
filecount = strcat('extra_files:', has_extra_files());
clean_tags = list_difference(tags, old_tag, ',');
new_tags = list_union(filecount, clean_tags, ',');
nonzero = list_difference(new_tags, 'extra_files:', ',')
Last edited by ownedbycats; 09-20-2024 at 08:47 PM.  | 
| 
		
 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#716 | |
| 
			
			
			
			 Grand Sorcerer 
			
			![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 12,525 
				Karma: 8065948 
				Join Date: Jan 2010 
				Location: Notts, England 
				
				
				Device: Kobo Libra 2 
				
				
				 | 
	
	
	
		
		
		
		
		 Quote: 
	
 This does what I think you want: Code: 
	program:
#to be replaced with $#admintags
tags = 'extra_files:123, blahblah';
# Remove any extra_files: items from the list
removed_ef = list_re_group(tags, ',', '.', '^extra_files:\d*$', '');
# Add the correct extra_files item to the list
added_ef = list_join(',', removed_ef, ',', 'extra_files:' & has_extra_files(), ',')
Code: 
	select(added_ef, 'extra_files') NB2: I wonder if it is worth adding a list_filter() template function, as in Code: 
	list_filter(list, sep, regexp) The same question arises for adding list_add() Code: 
	list = list_add(list, ',', string)  | 
|
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#717 | 
| 
			
			
			
			 want to learn what I want 
			
			![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,682 
				Karma: 7908443 
				Join Date: Sep 2020 
				
				
				
				Device: none 
				
				
				 | 
	
	
	
		
		
		
		
		 
			
			Hi! 
		
	
		
		
		
		
		
		
		
		
		
		
		
			I got a chain that runs on event 'Book list Double Clicked". It works fine but I wonder if there's some hacky advancement that could accelerate it. First action is open book. Second action is a standard Single field edit that just sets a #lastread column date. Third action is: program: $$#timesread + 1 Fourth action is: program: list_union(strcat(format_date($$#lastread, 'dd-MM-yyyy hh:mm:ss')), $#readdates, ',') I remember I've asked chaley to convert some advanced emblem rules for cover grid to PTM instead of GPM. Would this be a case where such conversion can produce speed improvements? Last edited by Comfy.n; 09-21-2024 at 05:53 PM.  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#718 | |
| 
			
			
			
			 Grand Sorcerer 
			
			![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 12,525 
				Karma: 8065948 
				Join Date: Jan 2010 
				Location: Notts, England 
				
				
				Device: Kobo Libra 2 
				
				
				 | 
	
	
	
		
		
		
		
		 Quote: 
	
 I assume that actions 3 and 4 are Single Field Edit where the result of the computation is stored in the appropriate cell for the current book -- the one double-clicked.  | 
|
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#719 | 
| 
			
			
			
			 want to learn what I want 
			
			![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,682 
				Karma: 7908443 
				Join Date: Sep 2020 
				
				
				
				Device: none 
				
				
				 | 
	
	
	
		
		
		
		
		 
			
			thanks chaley 
		
	
		
		
		
		
		
		
		
		
		
		
	
	opening books is much faster now on latest preview, so the chain processing time has become more significant in relative terms  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#720 | |
| 
			
			
			
			 Grand Sorcerer 
			
			![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 12,525 
				Karma: 8065948 
				Join Date: Jan 2010 
				Location: Notts, England 
				
				
				Device: Kobo Libra 2 
				
				
				 | 
	
	
	
		
		
		
		
		 Quote: 
	
 You could try opening the book last instead of first, ensuring that calibre isn't busy doing something else when the actions update the database.  | 
|
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
![]()  | 
            
        
            
            
  | 
    
			 
			Similar Threads
		 | 
	||||
| Thread | Thread Starter | Forum | Replies | Last Post | 
| Library Management: various questions not worth their own thread | ownedbycats | Library Management | 253 | 10-21-2025 09:15 AM | 
| [Metadata Source Plugin] Questions regarding parse select, docs and ref templates | Boilerplate4U | Development | 13 | 07-07-2020 03:35 AM | 
| Questions on Kobo [Interfered with another thread topic] | spdavies | Kobo Reader | 8 | 10-12-2014 12:37 PM | 
| [OLD Thread] Some questions before buying the fire. | darthreader13 | Amazon Fire | 7 | 05-10-2013 10:19 PM | 
| Thread management questions | meme | Feedback | 6 | 01-31-2011 06:07 PM |