01-19-2011, 08:09 AM | #46 |
Addict
Posts: 272
Karma: 1050426
Join Date: Feb 2010
Location: California
Device: iPad Mini w/Retina, Kindle 3, Kindle Fire HDX 8.9, & Asus Transformer
|
Thanks that did the trick. Do you know why the different variations?
|
01-19-2011, 08:13 AM | #47 |
Addict
Posts: 272
Karma: 1050426
Join Date: Feb 2010
Location: California
Device: iPad Mini w/Retina, Kindle 3, Kindle Fire HDX 8.9, & Asus Transformer
|
I did notice that some that are showing the below example have a date in the column as if read:
In a magical world at war, passion abounds as four people are stripped to their souls, but will love or lust conquer all? 10/21/2010 Last Page Read: Location 35 (0%) Is there any way to show this as reading? |
01-19-2011, 08:28 AM | #48 |
Grand Sorcerer
Posts: 11,747
Karma: 6997673
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
It is possible, but I have reached my limit. I don't have a kindle, so have no real reason to be doing this stuff. Perhaps a kindle owner will come along and take on the question.
Good luck... |
01-19-2011, 09:39 AM | #49 |
Addict
Posts: 272
Karma: 1050426
Join Date: Feb 2010
Location: California
Device: iPad Mini w/Retina, Kindle 3, Kindle Fire HDX 8.9, & Asus Transformer
|
Thank you so much. I really appreciate it.
|
01-19-2011, 10:07 AM | #50 |
Addict
Posts: 385
Karma: 6514
Join Date: Aug 2010
Location: Denmark
Device: Kindle 3 3G+Wifi, Oasis
|
Having fun :-)
|
01-19-2011, 10:18 AM | #51 | |
Addict
Posts: 385
Karma: 6514
Join Date: Aug 2010
Location: Denmark
Device: Kindle 3 3G+Wifi, Oasis
|
Date = Last opened
Quote:
You should think of the date as the time the book was last opened. You can open a book without turning any pages, and thereby changing % read. Show as reading ? You mean the user column using the python template ? Try changing the line Code:
elif f > 0: Code:
elif f >= 0: |
|
01-19-2011, 10:44 AM | #52 | |
Addict
Posts: 272
Karma: 1050426
Join Date: Feb 2010
Location: California
Device: iPad Mini w/Retina, Kindle 3, Kindle Fire HDX 8.9, & Asus Transformer
|
Quote:
{comments:'contains($, 'Last Page Read:', re($, '(?is).*(\d\d[-/]\d\d[-/]\d\d\d\d).*?Last Page Read:.*', '\1'), 'Not Read')'} But I was wondering is there anyway if a book has been partially read to say reading, instead of the date. Last edited by beckywc; 01-19-2011 at 10:47 AM. |
|
01-20-2011, 10:29 AM | #53 | |
Addict
Posts: 385
Karma: 6514
Join Date: Aug 2010
Location: Denmark
Device: Kindle 3 3G+Wifi, Oasis
|
Try this
Quote:
Havent had enough time to look at this. Want to, cause this is fun. A bit hard to learn, but ... SO - you don't want the last opened date ? OR you want another custom column showing "read" status ? Please explain further. Please understand English is not my native language. So please be precise. Also, how many books do you have in your Calibre library ? I have 900, and some of these customn columns using "just" templates, slows Calibre startup from 1-2 second to 1-2 minuttes. That's why I asked chaley, brilliant work, to help with the python Template functions. Anyways. A quick, (slow with many books, not nice) fix for a new column could be: Code:
{comments:'contains($, 'Last Page Read:', re($, '(?is).*\s(\d+[-/]\d+[-/]\d\d\d\d).*?Last Page Read:.*', 'Reading'), 'Not Read')'} Please let me know what you're looking for. Edit: Simpler template than above, could be faster. Code:
{comments:'contains($,'Last Page Read: ', 'Read', 'Not Read')'} Last edited by pchrist7; 01-20-2011 at 10:39 AM. Reason: spelling, new code |
|
01-20-2011, 01:17 PM | #54 |
Addict
Posts: 272
Karma: 1050426
Join Date: Feb 2010
Location: California
Device: iPad Mini w/Retina, Kindle 3, Kindle Fire HDX 8.9, & Asus Transformer
|
What I want the custom column to show is the date read if > 95%. If the book shows >0% but < 95% I want the colunn to show reading and if the book is 0% or unopened not read.
So I probably do need a program code, I just don't know how to do it. Trying to read and figure out how to program in python and I feel utterly lost. Thanks so much for your time. |
01-21-2011, 05:57 AM | #55 | |
Addict
Posts: 385
Karma: 6514
Join Date: Aug 2010
Location: Denmark
Device: Kindle 3 3G+Wifi, Oasis
|
Ahh - now I understand
Quote:
Got it. wonder if it can be done. Will give it a try or two during the weekend. |
|
01-21-2011, 11:26 AM | #56 | |
Grand Sorcerer
Posts: 11,747
Karma: 6997673
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
Quote:
Try playing with some variant of this Code:
def evaluate(self, formatter, kwargs, mi, locals, val, is_read_pct, is_read_str, is_reading_str, no_page_read_str): try: test_val = int(is_read_pct) except: return 'is_read_pct is not a number' import re mg = re.match('\s(\d+[-/]\d+[-/]\d\d\d\d).*?Last Page Read: location \d+ \((\d+)%\)', val, re.I + re.DOTALL); if mg is None: return no_page_read_str date = mg.group(1) pct = mg.group(2) try: f = int(pct) if f >= test_val: return date return is_reading_str + ': ' + pct + '%' except: pass return no_page_read_str I changed the regexp in the re(...) clause to carve out both the date and the percent. If it finds them, then the ifs below choose what to return. Have fun. |
|
01-22-2011, 02:11 AM | #57 | |
Addict
Posts: 385
Karma: 6514
Join Date: Aug 2010
Location: Denmark
Device: Kindle 3 3G+Wifi, Oasis
|
Thanks !
Quote:
Thanks a lot. You probably saved a lot testing hours, trying to grab the date. Will test a bit later today when I'm home from work. |
|
01-22-2011, 03:59 AM | #58 | |
Grand Sorcerer
Posts: 11,747
Karma: 6997673
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
Quote:
Just noticed: you must use re.match('.*\s(\d+ (note the new .* at the beginning of the string). It won't work as I wrote it, because re.match is an anchored search. The pattern must match all characters from the beginning. This is done to ensure efficient location of the last annotation group. |
|
01-22-2011, 04:54 AM | #59 | |
Addict
Posts: 385
Karma: 6514
Join Date: Aug 2010
Location: Denmark
Device: Kindle 3 3G+Wifi, Oasis
|
Got it !
Quote:
You were SO close ! All I had to do was add .* in re.match since the date is not at the start of comments. RTFM helped with that one Bit tricky to find. Added more return strings to determine that mg was empty. Now I know what I wish for my birthday: python debugger, line by line, integrated in Calibre I know, keep dreaming. How do you debug ? Just looking, trying, etc. ? @beckywc: Will post my suggestions for you shortly. |
|
01-22-2011, 04:56 AM | #60 | |
Addict
Posts: 385
Karma: 6514
Join Date: Aug 2010
Location: Denmark
Device: Kindle 3 3G+Wifi, Oasis
|
Refresh page before posting. Sigh
Quote:
Posted before reading this post. Good part is I figured it out myself ! Thank you, once more |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
"integrity error column book is not unique" | Atiajar | Calibre | 4 | 12-21-2010 11:22 PM |
Can Comments be "saved to disk" for reading? | sailingpeanut | Recipes | 1 | 10-10-2010 10:06 AM |
(2 books) in "On Device" column Sony Reader | phenomshel | Calibre | 23 | 09-19-2010 05:43 PM |
Bug? "Insert metadata as page at start of book" doesnt encode Comments field properly | rollercoaster | Calibre | 2 | 04-24-2010 10:40 PM |