From 5562b12d095b15b3d80261810b2c5bd03bcde349 Mon Sep 17 00:00:00 2001 From: GRiker Date: Fri, 18 Jun 2010 15:21:12 -0600 Subject: [PATCH 01/10] GwR revisions 0.7.0 --- src/calibre/devices/apple/driver.py | 41 ++++++++++++++++------------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/src/calibre/devices/apple/driver.py b/src/calibre/devices/apple/driver.py index a646b282f2..28f7758f72 100644 --- a/src/calibre/devices/apple/driver.py +++ b/src/calibre/devices/apple/driver.py @@ -6,8 +6,7 @@ __docformat__ = 'restructuredtext en' import cStringIO, ctypes, datetime, os, re, shutil, subprocess, sys, tempfile, time - -from calibre.constants import DEBUG +from calibre.constants import __appname__, __version__, DEBUG from calibre import fit_image from calibre.constants import isosx, iswindows from calibre.devices.errors import UserFeedback @@ -79,7 +78,7 @@ class ITUNES(DevicePlugin): supported_platforms = ['osx','windows'] author = 'GRiker' #: The version of this plugin as a 3-tuple (major, minor, revision) - version = (0,6,0) + version = (0,7,0) OPEN_FEEDBACK_MESSAGE = _( 'Apple device detected, launching iTunes, please wait ...') @@ -294,7 +293,7 @@ class ITUNES(DevicePlugin): 'author':[book.artist()], 'lib_book':library_books[this_book.path] if this_book.path in library_books else None, 'dev_book':book, - 'uuid': book.album() + 'uuid': book.composer() } if self.report_progress is not None: @@ -330,7 +329,7 @@ class ITUNES(DevicePlugin): 'title':book.Name, 'author':book.Artist, 'lib_book':library_books[this_book.path] if this_book.path in library_books else None, - 'uuid': book.Album + 'uuid': book.Composer } if self.report_progress is not None: @@ -1426,10 +1425,10 @@ class ITUNES(DevicePlugin): attempts = 9 while attempts: # Try by uuid - only one hit - hits = dev_books.Search(search['uuid'],self.SearchField.index('Albums')) + hits = dev_books.Search(search['uuid'],self.SearchField.index('All')) if hits: hit = hits[0] - self.log.info(" found '%s' by %s (%s)" % (hit.Name, hit.Artist, hit.Album)) + self.log.info(" found '%s' by %s (%s)" % (hit.Name, hit.Artist, hit.Composer)) return hit # Try by author - there could be multiple hits @@ -1438,7 +1437,7 @@ class ITUNES(DevicePlugin): for hit in hits: if hit.Name == search['title']: if DEBUG: - self.log.info(" found '%s' by %s (%s)" % (hit.Name, hit.Artist, hit.Album)) + self.log.info(" found '%s' by %s (%s)" % (hit.Name, hit.Artist, hit.Composer)) return hit attempts -= 1 @@ -1493,11 +1492,11 @@ class ITUNES(DevicePlugin): if 'uuid' in search: if DEBUG: self.log.info(" searching by uuid '%s' ..." % search['uuid']) - hits = lib_books.Search(search['uuid'],self.SearchField.index('Albums')) + hits = lib_books.Search(search['uuid'],self.SearchField.index('All')) if hits: hit = hits[0] if DEBUG: - self.log.info(" found '%s' by %s (%s)" % (hit.Name, hit.Artist, hit.Album)) + self.log.info(" found '%s' by %s (%s)" % (hit.Name, hit.Artist, hit.Composer)) return hit if DEBUG: @@ -1507,7 +1506,7 @@ class ITUNES(DevicePlugin): for hit in hits: if hit.Name == search['title']: if DEBUG: - self.log.info(" found '%s' by %s (%s)" % (hit.Name, hit.Artist, hit.Album)) + self.log.info(" found '%s' by %s (%s)" % (hit.Name, hit.Artist, hit.Composer)) return hit attempts -= 1 @@ -1925,6 +1924,7 @@ class ITUNES(DevicePlugin): self.log.error(" could not confirm valid iTunes.media_dir from %s" % 'com.apple.itunes') self.log.error(" media_dir: %s" % media_dir) if DEBUG: + self.log.info(" %s %s" % (__appname__, __version__)) self.log.info(" [OSX %s - %s (%s), driver version %d.%d.%d]" % (self.iTunes.name(), self.iTunes.version(), self.initial_status, self.version[0],self.version[1],self.version[2])) @@ -1954,6 +1954,7 @@ class ITUNES(DevicePlugin): self.log.error(" '%s' not found" % media_dir) if DEBUG: + self.log.info(" %s %s" % (__appname__, __version__)) self.log.info(" [Windows %s - %s (%s), driver version %d.%d.%d]" % (self.iTunes.Windows[0].name, self.iTunes.Version, self.initial_status, self.version[0],self.version[1],self.version[2])) @@ -2041,7 +2042,7 @@ class ITUNES(DevicePlugin): elif iswindows: dev_pl = self._get_device_books_playlist() - hits = dev_pl.Search(cached_book['uuid'],self.SearchField.index('Albums')) + hits = dev_pl.Search(cached_book['uuid'],self.SearchField.index('All')) if hits: hit = hits[0] if False: @@ -2095,7 +2096,7 @@ class ITUNES(DevicePlugin): self.iTunes.delete(cached_book['lib_book']) except: if DEBUG: - self.log.info(" '%s' not found in iTunes" % cached_book['title']) + self.log.info(" unable to remove '%s' from iTunes" % cached_book['title']) elif iswindows: ''' @@ -2134,7 +2135,7 @@ class ITUNES(DevicePlugin): book.Delete() except: if DEBUG: - self.log.info(" '%s' not found in iTunes" % cached_book['title']) + self.log.info(" unable to remove '%s' from iTunes" % cached_book['title']) def _update_epub_metadata(self, fpath, metadata): ''' @@ -2241,14 +2242,16 @@ class ITUNES(DevicePlugin): if isosx: if lb_added: - lb_added.album.set(metadata.uuid) + lb_added.album.set(metadata.title) + lb_added.composer.set(metadata.uuid) lb_added.description.set("%s %s" % (self.description_prefix,strftime('%Y-%m-%d %H:%M:%S'))) lb_added.enabled.set(True) lb_added.sort_artist.set(metadata.author_sort.title()) lb_added.sort_name.set(this_book.title_sorter) if db_added: - db_added.album.set(metadata.uuid) + db_added.album.set(metadata.title) + db_added.composer.set(metadata.uuid) db_added.description.set("%s %s" % (self.description_prefix,strftime('%Y-%m-%d %H:%M:%S'))) db_added.enabled.set(True) db_added.sort_artist.set(metadata.author_sort.title()) @@ -2296,14 +2299,16 @@ class ITUNES(DevicePlugin): elif iswindows: if lb_added: - lb_added.Album = metadata.uuid + lb_added.Album = metadata.title + lb_added.Composer = metadata.uuid lb_added.Description = ("%s %s" % (self.description_prefix,strftime('%Y-%m-%d %H:%M:%S'))) lb_added.Enabled = True lb_added.SortArtist = (metadata.author_sort.title()) lb_added.SortName = (this_book.title_sorter) if db_added: - db_added.Album = metadata.uuid + db_added.Album = metadata.title + db_added.Composer = metadata.uuid db_added.Description = ("%s %s" % (self.description_prefix,strftime('%Y-%m-%d %H:%M:%S'))) db_added.Enabled = True db_added.SortArtist = (metadata.author_sort.title()) From 7a157dc3b618941ab174fb78560ecfd1e695908a Mon Sep 17 00:00:00 2001 From: GRiker Date: Sat, 19 Jun 2010 10:29:51 -0600 Subject: [PATCH 02/10] GwR wip --- resources/recipes/nytimes.recipe | 2 + resources/recipes/nytimes_sub.recipe | 51 +++------ src/calibre/web/feeds/news.py | 8 +- src/calibre/web/feeds/templates.py | 156 ++++++++++++++++++--------- 4 files changed, 127 insertions(+), 90 deletions(-) diff --git a/resources/recipes/nytimes.recipe b/resources/recipes/nytimes.recipe index 9fbcf6d3d1..527f19839c 100644 --- a/resources/recipes/nytimes.recipe +++ b/resources/recipes/nytimes.recipe @@ -79,6 +79,7 @@ class NYTimes(BasicNewsRecipe): 'doubleRule', 'dottedLine', 'entry-meta', + 'entry-response module', 'icon enlargeThis', 'leftNavTabs', 'module box nav', @@ -110,6 +111,7 @@ class NYTimes(BasicNewsRecipe): 'navigation', 'portfolioInline', 'relatedArticles', + 'respond', 'side_search', 'side_index', 'side_tool', diff --git a/resources/recipes/nytimes_sub.recipe b/resources/recipes/nytimes_sub.recipe index bcec51ce97..f63611f6e3 100644 --- a/resources/recipes/nytimes_sub.recipe +++ b/resources/recipes/nytimes_sub.recipe @@ -66,6 +66,7 @@ class NYTimes(BasicNewsRecipe): 'doubleRule', 'dottedLine', 'entry-meta', + 'entry-response module', 'icon enlargeThis', 'leftNavTabs', 'module box nav', @@ -97,6 +98,7 @@ class NYTimes(BasicNewsRecipe): 'navigation', 'portfolioInline', 'relatedArticles', + 'respond', 'side_search', 'side_index', 'side_tool', @@ -417,12 +419,11 @@ class NYTimes(BasicNewsRecipe): return soup - def postprocess_book(self, oeb, opts, log) : - print "\npostprocess_book()\n" - - def extract_byline(href) : - # :' + articlebody = soup.find('div',attrs={'class':'articlebody'}) + if not articlebody: + print 'postprocess_book.extract_description(): Did not find
:' print soup.prettify() return None - paras = articleBody.findAll('p') + paras = articlebody.findAll('p') for p in paras: if p.renderContents() > '' : return self.massageNCXText(self.tag_to_string(p,use_alt=False)) return None - # Method entry point here - # Single section toc looks different than multi-section tocs - if oeb.toc.depth() == 2 : - for article in oeb.toc : - if article.author is None : - article.author = extract_byline(article.href) - if article.description is None : - article.description = extract_description(article.href).decode('utf-8') - elif oeb.toc.depth() == 3 : - for section in oeb.toc : - for article in section : - if article.author is None : - article.author = extract_byline(article.href) - if article.description is None : - article.description = extract_description(article.href) + article.author = extract_author(soup) + article.summary = article.text_summary = extract_description(soup) def strip_anchors(self,soup): paras = soup.findAll(True) diff --git a/src/calibre/web/feeds/news.py b/src/calibre/web/feeds/news.py index 73e0fae8e8..9264d3d0a3 100644 --- a/src/calibre/web/feeds/news.py +++ b/src/calibre/web/feeds/news.py @@ -752,7 +752,8 @@ class BasicNewsRecipe(Recipe): - def feed2index(self, feed): + def feed2index(self, f, feeds): + feed = feeds[f] if feed.image_url is not None: # Download feed image imgdir = os.path.join(self.output_dir, 'images') if not os.path.isdir(imgdir): @@ -808,7 +809,8 @@ class BasicNewsRecipe(Recipe): templ = templates.TouchscreenFeedTemplate() css = touchscreen_css + '\n\n' + (self.extra_css if self.extra_css else '') - return templ.generate(feed, self.description_limiter, + + return templ.generate(f, feeds, self.description_limiter, extra_css=css).render(doctype='xhtml') @@ -951,7 +953,7 @@ class BasicNewsRecipe(Recipe): #feeds.restore_duplicates() for f, feed in enumerate(feeds): - html = self.feed2index(feed) + html = self.feed2index(f,feeds) feed_dir = os.path.join(self.output_dir, 'feed_%d'%f) with open(os.path.join(feed_dir, 'index.html'), 'wb') as fi: fi.write(html) diff --git a/src/calibre/web/feeds/templates.py b/src/calibre/web/feeds/templates.py index 7ebf7294ae..45e713a9ac 100644 --- a/src/calibre/web/feeds/templates.py +++ b/src/calibre/web/feeds/templates.py @@ -107,32 +107,66 @@ class TouchscreenNavBarTemplate(Template): align = 'center' if center else 'left' navbar = DIV(CLASS('calibre_navbar', 'calibre_rescale_100', style='text-align:'+align)) - if bottom: - navbar.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) - text = 'This article was downloaded by ' - p = PT(text, STRONG(__appname__), A(url, href=url), style='text-align:left') - p[0].tail = ' from ' - navbar.append(p) - navbar.append(BR()) - navbar.append(BR()) + + if False: + if bottom: + navbar.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) + text = 'This article was downloaded by ' + p = PT(text, STRONG(__appname__), A(url, href=url), style='text-align:left') + p[0].tail = ' from ' + navbar.append(p) + navbar.append(BR()) + navbar.append(BR()) + else: + next = 'feed_%d'%(feed+1) if art == number_of_articles_in_feed - 1 \ + else 'article_%d'%(art+1) + up = '../..' if art == number_of_articles_in_feed - 1 else '..' + href = '%s%s/%s/index.html'%(prefix, up, next) + navbar.text = '| ' + navbar.append(A('Next', href=href)) + + href = '%s../index.html#article_%d'%(prefix, art) + navbar.iterchildren(reversed=True).next().tail = ' | ' + navbar.append(A('Section Menu', href=href)) + href = '%s../../index.html#feed_%d'%(prefix, feed) + navbar.iterchildren(reversed=True).next().tail = ' | ' + navbar.append(A("Sections", href=href)) + if art > 0 and not bottom: + href = '%s../article_%d/index.html'%(prefix, art-1) + navbar.iterchildren(reversed=True).next().tail = ' | ' + navbar.append(A('Previous', href=href)) else: + if bottom: + navbar.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) + text = 'This article was downloaded by ' + p = PT(text, STRONG(__appname__), A(url, href=url), style='text-align:left') + p[0].tail = ' from ' + navbar.append(p) + navbar.append(BR()) + navbar.append(BR()) + else: + # | Previous + if art > 0 and not bottom: + href = '%s../article_%d/index.html'%(prefix, art-1) + navbar.text = '| ' + navbar.append(A('Previous', href=href)) + + # | Section | Main | + href = '%s../index.html#article_%d'%(prefix, art) + if art > 0: + navbar.iterchildren(reversed=True).next().tail = ' | ' + navbar.append(A('Articles', href=href)) + href = '%s../../index.html#feed_%d'%(prefix, feed) + navbar.iterchildren(reversed=True).next().tail = ' | ' + navbar.append(A("Sections", href=href)) + + # | Next next = 'feed_%d'%(feed+1) if art == number_of_articles_in_feed - 1 \ else 'article_%d'%(art+1) up = '../..' if art == number_of_articles_in_feed - 1 else '..' href = '%s%s/%s/index.html'%(prefix, up, next) - navbar.text = '| ' - navbar.append(A('Next', href=href)) - - href = '%s../index.html#article_%d'%(prefix, art) - navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A('Section Menu', href=href)) - href = '%s../../index.html#feed_%d'%(prefix, feed) - navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A('Main Menu', href=href)) - if art > 0 and not bottom: - href = '%s../article_%d/index.html'%(prefix, art-1) navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A('Previous', href=href)) + navbar.append(A('Next', href=href)) navbar.iterchildren(reversed=True).next().tail = ' | ' if not bottom: @@ -200,7 +234,8 @@ class TouchscreenIndexTemplate(Template): class FeedTemplate(Template): - def _generate(self, feed, cutoff, extra_css=None, style=None): + def _generate(self, f, feeds, cutoff, extra_css=None, style=None): + feed = feeds[f] head = HEAD(TITLE(feed.title)) if style: head.append(STYLE(style, type='text/css')) @@ -250,7 +285,41 @@ class FeedTemplate(Template): class TouchscreenFeedTemplate(Template): - def _generate(self, feed, cutoff, extra_css=None, style=None): + def _generate(self, f, feeds, cutoff, extra_css=None, style=None): + + def trim_title(title,clip=15): + if len(title)>clip: + tokens = title.split(' ') + new_title_tokens = [] + new_title_len = 0 + for token in tokens: + if len(token) + new_title_len < clip: + new_title_tokens.append(token) + new_title_len += len(token) + 1 + else: + new_title_tokens.append('...') + title = ' '.join(new_title_tokens) + break + return title + + feed = feeds[f] + + # Construct the navbar + navbar = DIV('| ', CLASS('calibre_navbar', 'calibre_rescale_100'),style='text-align:center') + if f > 0: + link = A(trim_title(feeds[f-1].title), href = '../feed_%d/index.html' % int(f-1)) + link.tail = ' |' + navbar.append(link) + + link = A("Sections", href="../index.html") + link.tail = ' |' + navbar.append(link) + if f < len(feeds)-1: + link = A(trim_title(feeds[f+1].title), href = '../feed_%d/index.html' % int(f+1)) + link.tail = ' |' + navbar.append(link) + + # Build the page head = HEAD(TITLE(feed.title)) if style: head.append(STYLE(style, type='text/css')) @@ -262,6 +331,7 @@ class TouchscreenFeedTemplate(Template): DIV(style="border-top:1px solid gray;border-bottom:1em solid white") ) body.append(div) + if getattr(feed, 'image', None): div.append(DIV(IMG( alt = feed.image_alt if feed.image_alt else '', @@ -280,41 +350,21 @@ class TouchscreenFeedTemplate(Template): continue tr = TR() - if True: - div_td = DIV( - A(article.title, CLASS('summary_headline','calibre_rescale_120', - href=article.url)), - style="display:inline-block") - if article.author: - div_td.append(DIV(article.author, - CLASS('summary_byline', 'calibre_rescale_100'))) - if article.summary: - div_td.append(DIV(cutoff(article.text_summary), - CLASS('summary_text', 'calibre_rescale_100'))) - tr.append(TD(div_td)) - else: - td = TD( - A(article.title, CLASS('summary_headline','calibre_rescale_120', - href=article.url)) - ) - if article.author: - td.append(DIV(article.author, - CLASS('summary_byline', 'calibre_rescale_100'))) - if article.summary: - td.append(DIV(cutoff(article.text_summary), - CLASS('summary_text', 'calibre_rescale_100'))) - - tr.append(td) + div_td = DIV( + A(article.title, CLASS('summary_headline','calibre_rescale_120', + href=article.url)), + style="display:inline-block") + if article.author: + div_td.append(DIV(article.author, + CLASS('summary_byline', 'calibre_rescale_100'))) + if article.summary: + div_td.append(DIV(cutoff(article.text_summary), + CLASS('summary_text', 'calibre_rescale_100'))) + tr.append(TD(div_td)) toc.append(tr) div.append(toc) - - navbar = DIV('| ', CLASS('calibre_navbar', 'calibre_rescale_100'),style='text-align:center') - link = A('Up one level', href="../index.html") - link.tail = ' |' - navbar.append(link) div.append(navbar) - self.root = HTML(head, body) class EmbeddedContent(Template): From b9cb28b88086cdbabbcedba232bc83f87b8e408e Mon Sep 17 00:00:00 2001 From: GRiker Date: Sat, 19 Jun 2010 17:22:32 -0600 Subject: [PATCH 03/10] GwR revisions --- src/calibre/devices/apple/driver.py | 15 +- src/calibre/library/custom_columns.py | 6 +- src/calibre/web/feeds/news.py | 11 + src/calibre/web/feeds/templates.py | 441 +++++++++++++++----------- 4 files changed, 279 insertions(+), 194 deletions(-) diff --git a/src/calibre/devices/apple/driver.py b/src/calibre/devices/apple/driver.py index 28f7758f72..a994efb0f6 100644 --- a/src/calibre/devices/apple/driver.py +++ b/src/calibre/devices/apple/driver.py @@ -1557,6 +1557,10 @@ class ITUNES(DevicePlugin): return thumb.getvalue() except: self.log.error(" error generating thumb for '%s'" % book.name()) + try: + zfw.close() + except: + pass return None elif iswindows: @@ -1586,6 +1590,10 @@ class ITUNES(DevicePlugin): return thumb.getvalue() except: self.log.error(" error generating thumb for '%s'" % book.Name) + try: + zfw.close() + except: + pass return None def _get_device_book_size(self, file, compressed_size): @@ -2108,13 +2116,14 @@ class ITUNES(DevicePlugin): path = book.Location except: book = self._find_library_book(cached_book) + path = book.Location if book: - storage_path = os.path.split(book.Location) - if book.Location.startswith(self.iTunes_media): + storage_path = os.path.split(path) + if path.startswith(self.iTunes_media): if DEBUG: self.log.info(" removing '%s' at %s" % - (cached_book['title'], book.Location)) + (cached_book['title'], path)) try: os.remove(path) except: diff --git a/src/calibre/library/custom_columns.py b/src/calibre/library/custom_columns.py index c0ba91e252..823a240065 100644 --- a/src/calibre/library/custom_columns.py +++ b/src/calibre/library/custom_columns.py @@ -467,7 +467,8 @@ class CustomColumns(object): books_ratings_link as bl, ratings as r WHERE {lt}.value={table}.id and bl.book={lt}.book and - r.id = bl.rating and r.rating <> 0) avg_rating + r.id = bl.rating and r.rating <> 0) avg_rating, + value AS sort FROM {table}; CREATE VIEW tag_browser_filtered_{table} AS SELECT @@ -481,7 +482,8 @@ class CustomColumns(object): ratings as r WHERE {lt}.value={table}.id AND bl.book={lt}.book AND r.id = bl.rating AND r.rating <> 0 AND - books_list_filter(bl.book)) avg_rating + books_list_filter(bl.book)) avg_rating, + value AS sort FROM {table}; '''.format(lt=lt, table=table), diff --git a/src/calibre/web/feeds/news.py b/src/calibre/web/feeds/news.py index 9264d3d0a3..972617f422 100644 --- a/src/calibre/web/feeds/news.py +++ b/src/calibre/web/feeds/news.py @@ -805,6 +805,17 @@ class BasicNewsRecipe(Recipe): font-family:monospace; } + /* + .touchscreen_navbar { + -webkit-border-radius:4px; + background:#ccc; + border:#ccc 1px solid; + margin-left: 25%; + margin-right: 25%; + width: 50%; + } + */ + ''' templ = templates.TouchscreenFeedTemplate() diff --git a/src/calibre/web/feeds/templates.py b/src/calibre/web/feeds/templates.py index 45e713a9ac..0b99002ad6 100644 --- a/src/calibre/web/feeds/templates.py +++ b/src/calibre/web/feeds/templates.py @@ -14,6 +14,7 @@ def CLASS(*args, **kwargs): # class is a reserved word in Python kwargs['class'] = ' '.join(args) return kwargs +# Regular templates class Template(object): IS_HTML = True @@ -44,135 +45,30 @@ class Template(object): return etree.tostring(self.root, encoding='utf-8', xml_declaration=True, pretty_print=True) -class NavBarTemplate(Template): +class EmbeddedContent(Template): - def _generate(self, bottom, feed, art, number_of_articles_in_feed, - two_levels, url, __appname__, prefix='', center=True, - extra_css=None, style=None): - head = HEAD(TITLE('navbar')) + def _generate(self, article, style=None, extra_css=None): + content = article.content if article.content else '' + summary = article.summary if article.summary else '' + text = content if len(content) > len(summary) else summary + head = HEAD(TITLE(article.title)) if style: head.append(STYLE(style, type='text/css')) if extra_css: head.append(STYLE(extra_css, type='text/css')) - if prefix and not prefix.endswith('/'): - prefix += '/' - align = 'center' if center else 'left' - navbar = DIV(CLASS('calibre_navbar', 'calibre_rescale_70', - style='text-align:'+align)) - if bottom: - navbar.append(HR()) - text = 'This article was downloaded by ' - p = PT(text, STRONG(__appname__), A(url, href=url), style='text-align:left') - p[0].tail = ' from ' - navbar.append(p) - navbar.append(BR()) - navbar.append(BR()) - else: - next = 'feed_%d'%(feed+1) if art == number_of_articles_in_feed - 1 \ - else 'article_%d'%(art+1) - up = '../..' if art == number_of_articles_in_feed - 1 else '..' - href = '%s%s/%s/index.html'%(prefix, up, next) - navbar.text = '| ' - navbar.append(A('Next', href=href)) - href = '%s../index.html#article_%d'%(prefix, art) - navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A('Section Menu', href=href)) - href = '%s../../index.html#feed_%d'%(prefix, feed) - navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A('Main Menu', href=href)) - if art > 0 and not bottom: - href = '%s../article_%d/index.html'%(prefix, art-1) - navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A('Previous', href=href)) - navbar.iterchildren(reversed=True).next().tail = ' | ' - if not bottom: - navbar.append(HR()) - - self.root = HTML(head, BODY(navbar)) - -class TouchscreenNavBarTemplate(Template): - - def _generate(self, bottom, feed, art, number_of_articles_in_feed, - two_levels, url, __appname__, prefix='', center=True, - extra_css=None, style=None): - head = HEAD(TITLE('navbar')) - if style: - head.append(STYLE(style, type='text/css')) - if extra_css: - head.append(STYLE(extra_css, type='text/css')) - - if prefix and not prefix.endswith('/'): - prefix += '/' - align = 'center' if center else 'left' - navbar = DIV(CLASS('calibre_navbar', 'calibre_rescale_100', - style='text-align:'+align)) - - if False: - if bottom: - navbar.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) - text = 'This article was downloaded by ' - p = PT(text, STRONG(__appname__), A(url, href=url), style='text-align:left') - p[0].tail = ' from ' - navbar.append(p) - navbar.append(BR()) - navbar.append(BR()) - else: - next = 'feed_%d'%(feed+1) if art == number_of_articles_in_feed - 1 \ - else 'article_%d'%(art+1) - up = '../..' if art == number_of_articles_in_feed - 1 else '..' - href = '%s%s/%s/index.html'%(prefix, up, next) - navbar.text = '| ' - navbar.append(A('Next', href=href)) - - href = '%s../index.html#article_%d'%(prefix, art) - navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A('Section Menu', href=href)) - href = '%s../../index.html#feed_%d'%(prefix, feed) - navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A("Sections", href=href)) - if art > 0 and not bottom: - href = '%s../article_%d/index.html'%(prefix, art-1) - navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A('Previous', href=href)) - else: - if bottom: - navbar.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) - text = 'This article was downloaded by ' - p = PT(text, STRONG(__appname__), A(url, href=url), style='text-align:left') - p[0].tail = ' from ' - navbar.append(p) - navbar.append(BR()) - navbar.append(BR()) - else: - # | Previous - if art > 0 and not bottom: - href = '%s../article_%d/index.html'%(prefix, art-1) - navbar.text = '| ' - navbar.append(A('Previous', href=href)) - - # | Section | Main | - href = '%s../index.html#article_%d'%(prefix, art) - if art > 0: - navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A('Articles', href=href)) - href = '%s../../index.html#feed_%d'%(prefix, feed) - navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A("Sections", href=href)) - - # | Next - next = 'feed_%d'%(feed+1) if art == number_of_articles_in_feed - 1 \ - else 'article_%d'%(art+1) - up = '../..' if art == number_of_articles_in_feed - 1 else '..' - href = '%s%s/%s/index.html'%(prefix, up, next) - navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A('Next', href=href)) - - navbar.iterchildren(reversed=True).next().tail = ' | ' - if not bottom: - navbar.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) - - self.root = HTML(head, BODY(navbar)) + if isbytestring(text): + text = text.decode('utf-8', 'replace') + elements = html.fragments_fromstring(text) + self.root = HTML(head, + BODY(H2(article.title), DIV())) + div = self.root.find('body').find('div') + if elements and isinstance(elements[0], unicode): + div.text = elements[0] + elements = list(elements)[1:] + for elem in elements: + elem.getparent().remove(elem) + div.append(elem) class IndexTemplate(Template): @@ -198,40 +94,6 @@ class IndexTemplate(Template): CLASS('calibre_rescale_100')) self.root = HTML(head, BODY(div)) -class TouchscreenIndexTemplate(Template): - - def _generate(self, title, masthead, datefmt, feeds, extra_css=None, style=None): - if isinstance(datefmt, unicode): - datefmt = datefmt.encode(preferred_encoding) - date = '%s, %s %s, %s' % (strftime('%A'), strftime('%B'), strftime('%d').lstrip('0'), strftime('%Y')) - masthead_p = etree.Element("p") - masthead_p.set("style","text-align:center") - masthead_img = etree.Element("img") - masthead_img.set("src",masthead) - masthead_img.set("alt","masthead") - masthead_p.append(masthead_img) - - head = HEAD(TITLE(title)) - if style: - head.append(STYLE(style, type='text/css')) - if extra_css: - head.append(STYLE(extra_css, type='text/css')) - - toc = TABLE(CLASS('toc'),width="100%",border="0",cellpadding="3px") - for i, feed in enumerate(feeds): - if feed: - tr = TR() - tr.append(TD( CLASS('calibre_rescale_120'), A(feed.title, href='feed_%d/index.html'%i))) - tr.append(TD( '%s' % len(feed.articles), style="text-align:right")) - toc.append(tr) - div = DIV( - masthead_p, - PT(date, style='text-align:center'), - #DIV(style="border-color:gray;border-top-style:solid;border-width:thin"), - DIV(style="border-top:1px solid gray;border-bottom:1em solid white"), - toc) - self.root = HTML(head, BODY(div)) - class FeedTemplate(Template): def _generate(self, f, feeds, cutoff, extra_css=None, style=None): @@ -283,11 +145,95 @@ class FeedTemplate(Template): self.root = HTML(head, body) +class NavBarTemplate(Template): + + def _generate(self, bottom, feed, art, number_of_articles_in_feed, + two_levels, url, __appname__, prefix='', center=True, + extra_css=None, style=None): + head = HEAD(TITLE('navbar')) + if style: + head.append(STYLE(style, type='text/css')) + if extra_css: + head.append(STYLE(extra_css, type='text/css')) + + if prefix and not prefix.endswith('/'): + prefix += '/' + align = 'center' if center else 'left' + + navbar = DIV(CLASS('calibre_navbar', 'calibre_rescale_70', + style='text-align:'+align)) + if bottom: + navbar.append(HR()) + text = 'This article was downloaded by ' + p = PT(text, STRONG(__appname__), A(url, href=url), style='text-align:left') + p[0].tail = ' from ' + navbar.append(p) + navbar.append(BR()) + navbar.append(BR()) + else: + next = 'feed_%d'%(feed+1) if art == number_of_articles_in_feed - 1 \ + else 'article_%d'%(art+1) + up = '../..' if art == number_of_articles_in_feed - 1 else '..' + href = '%s%s/%s/index.html'%(prefix, up, next) + navbar.text = '| ' + navbar.append(A('Next', href=href)) + href = '%s../index.html#article_%d'%(prefix, art) + navbar.iterchildren(reversed=True).next().tail = ' | ' + navbar.append(A('Section Menu', href=href)) + href = '%s../../index.html#feed_%d'%(prefix, feed) + navbar.iterchildren(reversed=True).next().tail = ' | ' + navbar.append(A('Main Menu', href=href)) + if art > 0 and not bottom: + href = '%s../article_%d/index.html'%(prefix, art-1) + navbar.iterchildren(reversed=True).next().tail = ' | ' + navbar.append(A('Previous', href=href)) + navbar.iterchildren(reversed=True).next().tail = ' | ' + if not bottom: + navbar.append(HR()) + + self.root = HTML(head, BODY(navbar)) + + +# Touchscreen templates +class TouchscreenIndexTemplate(Template): + + def _generate(self, title, masthead, datefmt, feeds, extra_css=None, style=None): + if isinstance(datefmt, unicode): + datefmt = datefmt.encode(preferred_encoding) + date = '%s, %s %s, %s' % (strftime('%A'), strftime('%B'), strftime('%d').lstrip('0'), strftime('%Y')) + masthead_p = etree.Element("p") + masthead_p.set("style","text-align:center") + masthead_img = etree.Element("img") + masthead_img.set("src",masthead) + masthead_img.set("alt","masthead") + masthead_p.append(masthead_img) + + head = HEAD(TITLE(title)) + if style: + head.append(STYLE(style, type='text/css')) + if extra_css: + head.append(STYLE(extra_css, type='text/css')) + + toc = TABLE(CLASS('toc'),width="100%",border="0",cellpadding="3px") + for i, feed in enumerate(feeds): + if feed: + tr = TR() + tr.append(TD( CLASS('calibre_rescale_120'), A(feed.title, href='feed_%d/index.html'%i))) + tr.append(TD( '%s' % len(feed.articles), style="text-align:right")) + toc.append(tr) + div = DIV( + masthead_p, + PT(date, style='text-align:center'), + #DIV(style="border-color:gray;border-top-style:solid;border-width:thin"), + DIV(style="border-top:1px solid gray;border-bottom:1em solid white"), + toc) + self.root = HTML(head, BODY(div)) + class TouchscreenFeedTemplate(Template): def _generate(self, f, feeds, cutoff, extra_css=None, style=None): - def trim_title(title,clip=15): + def trim_title(title,clip=18): if len(title)>clip: tokens = title.split(' ') new_title_tokens = [] @@ -295,7 +241,7 @@ class TouchscreenFeedTemplate(Template): for token in tokens: if len(token) + new_title_len < clip: new_title_tokens.append(token) - new_title_len += len(token) + 1 + new_title_len += len(token) else: new_title_tokens.append('...') title = ' '.join(new_title_tokens) @@ -305,19 +251,42 @@ class TouchscreenFeedTemplate(Template): feed = feeds[f] # Construct the navbar - navbar = DIV('| ', CLASS('calibre_navbar', 'calibre_rescale_100'),style='text-align:center') - if f > 0: - link = A(trim_title(feeds[f-1].title), href = '../feed_%d/index.html' % int(f-1)) - link.tail = ' |' - navbar.append(link) + if False: + navbar = DIV('', CLASS('calibre_navbar', 'calibre_rescale_100'),style='text-align:center') + if f > 0: + link = A(trim_title('< ' + feeds[f-1].title + ' '), href = '../feed_%d/index.html' % int(f-1)) + #link.tail = ' |' + navbar.append(link) - link = A("Sections", href="../index.html") - link.tail = ' |' - navbar.append(link) - if f < len(feeds)-1: - link = A(trim_title(feeds[f+1].title), href = '../feed_%d/index.html' % int(f+1)) - link.tail = ' |' + link = A("| Sections |", href="../index.html") + #link.tail = ' |' navbar.append(link) + if f < len(feeds)-1: + link = A(trim_title(' '+feeds[f+1].title) + ' >', href = '../feed_%d/index.html' % int(f+1)) + #link.tail = ' |' + navbar.append(link) + else: + navbar_t = TABLE(width="100%", align="center", border="0", + cellspacing="3px", cellpadding="3px") + navbar_tr = TR() + + link = '' + if f > 0: + link = A(trim_title('<' + feeds[f-1].title), + href = '../feed_%d/index.html' % int(f-1)) + navbar_tr.append(TD(link, width="40%", align="right")) + + link = A("Sections", href="../index.html") + navbar_tr.append(TD(link,width="20%", align="center")) + + link = '' + if f < len(feeds)-1: + link = A(trim_title(feeds[f+1].title) + '>', + href = '../feed_%d/index.html' % int(f+1)) + navbar_tr.append(TD(link, width="40%", align="left")) + + navbar_t.append(navbar_tr) + navbar = navbar_t # Build the page head = HEAD(TITLE(feed.title)) @@ -361,34 +330,128 @@ class TouchscreenFeedTemplate(Template): div_td.append(DIV(cutoff(article.text_summary), CLASS('summary_text', 'calibre_rescale_100'))) tr.append(TD(div_td)) - toc.append(tr) + div.append(toc) + div.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) div.append(navbar) self.root = HTML(head, body) -class EmbeddedContent(Template): +class TouchscreenNavBarTemplate(Template): - def _generate(self, article, style=None, extra_css=None): - content = article.content if article.content else '' - summary = article.summary if article.summary else '' - text = content if len(content) > len(summary) else summary - head = HEAD(TITLE(article.title)) + def _generate(self, bottom, feed, art, number_of_articles_in_feed, + two_levels, url, __appname__, prefix='', center=True, + extra_css=None, style=None): + head = HEAD(TITLE('navbar')) if style: head.append(STYLE(style, type='text/css')) if extra_css: head.append(STYLE(extra_css, type='text/css')) - if isbytestring(text): - text = text.decode('utf-8', 'replace') - elements = html.fragments_fromstring(text) - self.root = HTML(head, - BODY(H2(article.title), DIV())) - div = self.root.find('body').find('div') - if elements and isinstance(elements[0], unicode): - div.text = elements[0] - elements = list(elements)[1:] - for elem in elements: - elem.getparent().remove(elem) - div.append(elem) + if prefix and not prefix.endswith('/'): + prefix += '/' + align = 'center' if center else 'left' + if False: + navbar = DIV(CLASS('calibre_navbar', 'calibre_rescale_100', + style='text-align:'+align)) + + if bottom and False: + navbar.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) + text = 'This article was downloaded by ' + p = PT(text, STRONG(__appname__), A(url, href=url), style='text-align:left') + p[0].tail = ' from ' + navbar.append(p) + navbar.append(BR()) + navbar.append(BR()) + + # | Previous + if art > 0: + href = '%s../article_%d/index.html'%(prefix, art-1) + navbar.append(A('< Previous', href=href)) + + # | Articles | Sections | + href = '%s../index.html#article_%d'%(prefix, art) + navbar.iterchildren(reversed=True).next().tail = ' | ' + navbar.append(A('Articles', href=href)) + + href = '%s../../index.html#feed_%d'%(prefix, feed) + navbar.iterchildren(reversed=True).next().tail = ' | ' + navbar.append(A("Sections", href=href)) + + # | Next + next = 'feed_%d'%(feed+1) if art == number_of_articles_in_feed - 1 \ + else 'article_%d'%(art+1) + up = '../..' if art == number_of_articles_in_feed - 1 else '..' + href = '%s%s/%s/index.html'%(prefix, up, next) + navbar.iterchildren(reversed=True).next().tail = ' | ' + navbar.append(A('Next >', href=href)) + + #navbar.iterchildren(reversed=True).next().tail = ' | ' + if not bottom: + navbar.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) + else: + ''' + table.touchscreen_navbar { + -webkit-border-radius:4px; + background:#ccc; + border:#ccc 1px solid; + margin-left: 25%; + margin-right: 25%; + width: 50%;} + + + + + + + + + +
< Articles Sections >
+ + ''' + + navbar = DIV(CLASS('calibre_navbar', 'calibre_rescale_120')) + + if bottom: + navbar.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) + + navbar_t = TABLE( + align="center", + border="0", + cellpadding="3px", + cellspacing="3px", + width="100%" + ) + + navbar_tr = TR() + # | Previous + if art > 0: + href = '%s../article_%d/index.html'%(prefix, art-1) + navbar_tr.append(TD(A(' ', href=href),width="32%", align="left")) + navbar_t.append(navbar_tr) + navbar.append(navbar_t) + #print "\n%s\n" % etree.tostring(navbar, pretty_print=True) + + if not bottom: + navbar.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) + + self.root = HTML(head, BODY(navbar)) From 5d91f7515a35462ed39f512d2f7312b2dc94da64 Mon Sep 17 00:00:00 2001 From: GRiker Date: Sun, 20 Jun 2010 09:50:17 -0600 Subject: [PATCH 04/10] GwR wip --- src/calibre/ebooks/oeb/stylizer.py | 11 ++ src/calibre/web/feeds/news.py | 82 +++++++------- src/calibre/web/feeds/templates.py | 176 +++++++---------------------- 3 files changed, 98 insertions(+), 171 deletions(-) diff --git a/src/calibre/ebooks/oeb/stylizer.py b/src/calibre/ebooks/oeb/stylizer.py index 0637dddfb6..d6070efade 100644 --- a/src/calibre/ebooks/oeb/stylizer.py +++ b/src/calibre/ebooks/oeb/stylizer.py @@ -126,6 +126,17 @@ class Stylizer(object): head = head[0] else: head = [] + + # GwR : Add webkit profile to cssutils before validating + if True: + wk_macros = { + 'border-width': '{length}|thin|medium|thick' + } + wk_props = { + '-webkit-border-radius': r'{border-width}(\s+{border-width}){0,3}|inherit' + } + cssutils.profile.addProfile('webkit', wk_props, wk_macros) + parser = cssutils.CSSParser(fetcher=self._fetch_css_file, log=logging.getLogger('calibre.css')) self.font_face_rules = [] diff --git a/src/calibre/web/feeds/news.py b/src/calibre/web/feeds/news.py index 972617f422..29b581c361 100644 --- a/src/calibre/web/feeds/news.py +++ b/src/calibre/web/feeds/news.py @@ -280,6 +280,46 @@ class BasicNewsRecipe(Recipe): } ''' + #: The CSS that is used to style the touchscreen elements, i.e., the navigation bars and + #: the Feed summaries. + touchscreen_css = u''' + .article_navbar { + -webkit-border-radius:4px; + background-color:#eee; + border:1px solid #888; + margin-left: 5%; + margin-right: 5%; + width: 90%; + } + + .feed_navbar { + -webkit-border-radius:4px; + background-color:#eee; + border:1px solid #888; + margin-left: 5%; + margin-right: 5%; + width: 90%; + } + + .summary_headline { + font-weight:bold; text-align:left; + } + + .summary_byline { + text-align:left; + font-family:monospace; + } + + .summary_text { + text-align:left; + } + + .feed { + font-family:sans-serif; font-weight:bold; font-size:larger; + } + ''' + + #: By default, calibre will use a default image for the masthead (Kindle only). #: Override this in your recipe to provide a url to use as a masthead. masthead_url = None @@ -638,6 +678,9 @@ class BasicNewsRecipe(Recipe): if self.delay > 0: self.simultaneous_downloads = 1 + if self.touchscreen: + self.extra_css += self.touchscreen_css + self.navbar = templates.TouchscreenNavBarTemplate() if self.touchscreen else templates.NavBarTemplate() self.failed_downloads = [] self.partial_failures = [] @@ -661,8 +704,7 @@ class BasicNewsRecipe(Recipe): templ = self.navbar.generate(False, f, a, feed_len, not self.has_single_feed, url, __appname__, - center=self.center_navbar, - extra_css=self.extra_css) + center=self.center_navbar) elem = BeautifulSoup(templ.render(doctype='xhtml').decode('utf-8')).find('div') body.insert(0, elem) if self.remove_javascript: @@ -783,43 +825,7 @@ class BasicNewsRecipe(Recipe): css = self.template_css + '\n\n' +(self.extra_css if self.extra_css else '') if self.touchscreen: - touchscreen_css = u''' - .summary_headline { - font-weight:bold; text-align:left; - } - - .summary_byline { - text-align:left; - font-family:monospace; - } - - .summary_text { - text-align:left; - } - - .feed { - font-family:sans-serif; font-weight:bold; font-size:larger; - } - - .calibre_navbar { - font-family:monospace; - } - - /* - .touchscreen_navbar { - -webkit-border-radius:4px; - background:#ccc; - border:#ccc 1px solid; - margin-left: 25%; - margin-right: 25%; - width: 50%; - } - */ - - ''' - templ = templates.TouchscreenFeedTemplate() - css = touchscreen_css + '\n\n' + (self.extra_css if self.extra_css else '') return templ.generate(f, feeds, self.description_limiter, extra_css=css).render(doctype='xhtml') diff --git a/src/calibre/web/feeds/templates.py b/src/calibre/web/feeds/templates.py index 0b99002ad6..5b4704e766 100644 --- a/src/calibre/web/feeds/templates.py +++ b/src/calibre/web/feeds/templates.py @@ -5,7 +5,7 @@ __copyright__ = '2008, Kovid Goyal ' from lxml import html, etree from lxml.html.builder import HTML, HEAD, TITLE, STYLE, DIV, BODY, \ - STRONG, BR, SPAN, A, HR, UL, LI, H2, IMG, P as PT, \ + STRONG, EM, BR, SPAN, A, HR, UL, LI, H2, IMG, P as PT, \ TABLE, TD, TR from calibre import preferred_encoding, strftime, isbytestring @@ -251,42 +251,26 @@ class TouchscreenFeedTemplate(Template): feed = feeds[f] # Construct the navbar - if False: - navbar = DIV('', CLASS('calibre_navbar', 'calibre_rescale_100'),style='text-align:center') - if f > 0: - link = A(trim_title('< ' + feeds[f-1].title + ' '), href = '../feed_%d/index.html' % int(f-1)) - #link.tail = ' |' - navbar.append(link) + navbar_t = TABLE(CLASS('feed_navbar')) + navbar_tr = TR() - link = A("| Sections |", href="../index.html") - #link.tail = ' |' - navbar.append(link) - if f < len(feeds)-1: - link = A(trim_title(' '+feeds[f+1].title) + ' >', href = '../feed_%d/index.html' % int(f+1)) - #link.tail = ' |' - navbar.append(link) - else: - navbar_t = TABLE(width="100%", align="center", border="0", - cellspacing="3px", cellpadding="3px") - navbar_tr = TR() + link = '' + if f > 0: + link = A(EM( '< ' + trim_title(feeds[f-1].title)), + href = '../feed_%d/index.html' % int(f-1)) + navbar_tr.append(TD(link, width="40%", align="center")) - link = '' - if f > 0: - link = A(trim_title('<' + feeds[f-1].title), - href = '../feed_%d/index.html' % int(f-1)) - navbar_tr.append(TD(link, width="40%", align="right")) + link = A(STRONG('Sections'), href="../index.html") + navbar_tr.append(TD(link,width="20%",align="center")) - link = A("Sections", href="../index.html") - navbar_tr.append(TD(link,width="20%", align="center")) + link = '' + if f < len(feeds)-1: + link = A(EM(trim_title(feeds[f+1].title) + ' >'), + href = '../feed_%d/index.html' % int(f+1)) + navbar_tr.append(TD(link, width="40%", align="center")) - link = '' - if f < len(feeds)-1: - link = A(trim_title(feeds[f+1].title) + '>', - href = '../feed_%d/index.html' % int(f+1)) - navbar_tr.append(TD(link, width="40%", align="left")) - - navbar_t.append(navbar_tr) - navbar = navbar_t + navbar_t.append(navbar_tr) + navbar = navbar_t # Build the page head = HEAD(TITLE(feed.title)) @@ -333,7 +317,8 @@ class TouchscreenFeedTemplate(Template): toc.append(tr) div.append(toc) - div.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) + #div.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) + div.append(BR()) div.append(navbar) self.root = HTML(head, body) @@ -348,110 +333,35 @@ class TouchscreenNavBarTemplate(Template): if extra_css: head.append(STYLE(extra_css, type='text/css')) - if prefix and not prefix.endswith('/'): - prefix += '/' - align = 'center' if center else 'left' + navbar = DIV() + if bottom: + navbar.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) - if False: - navbar = DIV(CLASS('calibre_navbar', 'calibre_rescale_100', - style='text-align:'+align)) - - if bottom and False: - navbar.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) - text = 'This article was downloaded by ' - p = PT(text, STRONG(__appname__), A(url, href=url), style='text-align:left') - p[0].tail = ' from ' - navbar.append(p) - navbar.append(BR()) - navbar.append(BR()) - - # | Previous - if art > 0: - href = '%s../article_%d/index.html'%(prefix, art-1) - navbar.append(A('< Previous', href=href)) - - # | Articles | Sections | - href = '%s../index.html#article_%d'%(prefix, art) - navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A('Articles', href=href)) - - href = '%s../../index.html#feed_%d'%(prefix, feed) - navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A("Sections", href=href)) - - # | Next - next = 'feed_%d'%(feed+1) if art == number_of_articles_in_feed - 1 \ - else 'article_%d'%(art+1) - up = '../..' if art == number_of_articles_in_feed - 1 else '..' - href = '%s%s/%s/index.html'%(prefix, up, next) - navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A('Next >', href=href)) - - #navbar.iterchildren(reversed=True).next().tail = ' | ' - if not bottom: - navbar.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) + navbar_t = TABLE(CLASS('article_navbar')) + navbar_tr = TR() + # | Previous + if art > 0: + href = '%s../article_%d/index.html'%(prefix, art-1) + navbar_tr.append(TD(A(EM('< Previous'), href=href), width="32%", align="center")) else: - ''' - table.touchscreen_navbar { - -webkit-border-radius:4px; - background:#ccc; - border:#ccc 1px solid; - margin-left: 25%; - margin-right: 25%; - width: 50%;} - - - - - - - - - -
< Articles Sections >
+ navbar_tr.append(TD('', width="25%")) - ''' + # | Articles | Sections | + href = '%s../index.html#article_%d'%(prefix, art) + navbar_tr.append(TD(A(STRONG('Articles'), href=href),width="18%", align="center")) - navbar = DIV(CLASS('calibre_navbar', 'calibre_rescale_120')) + href = '%s../../index.html#feed_%d'%(prefix, feed) + navbar_tr.append(TD(A(STRONG('Sections'), href=href),width="18%", align="center")) - if bottom: - navbar.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) + # | Next + next = 'feed_%d'%(feed+1) if art == number_of_articles_in_feed - 1 \ + else 'article_%d'%(art+1) + up = '../..' if art == number_of_articles_in_feed - 1 else '..' + href = '%s%s/%s/index.html'%(prefix, up, next) - navbar_t = TABLE( - align="center", - border="0", - cellpadding="3px", - cellspacing="3px", - width="100%" - ) - - navbar_tr = TR() - # | Previous - if art > 0: - href = '%s../article_%d/index.html'%(prefix, art-1) - navbar_tr.append(TD(A(' ', href=href),width="32%", align="left")) - navbar_t.append(navbar_tr) - navbar.append(navbar_t) - #print "\n%s\n" % etree.tostring(navbar, pretty_print=True) - - if not bottom: - navbar.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) + navbar_tr.append(TD(A(EM('Next >'), href=href),width="32%", align="center")) + navbar_t.append(navbar_tr) + navbar.append(navbar_t) + #print "\n%s\n" % etree.tostring(navbar, pretty_print=True) self.root = HTML(head, BODY(navbar)) From bd04312a764c6f9592cfe6cec8a000d247fbaf22 Mon Sep 17 00:00:00 2001 From: GRiker Date: Tue, 22 Jun 2010 11:41:08 -0600 Subject: [PATCH 05/10] GwR wip --- resources/default_tweaks.py | 7 +- src/calibre/customize/profiles.py | 79 +++++- src/calibre/devices/apple/driver.py | 420 +++++++++++++++++++--------- src/calibre/ebooks/oeb/stylizer.py | 15 +- src/calibre/gui2/actions.py | 3 +- src/calibre/web/feeds/news.py | 51 +--- src/calibre/web/feeds/templates.py | 54 ++-- 7 files changed, 416 insertions(+), 213 deletions(-) diff --git a/resources/default_tweaks.py b/resources/default_tweaks.py index aaeb992151..40b3d2fa32 100644 --- a/resources/default_tweaks.py +++ b/resources/default_tweaks.py @@ -72,4 +72,9 @@ gui_pubdate_display_format = 'MMM yyyy' # without changing anything is sufficient to change the sort. title_series_sorting = 'library_order' - +# Apple iDevice +# Control whether Series name is used as Category/Genre in iTunes/iBooks +# If set to 'True', a Book's Series name will be used as the Category/Genre +# If set to 'False', the book's first tag beginning with an alpha character will +# be used as the Category/Genre +iDevice_use_series_as_category = True diff --git a/src/calibre/customize/profiles.py b/src/calibre/customize/profiles.py index c872c9df38..68345ca0da 100644 --- a/src/calibre/customize/profiles.py +++ b/src/calibre/customize/profiles.py @@ -237,9 +237,6 @@ class OutputProfile(Plugin): # If True the MOBI renderer on the device supports MOBI indexing supports_mobi_indexing = False - # Device supports displaying a nested TOC - supports_nested_toc = True - # If True output should be optimized for a touchscreen interface touchscreen = False @@ -256,8 +253,82 @@ class iPadOutput(OutputProfile): screen_size = (768, 1024) comic_screen_size = (768, 1024) dpi = 132.0 - supports_nested_toc = False + timefmt = '%A, %d %b %Y' + cssutils_addProfile = { 'name':'webkit', + 'props': { + '-webkit-border-bottom-left-radius':'{length}', + '-webkit-border-bottom-right-radius':'{length}', + '-webkit-border-top-left-radius':'{length}', + '-webkit-border-top-right-radius':'{length}', + '-webkit-border-radius': r'{border-width}(\s+{border-width}){0,3}|inherit', + }, + 'macros': {'border-width': '{length}|medium|thick|thin'}} touchscreen = True + touchscreen_css = u''' + /* hr used in articles */ + .caption_divider { + border:#ccc 1px solid; + } + + .touchscreen_navbar { + background:#ccc; + border:#ccc 1px solid; + border-collapse:separate; + border-spacing:1px; + margin-left: 5%; + margin-right: 5%; + width: 90%; + -webkit-border-radius:4px; + } + .touchscreen_navbar td { + background:#fff; + font-family:Helvetica; + font-size:80%; + padding: 5px; + text-align:center; + } + .touchscreen_navbar td:first-child { + -webkit-border-top-left-radius:4px; + -webkit-border-bottom-left-radius:4px; + } + .touchscreen_navbar td:last-child { + -webkit-border-top-right-radius:4px; + -webkit-border-bottom-right-radius:4px; + } + + .feed_link { + font-style: italic; + } + + + /* Feed summary formatting */ + .feed_title { + text-align: center; + font-size: 160%; + } + + .summary_headline { + font-weight:bold; + text-align:left; + } + + .summary_byline { + text-align:left; + font-family:monospace; + } + + .summary_text { + text-align:left; + } + + .feed { + font-family:sans-serif; + font-weight:bold; + font-size:larger; + } + + ''' + class SonyReaderOutput(OutputProfile): diff --git a/src/calibre/devices/apple/driver.py b/src/calibre/devices/apple/driver.py index a994efb0f6..2efe2b553f 100644 --- a/src/calibre/devices/apple/driver.py +++ b/src/calibre/devices/apple/driver.py @@ -15,7 +15,7 @@ from calibre.ebooks.BeautifulSoup import BeautifulSoup from calibre.ebooks.metadata import MetaInformation from calibre.ebooks.metadata.epub import set_metadata from calibre.library.server.utils import strftime -from calibre.utils.config import Config, config_dir +from calibre.utils.config import Config, config_dir, tweaks from calibre.utils.date import isoformat, now, parse_date from calibre.utils.logging import Log from calibre.utils.zipfile import ZipFile @@ -78,12 +78,12 @@ class ITUNES(DevicePlugin): supported_platforms = ['osx','windows'] author = 'GRiker' #: The version of this plugin as a 3-tuple (major, minor, revision) - version = (0,7,0) + version = (0,8,0) OPEN_FEEDBACK_MESSAGE = _( 'Apple device detected, launching iTunes, please wait ...') - FORMATS = ['epub'] + FORMATS = ['epub','pdf'] # Product IDs: # 0x1292:iPhone 3G @@ -141,6 +141,10 @@ class ITUNES(DevicePlugin): 'SongNames', ] + # Cover art size limits + MAX_COVER_WIDTH = 510 + MAX_COVER_HEIGHT = 680 + # Properties cached_books = {} cache_dir = os.path.join(config_dir, 'caches', 'itunes') @@ -159,7 +163,7 @@ class ITUNES(DevicePlugin): sources = None update_msg = None update_needed = False - use_series_data = True + use_series_as_category = tweaks['iDevice_use_series_as_category'] # Public methods def add_books_to_metadata(self, locations, metadata, booklists): @@ -173,16 +177,17 @@ class ITUNES(DevicePlugin): (L{books}(oncard=None), L{books}(oncard='carda'), L{books}(oncard='cardb')). ''' + if DEBUG: + self.log.info("ITUNES.add_books_to_metadata()") task_count = float(len(self.update_list)) # Delete any obsolete copies of the book from the booklist if self.update_list: - if True: - self.log.info("ITUNES.add_books_to_metadata()") - #self._dump_booklist(booklists[0], header='before',indent=2) - #self._dump_update_list(header='before',indent=2) - #self._dump_cached_books(header='before',indent=2) + if False: + self._dump_booklist(booklists[0], header='before',indent=2) + self._dump_update_list(header='before',indent=2) + self._dump_cached_books(header='before',indent=2) for (j,p_book) in enumerate(self.update_list): if False: @@ -230,12 +235,12 @@ class ITUNES(DevicePlugin): # Add new books to booklists[0] for new_book in locations[0]: - if False: + if DEBUG: self.log.info(" adding '%s' by '%s' to booklists[0]" % (new_book.title, new_book.author)) booklists[0].append(new_book) - if False: + if DEBUG: self._dump_booklist(booklists[0],header='after',indent=2) self._dump_cached_books(header='after',indent=2) @@ -329,7 +334,8 @@ class ITUNES(DevicePlugin): 'title':book.Name, 'author':book.Artist, 'lib_book':library_books[this_book.path] if this_book.path in library_books else None, - 'uuid': book.Composer + 'uuid': book.Composer, + 'format': 'pdf' if book.KindAsString.startswith('PDF') else 'epub' } if self.report_progress is not None: @@ -343,9 +349,9 @@ class ITUNES(DevicePlugin): if self.report_progress is not None: self.report_progress(1.0, _('finished')) self.cached_books = cached_books -# if DEBUG: -# self._dump_booklist(booklist, 'returning from books():') -# self._dump_cached_books('returning from books():') + if DEBUG: + self._dump_booklist(booklist, 'returning from books()', indent=2) + self._dump_cached_books('returning from books()',indent=2) return booklist else: return [] @@ -685,6 +691,9 @@ class ITUNES(DevicePlugin): @param booklists: A tuple containing the result of calls to (L{books}(oncard=None), L{books}(oncard='carda'), L{books}(oncard='cardb')). + + NB: This will not find books that were added by a different installation of calibre + as uuids are different ''' if DEBUG: self.log.info("ITUNES.remove_books_from_metadata()") @@ -750,6 +759,10 @@ class ITUNES(DevicePlugin): (L{books}(oncard=None), L{books}(oncard='carda'), L{books}(oncard='cardb')). ''' + + if DEBUG: + self.log.info("ITUNES.sync_booklists()") + if self.update_needed: if DEBUG: self.log.info(' calling _update_device') @@ -812,29 +825,32 @@ class ITUNES(DevicePlugin): self.problem_msg = _("Some cover art could not be converted.\n" "Click 'Show Details' for a list.") - if False: + if DEBUG: self.log.info("ITUNES.upload_books()") self._dump_files(files, header='upload_books()',indent=2) self._dump_update_list(header='upload_books()',indent=2) if isosx: for (i,file) in enumerate(files): + format = file.rpartition('.')[2].lower() path = self.path_template % (metadata[i].title, metadata[i].author[0]) self._remove_existing_copy(path, metadata[i]) - fpath = self._get_fpath(file, metadata[i], update_md=True) + fpath = self._get_fpath(file, metadata[i], format, update_md=True) db_added, lb_added = self._add_new_copy(fpath, metadata[i]) - thumb = self._cover_to_thumb(path, metadata[i], db_added, lb_added) - this_book = self._create_new_book(fpath, metadata[i], path, db_added, lb_added, thumb) + thumb = self._cover_to_thumb(path, metadata[i], db_added, lb_added, format) + this_book = self._create_new_book(fpath, metadata[i], path, db_added, lb_added, thumb, format) new_booklist.append(this_book) self._update_iTunes_metadata(metadata[i], db_added, lb_added, this_book) # Add new_book to self.cached_paths self.cached_books[this_book.path] = { - 'title': metadata[i].title, 'author': metadata[i].author, - 'lib_book': lb_added, 'dev_book': db_added, - 'uuid': metadata[i].uuid} + 'format': format, + 'lib_book': lb_added, + 'title': metadata[i].title, + 'uuid': metadata[i].uuid } + # Report progress if self.report_progress is not None: @@ -846,9 +862,10 @@ class ITUNES(DevicePlugin): self.iTunes = win32com.client.Dispatch("iTunes.Application") for (i,file) in enumerate(files): + format = file.rpartition('.')[2].lower() path = self.path_template % (metadata[i].title, metadata[i].author[0]) self._remove_existing_copy(path, metadata[i]) - fpath = self._get_fpath(file, metadata[i], update_md=True) + fpath = self._get_fpath(file, metadata[i],format, update_md=True) db_added, lb_added = self._add_new_copy(fpath, metadata[i]) if self.manual_sync_mode and not db_added: @@ -857,17 +874,18 @@ class ITUNES(DevicePlugin): "Click 'Show Details...' for affected books.") self.problem_titles.append("'%s' by %s" % (metadata[i].title, metadata[i].author[0])) - thumb = self._cover_to_thumb(path, metadata[i], lb_added, db_added) - this_book = self._create_new_book(fpath, metadata[i], path, db_added, lb_added, thumb) + thumb = self._cover_to_thumb(path, metadata[i], db_added, lb_added, format) + this_book = self._create_new_book(fpath, metadata[i], path, db_added, lb_added, thumb, format) new_booklist.append(this_book) self._update_iTunes_metadata(metadata[i], db_added, lb_added, this_book) # Add new_book to self.cached_paths self.cached_books[this_book.path] = { - 'title': metadata[i].title, 'author': metadata[i].author[0], - 'lib_book': lb_added, 'dev_book': db_added, + 'format': format, + 'lib_book': lb_added, + 'title': metadata[i].title, 'uuid': metadata[i].uuid} # Report progress @@ -968,7 +986,8 @@ class ITUNES(DevicePlugin): db_added = self._find_device_book( {'title': metadata.title, 'author': metadata.authors[0], - 'uuid': metadata.uuid}) + 'uuid': metadata.uuid, + 'format': fpath.rpartition('.')[2].lower()}) return db_added @@ -1021,7 +1040,8 @@ class ITUNES(DevicePlugin): added = self._find_library_book( { 'title': metadata.title, 'author': metadata.author[0], - 'uuid': metadata.uuid}) + 'uuid': metadata.uuid, + 'format': file.rpartition('.')[2].lower()}) return added def _add_new_copy(self, fpath, metadata): @@ -1047,46 +1067,82 @@ class ITUNES(DevicePlugin): return db_added, lb_added - def _cover_to_thumb(self, path, metadata, db_added, lb_added): + def _cover_to_thumb(self, path, metadata, db_added, lb_added, format): ''' assumes pythoncom wrapper for db_added + as of iTunes 9.2, iBooks 1.1, can't set artwork for PDF files via automation ''' self.log.info(" ITUNES._cover_to_thumb()") + thumb = None if metadata.cover: - if isosx: - cover_data = open(metadata.cover,'rb') - if lb_added: - lb_added.artworks[1].data_.set(cover_data.read()) - if db_added: - # The following command generates an error, but the artwork does in fact - # get sent to the device. Seems like a bug in Apple's automation interface - try: - db_added.artworks[1].data_.set(cover_data.read()) - except: + if (format == 'epub'): + # Pre-shrink cover + # self.MAX_COVER_WIDTH, self.MAX_COVER_HEIGHT + try: + img = PILImage.open(metadata.cover) + width = img.size[0] + height = img.size[1] + scaled, nwidth, nheight = fit_image(width, height, self.MAX_COVER_WIDTH, self.MAX_COVER_HEIGHT) + if scaled: if DEBUG: - self.log.warning(" iTunes automation interface reported an error" - " when adding artwork to '%s' on the iDevice" % metadata.title) - #import traceback - #traceback.print_exc() - #from calibre import ipython - #ipython(user_ns=locals()) - pass - - - elif iswindows: - if lb_added: - if lb_added.Artwork.Count: - lb_added.Artwork.Item(1).SetArtworkFromFile(metadata.cover) + self.log.info(" '%s' scaled from %sx%s to %sx%s" % + (metadata.cover,width,height,nwidth,nheight)) + img = img.resize((nwidth, nheight), PILImage.ANTIALIAS) + cd = cStringIO.StringIO() + img.convert('RGB').save(cd, 'JPEG') + cover_data = cd.getvalue() + cd.close() else: - lb_added.AddArtworkFromFile(metadata.cover) + with open(metadata.cover,'r+b') as cd: + cover_data = cd.read() + except: + self.problem_titles.append("'%s' by %s" % (metadata.title, metadata.author[0])) + self.log.error(" error scaling '%s' for '%s'" % (metadata.cover,metadata.title)) + return thumb - if db_added: - if db_added.Artwork.Count: - db_added.Artwork.Item(1).SetArtworkFromFile(metadata.cover) - else: - db_added.AddArtworkFromFile(metadata.cover) + if isosx: + if lb_added: + lb_added.artworks[1].data_.set(cover_data) + + if db_added: + # The following command generates an error, but the artwork does in fact + # get sent to the device. Seems like a bug in Apple's automation interface + try: + db_added.artworks[1].data_.set(cover_data) + except: + if DEBUG: + self.log.warning(" iTunes automation interface reported an error" + " when adding artwork to '%s' on the iDevice" % metadata.title) + #import traceback + #traceback.print_exc() + #from calibre import ipython + #ipython(user_ns=locals()) + pass + + + elif iswindows: + # Write the data to a real file for Windows iTunes + tc = os.path.join(tempfile.gettempdir(), "cover.jpg") + with open(tc,'wb') as tmp_cover: + tmp_cover.write(cover_data) + + if lb_added: + if lb_added.Artwork.Count: + lb_added.Artwork.Item(1).SetArtworkFromFile(tc) + else: + lb_added.AddArtworkFromFile(tc) + + if db_added: + if db_added.Artwork.Count: + db_added.Artwork.Item(1).SetArtworkFromFile(tc) + else: + db_added.AddArtworkFromFile(tc) + + elif format == 'pdf': + if DEBUG: + self.log.info(" unable to set PDF cover via automation interface") try: # Resize for thumb @@ -1097,6 +1153,7 @@ class ITUNES(DevicePlugin): of = cStringIO.StringIO() im.convert('RGB').save(of, 'JPEG') thumb = of.getvalue() + of.close() # Refresh the thumbnail cache if DEBUG: @@ -1105,14 +1162,15 @@ class ITUNES(DevicePlugin): zfw = ZipFile(archive_path, mode='a') thumb_path = path.rpartition('.')[0] + '.jpg' zfw.writestr(thumb_path, thumb) - zfw.close() except: self.problem_titles.append("'%s' by %s" % (metadata.title, metadata.author[0])) self.log.error(" error converting '%s' to thumb for '%s'" % (metadata.cover,metadata.title)) + finally: + zfw.close() - return thumb + return thumb - def _create_new_book(self,fpath, metadata, path, db_added, lb_added, thumb): + def _create_new_book(self,fpath, metadata, path, db_added, lb_added, thumb, format): ''' ''' if DEBUG: @@ -1122,6 +1180,7 @@ class ITUNES(DevicePlugin): this_book.db_id = None this_book.device_collections = [] + this_book.format = format this_book.library_id = lb_added this_book.path = path this_book.thumbnail = thumb @@ -1319,10 +1378,11 @@ class ITUNES(DevicePlugin): self.cached_books[cb]['uuid'])) elif iswindows: for cb in self.cached_books.keys(): - self.log.info("%s%-40.40s %-30.30s %s" % + self.log.info("%s%-40.40s %-30.30s %-4.4s %s" % (' '*indent, self.cached_books[cb]['title'], self.cached_books[cb]['author'], + self.cached_books[cb]['format'], self.cached_books[cb]['uuid'])) self.log.info() @@ -1338,8 +1398,9 @@ class ITUNES(DevicePlugin): fnames = zf.namelist() opf = [x for x in fnames if '.opf' in x][0] if opf: - opf_raw = cStringIO.StringIO(zf.read(opf)).getvalue() - soup = BeautifulSoup(opf_raw) + opf_raw = cStringIO.StringIO(zf.read(opf)) + soup = BeautifulSoup(opf_raw.getvalue()) + opf_raw.close() title = soup.find('dc:title').renderContents() author = soup.find('dc:creator').renderContents() ts = soup.find('meta',attrs={'name':'calibre:timestamp'}) @@ -1428,7 +1489,7 @@ class ITUNES(DevicePlugin): hits = dev_books.Search(search['uuid'],self.SearchField.index('All')) if hits: hit = hits[0] - self.log.info(" found '%s' by %s (%s)" % (hit.Name, hit.Artist, hit.Composer)) + self.log.info(" found '%s' by %s (%s)" % (hit.Name, hit.Artist, hit.Composer)) return hit # Try by author - there could be multiple hits @@ -1437,9 +1498,25 @@ class ITUNES(DevicePlugin): for hit in hits: if hit.Name == search['title']: if DEBUG: - self.log.info(" found '%s' by %s (%s)" % (hit.Name, hit.Artist, hit.Composer)) + self.log.info(" found '%s' by %s (%s)" % (hit.Name, hit.Artist, hit.Composer)) return hit + # PDF metadata was rewritten at export as 'safe(title) - safe(author)' + if search['format'] == 'pdf': + title = re.sub(r'[^0-9a-zA-Z ]', '_', search['title']) + author = re.sub(r'[^0-9a-zA-Z ]', '_', search['author']) + if DEBUG: + self.log.info(" searching by name: '%s - %s'" % (title,author)) + hits = dev_books.Search('%s - %s' % (title,author), + self.SearchField.index('All')) + if hits: + hit = hits[0] + self.log.info(" found '%s' by %s (%s)" % (hit.Name, hit.Artist, hit.Composer)) + return hit + else: + if DEBUG: + self.log.info(" no PDF hits") + attempts -= 1 time.sleep(0.5) if DEBUG: @@ -1496,7 +1573,7 @@ class ITUNES(DevicePlugin): if hits: hit = hits[0] if DEBUG: - self.log.info(" found '%s' by %s (%s)" % (hit.Name, hit.Artist, hit.Composer)) + self.log.info(" found '%s' by %s (%s)" % (hit.Name, hit.Artist, hit.Composer)) return hit if DEBUG: @@ -1506,9 +1583,25 @@ class ITUNES(DevicePlugin): for hit in hits: if hit.Name == search['title']: if DEBUG: - self.log.info(" found '%s' by %s (%s)" % (hit.Name, hit.Artist, hit.Composer)) + self.log.info(" found '%s' by %s (%s)" % (hit.Name, hit.Artist, hit.Composer)) return hit + # PDF metadata was rewritten at export as 'safe(title) - safe(author)' + if search['format'] == 'pdf': + title = re.sub(r'[^0-9a-zA-Z ]', '_', search['title']) + author = re.sub(r'[^0-9a-zA-Z ]', '_', search['author']) + if DEBUG: + self.log.info(" searching by name: %s - %s" % (title,author)) + hits = lib_books.Search('%s - %s' % (title,author), + self.SearchField.index('All')) + if hits: + hit = hits[0] + self.log.info(" found '%s' by %s (%s)" % (hit.Name, hit.Artist, hit.Composer)) + return hit + else: + if DEBUG: + self.log.info(" no PDF hits") + attempts -= 1 time.sleep(0.5) if DEBUG: @@ -1523,10 +1616,12 @@ class ITUNES(DevicePlugin): Convert iTunes artwork to thumbnail Cache generated thumbnails cache_dir = os.path.join(config_dir, 'caches', 'itunes') + as of iTunes 9.2, iBooks 1.1, can't set artwork for PDF files via automation ''' archive_path = os.path.join(self.cache_dir, "thumbs.zip") thumb_path = book_path.rpartition('.')[0] + '.jpg' + format = book_path.rpartition('.')[2].lower() try: zfr = ZipFile(archive_path) @@ -1539,77 +1634,99 @@ class ITUNES(DevicePlugin): self.log.info(" ITUNES._generate_thumbnail()") if isosx: - try: - # Resize the cover - data = book.artworks[1].raw_data().data - #self._dump_hex(data[:256]) - im = PILImage.open(cStringIO.StringIO(data)) - scaled, width, height = fit_image(im.size[0],im.size[1], 60, 80) - im = im.resize((int(width),int(height)), PILImage.ANTIALIAS) - thumb = cStringIO.StringIO() - im.convert('RGB').save(thumb,'JPEG') - - # Cache the tagged thumb - if DEBUG: - self.log.info(" generated thumb for '%s', caching" % book.name()) - zfw.writestr(thumb_path, thumb.getvalue()) - zfw.close() - return thumb.getvalue() - except: - self.log.error(" error generating thumb for '%s'" % book.name()) + if format == 'epub': try: + if False: + self.log.info(" fetching artwork from %s\n %s" % (book_path,book)) + # Resize the cover + data = book.artworks[1].raw_data().data + #self._dump_hex(data[:256]) + img_data = cStringIO.StringIO(data) + im = PILImage.open(img_data) + scaled, width, height = fit_image(im.size[0],im.size[1], 60, 80) + im = im.resize((int(width),int(height)), PILImage.ANTIALIAS) + img_data.close() + + thumb = cStringIO.StringIO() + im.convert('RGB').save(thumb,'JPEG') + thumb_data = thumb.getvalue() + thumb.close() + + # Cache the tagged thumb + if DEBUG: + self.log.info(" generated thumb for '%s', caching" % book.name()) + zfw.writestr(thumb_path, thumb_data) zfw.close() + return thumb_data except: - pass + self.log.error(" error generating thumb for '%s'" % book.name()) + try: + zfw.close() + except: + pass + return None + else: + if DEBUG: + self.log.info(" unable to generate PDF thumbs") return None elif iswindows: if not book.Artwork.Count: if DEBUG: - self.log.info(" no artwork available") + self.log.info(" no artwork available for '%s'" % book.Name) return None - # Save the cover from iTunes - try: - tmp_thumb = os.path.join(tempfile.gettempdir(), "thumb.%s" % self.ArtworkFormat[book.Artwork.Item(1).Format]) - book.Artwork.Item(1).SaveArtworkToFile(tmp_thumb) - # Resize the cover - im = PILImage.open(tmp_thumb) - scaled, width, height = fit_image(im.size[0],im.size[1], 60, 80) - im = im.resize((int(width),int(height)), PILImage.ANTIALIAS) - thumb = cStringIO.StringIO() - im.convert('RGB').save(thumb,'JPEG') - os.remove(tmp_thumb) - - # Cache the tagged thumb - if DEBUG: - self.log.info(" generated thumb for '%s', caching" % book.Name) - zfw.writestr(thumb_path, thumb.getvalue()) - zfw.close() - return thumb.getvalue() - except: - self.log.error(" error generating thumb for '%s'" % book.Name) + if format == 'epub': + # Save the cover from iTunes try: + tmp_thumb = os.path.join(tempfile.gettempdir(), "thumb.%s" % self.ArtworkFormat[book.Artwork.Item(1).Format]) + book.Artwork.Item(1).SaveArtworkToFile(tmp_thumb) + # Resize the cover + im = PILImage.open(tmp_thumb) + scaled, width, height = fit_image(im.size[0],im.size[1], 60, 80) + im = im.resize((int(width),int(height)), PILImage.ANTIALIAS) + thumb = cStringIO.StringIO() + im.convert('RGB').save(thumb,'JPEG') + thumb_data = thmb.getvalue() + os.remove(tmp_thumb) + thumb.close() + + # Cache the tagged thumb + if DEBUG: + self.log.info(" generated thumb for '%s', caching" % book.Name) + zfw.writestr(thumb_path, thumb_data) zfw.close() + return thumb_data except: - pass + self.log.error(" error generating thumb for '%s'" % book.Name) + try: + zfw.close() + except: + pass + return None + else: + if DEBUG: + self.log.info(" unable to generate PDF thumbs") return None def _get_device_book_size(self, file, compressed_size): ''' Calculate the exploded size of file ''' - myZip = ZipFile(file,'r') - myZipList = myZip.infolist() - exploded_file_size = 0 - for file in myZipList: - exploded_file_size += file.file_size - if False: - self.log.info(" ITUNES._get_device_book_size()") - self.log.info(" %d items in archive" % len(myZipList)) - self.log.info(" compressed: %d exploded: %d" % (compressed_size, exploded_file_size)) - myZip.close() + exploded_file_size = compressed_size + format = file.rpartition('.')[2].lower() + if format == 'epub': + myZip = ZipFile(file,'r') + myZipList = myZip.infolist() + exploded_file_size = 0 + for file in myZipList: + exploded_file_size += file.file_size + if False: + self.log.info(" ITUNES._get_device_book_size()") + self.log.info(" %d items in archive" % len(myZipList)) + self.log.info(" compressed: %d exploded: %d" % (compressed_size, exploded_file_size)) + myZip.close() return exploded_file_size def _get_device_books(self): @@ -1701,7 +1818,7 @@ class ITUNES(DevicePlugin): self.log.error(" no iPad|Books playlist found") return pl - def _get_fpath(self,file, metadata, update_md=False): + def _get_fpath(self,file, metadata, format, update_md=False): ''' If the database copy will be deleted after upload, we have to use file (the PersistentTemporaryFile), which will be around until @@ -1723,9 +1840,9 @@ class ITUNES(DevicePlugin): else: # Recipe - PTF if DEBUG: - self.log.info(" file will be deleted after upload") + self.log.info(" file will be deleted after upload") - if update_md: + if format == 'epub' and update_md: self._update_epub_metadata(fpath, metadata) return fpath @@ -1950,10 +2067,12 @@ class ITUNES(DevicePlugin): # Read the current storage path for iTunes media from the XML file with open(self.iTunes.LibraryXMLPath, 'r') as xml: - soup = BeautifulSoup(xml.read().decode('utf-8')) - mf = soup.find('key',text="Music Folder").parent - string = mf.findNext('string').renderContents() - media_dir = os.path.abspath(string[len('file://localhost/'):].replace('%20',' ')) + for line in xml: + if line.strip().startswith('Music Folder'): + soup = BeautifulSoup(line) + string = soup.find('string').renderContents() + media_dir = os.path.abspath(string[len('file://localhost/'):].replace('%20',' ')) + break if os.path.exists(media_dir): self.iTunes_media = media_dir else: @@ -2028,7 +2147,9 @@ class ITUNES(DevicePlugin): # Delete existing from Library|Books, add to self.update_list # for deletion from booklist[0] during add_books_to_metadata for book in self.cached_books: - if self.cached_books[book]['uuid'] == metadata.uuid: + if (self.cached_books[book]['uuid'] == metadata.uuid) or \ + (self.cached_books[book]['title'] == metadata.title and \ + self.cached_books[book]['author'] == metadata.authors[0]): self.update_list.append(self.cached_books[book]) self._remove_from_iTunes(self.cached_books[book]) if DEBUG: @@ -2036,7 +2157,7 @@ class ITUNES(DevicePlugin): break else: if DEBUG: - self.log.info(" '%s' not in cached_books" % metadata.title) + self.log.info(" '%s' not found in cached_books" % metadata.title) def _remove_from_device(self, cached_book): ''' @@ -2158,12 +2279,14 @@ class ITUNES(DevicePlugin): fnames = zf_opf.namelist() opf = [x for x in fnames if '.opf' in x][0] if opf: - opf_raw = cStringIO.StringIO(zf_opf.read(opf)).getvalue() - soup = BeautifulSoup(opf_raw) + opf_raw = cStringIO.StringIO(zf_opf.read(opf)) + soup = BeautifulSoup(opf_raw.getvalue()) + opf_raw.close() + + # Touch existing calibre timestamp md = soup.find('metadata') ts = md.find('meta',attrs={'name':'calibre:timestamp'}) if ts: - # Touch existing calibre timestamp timestamp = ts['content'] old_ts = parse_date(timestamp) metadata.timestamp = datetime.datetime(old_ts.year, old_ts.month, old_ts.day, old_ts.hour, @@ -2172,6 +2295,15 @@ class ITUNES(DevicePlugin): metadata.timestamp = isoformat(now()) if DEBUG: self.log.info(" add timestamp: %s" % metadata.timestamp) + + # Fix the language declaration for iBooks 1.1 + patched_language = 'en-US' + language = md.find('dc:language') + if language: + self.log.info(" changing from '%s' to '%s'" % + (language.renderContents(),patched_language)) + metadata.language = patched_language + zf_opf.close() # If 'News' in tags, tweak the title/author for friendlier display in iBooks @@ -2257,6 +2389,9 @@ class ITUNES(DevicePlugin): lb_added.enabled.set(True) lb_added.sort_artist.set(metadata.author_sort.title()) lb_added.sort_name.set(this_book.title_sorter) + if this_book.format == 'pdf': + lb_added.artist.set(metadata.authors[0]) + lb_added.name.set(metadata.title) if db_added: db_added.album.set(metadata.title) @@ -2265,6 +2400,9 @@ class ITUNES(DevicePlugin): db_added.enabled.set(True) db_added.sort_artist.set(metadata.author_sort.title()) db_added.sort_name.set(this_book.title_sorter) + if this_book.format == 'pdf': + db_added.artist.set(metadata.authors[0]) + db_added.name.set(metadata.title) if metadata.comments: if lb_added: @@ -2284,7 +2422,9 @@ class ITUNES(DevicePlugin): # Set genre from series if available, else first alpha tag # Otherwise iTunes grabs the first dc:subject from the opf metadata - if self.use_series_data and metadata.series: + if self.use_series_as_category and metadata.series: + if DEBUG: + self.log.info(" using Series name as Genre") if lb_added: lb_added.sort_name.set("%s %03d" % (metadata.series, metadata.series_index)) lb_added.genre.set(metadata.series) @@ -2298,6 +2438,8 @@ class ITUNES(DevicePlugin): db_added.episode_number.set(metadata.series_index) elif metadata.tags: + if DEBUG: + self.log.info(" using Tag as Genre") for tag in metadata.tags: if self._is_alpha(tag[0]): if lb_added: @@ -2314,6 +2456,9 @@ class ITUNES(DevicePlugin): lb_added.Enabled = True lb_added.SortArtist = (metadata.author_sort.title()) lb_added.SortName = (this_book.title_sorter) + if this_book.format == 'pdf': + lb_added.Artist = metadata.authors[0] + lb_added.Name = metadata.title if db_added: db_added.Album = metadata.title @@ -2322,6 +2467,9 @@ class ITUNES(DevicePlugin): db_added.Enabled = True db_added.SortArtist = (metadata.author_sort.title()) db_added.SortName = (this_book.title_sorter) + if this_book.format == 'pdf': + db_added.Artist = metadata.authors[0] + db_added.Name = metadata.title if metadata.comments: if lb_added: @@ -2345,7 +2493,9 @@ class ITUNES(DevicePlugin): # Otherwise iBooks uses first from opf # iTunes balks on setting EpisodeNumber, but it sticks (9.1.1.12) - if self.use_series_data and metadata.series: + if self.use_series_as_category and metadata.series: + if DEBUG: + self.log.info(" using Series name as Genre") if lb_added: lb_added.SortName = "%s %03d" % (metadata.series, metadata.series_index) lb_added.Genre = metadata.series @@ -2365,6 +2515,8 @@ class ITUNES(DevicePlugin): self.log.warning(" iTunes automation interface reported an error" " setting EpisodeNumber on iDevice") elif metadata.tags: + if DEBUG: + self.log.info(" using Tag as Genre") for tag in metadata.tags: if self._is_alpha(tag[0]): if lb_added: diff --git a/src/calibre/ebooks/oeb/stylizer.py b/src/calibre/ebooks/oeb/stylizer.py index d6070efade..4560c608a5 100644 --- a/src/calibre/ebooks/oeb/stylizer.py +++ b/src/calibre/ebooks/oeb/stylizer.py @@ -127,15 +127,12 @@ class Stylizer(object): else: head = [] - # GwR : Add webkit profile to cssutils before validating - if True: - wk_macros = { - 'border-width': '{length}|thin|medium|thick' - } - wk_props = { - '-webkit-border-radius': r'{border-width}(\s+{border-width}){0,3}|inherit' - } - cssutils.profile.addProfile('webkit', wk_props, wk_macros) + # Add optional cssutils parsing profile from output_profile + if hasattr(self.opts.output_profile, 'cssutils_addProfile'): + profile = self.opts.output_profile.cssutils_addProfile + cssutils.profile.addProfile(profile['name'], + profile['props'], + profile['macros']) parser = cssutils.CSSParser(fetcher=self._fetch_css_file, log=logging.getLogger('calibre.css')) diff --git a/src/calibre/gui2/actions.py b/src/calibre/gui2/actions.py index f838e9c1fe..a3f8442200 100644 --- a/src/calibre/gui2/actions.py +++ b/src/calibre/gui2/actions.py @@ -176,7 +176,8 @@ class AnnotationsAction(object): # {{{ def mark_book_as_read(self,id): read_tag = gprefs.get('catalog_epub_mobi_read_tag') - self.db.set_tags(id, [read_tag], append=True) + if read_tag: + self.db.set_tags(id, [read_tag], append=True) def canceled(self): self.pd.hide() diff --git a/src/calibre/web/feeds/news.py b/src/calibre/web/feeds/news.py index 29b581c361..78058a95ec 100644 --- a/src/calibre/web/feeds/news.py +++ b/src/calibre/web/feeds/news.py @@ -280,46 +280,6 @@ class BasicNewsRecipe(Recipe): } ''' - #: The CSS that is used to style the touchscreen elements, i.e., the navigation bars and - #: the Feed summaries. - touchscreen_css = u''' - .article_navbar { - -webkit-border-radius:4px; - background-color:#eee; - border:1px solid #888; - margin-left: 5%; - margin-right: 5%; - width: 90%; - } - - .feed_navbar { - -webkit-border-radius:4px; - background-color:#eee; - border:1px solid #888; - margin-left: 5%; - margin-right: 5%; - width: 90%; - } - - .summary_headline { - font-weight:bold; text-align:left; - } - - .summary_byline { - text-align:left; - font-family:monospace; - } - - .summary_text { - text-align:left; - } - - .feed { - font-family:sans-serif; font-weight:bold; font-size:larger; - } - ''' - - #: By default, calibre will use a default image for the masthead (Kindle only). #: Override this in your recipe to provide a url to use as a masthead. masthead_url = None @@ -625,6 +585,8 @@ class BasicNewsRecipe(Recipe): self.lrf = options.lrf self.output_profile = options.output_profile self.touchscreen = getattr(self.output_profile, 'touchscreen', False) + if self.touchscreen and getattr(self.output_profile, 'touchscreen_css',False): + self.extra_css += self.output_profile.touchscreen_css self.output_dir = os.path.abspath(self.output_dir) if options.test: @@ -678,10 +640,8 @@ class BasicNewsRecipe(Recipe): if self.delay > 0: self.simultaneous_downloads = 1 - if self.touchscreen: - self.extra_css += self.touchscreen_css - - self.navbar = templates.TouchscreenNavBarTemplate() if self.touchscreen else templates.NavBarTemplate() + self.navbar = templates.TouchscreenNavBarTemplate() if self.touchscreen else \ + templates.NavBarTemplate() self.failed_downloads = [] self.partial_failures = [] @@ -768,7 +728,8 @@ class BasicNewsRecipe(Recipe): timefmt = self.timefmt if self.touchscreen: templ = templates.TouchscreenIndexTemplate() - timefmt = '%A, %d %b %Y' + if getattr(self.output_profile,'timefmt',False): + timefmt = self.output_profile.timefmt return templ.generate(self.title, "mastheadImage.jpg", timefmt, feeds, extra_css=css).render(doctype='xhtml') diff --git a/src/calibre/web/feeds/templates.py b/src/calibre/web/feeds/templates.py index 5b4704e766..26d4cbdc9d 100644 --- a/src/calibre/web/feeds/templates.py +++ b/src/calibre/web/feeds/templates.py @@ -3,6 +3,9 @@ __license__ = 'GPL v3' __copyright__ = '2008, Kovid Goyal ' + +import copy + from lxml import html, etree from lxml.html.builder import HTML, HEAD, TITLE, STYLE, DIV, BODY, \ STRONG, EM, BR, SPAN, A, HR, UL, LI, H2, IMG, P as PT, \ @@ -73,6 +76,7 @@ class EmbeddedContent(Template): class IndexTemplate(Template): def _generate(self, title, masthead, datefmt, feeds, extra_css=None, style=None): + self.IS_HTML = False if isinstance(datefmt, unicode): datefmt = datefmt.encode(preferred_encoding) date = strftime(datefmt) @@ -198,6 +202,9 @@ class NavBarTemplate(Template): class TouchscreenIndexTemplate(Template): def _generate(self, title, masthead, datefmt, feeds, extra_css=None, style=None): + + self.IS_HTML = False + if isinstance(datefmt, unicode): datefmt = datefmt.encode(preferred_encoding) date = '%s, %s %s, %s' % (strftime('%A'), strftime('%B'), strftime('%d').lstrip('0'), strftime('%Y')) @@ -238,6 +245,8 @@ class TouchscreenFeedTemplate(Template): tokens = title.split(' ') new_title_tokens = [] new_title_len = 0 + if len(tokens[0]) > clip: + return tokens[0][:clip] + '...' for token in tokens: if len(token) + new_title_len < clip: new_title_tokens.append(token) @@ -248,29 +257,37 @@ class TouchscreenFeedTemplate(Template): break return title + self.IS_HTML = False feed = feeds[f] # Construct the navbar - navbar_t = TABLE(CLASS('feed_navbar')) + navbar_t = TABLE(CLASS('touchscreen_navbar')) navbar_tr = TR() + # Previous Section link = '' if f > 0: - link = A(EM( '< ' + trim_title(feeds[f-1].title)), + link = A(CLASS('feed_link'), + trim_title(feeds[f-1].title), href = '../feed_%d/index.html' % int(f-1)) navbar_tr.append(TD(link, width="40%", align="center")) + # Up to Sections link = A(STRONG('Sections'), href="../index.html") navbar_tr.append(TD(link,width="20%",align="center")) + # Next Section link = '' if f < len(feeds)-1: - link = A(EM(trim_title(feeds[f+1].title) + ' >'), + link = A(CLASS('feed_link'), + trim_title(feeds[f+1].title), href = '../feed_%d/index.html' % int(f+1)) - navbar_tr.append(TD(link, width="40%", align="center")) - + navbar_tr.append(TD(link, width="40%", align="center", )) navbar_t.append(navbar_tr) - navbar = navbar_t + top_navbar = navbar_t + bottom_navbar = copy.copy(navbar_t) + #print "\n%s\n" % etree.tostring(navbar_t, pretty_print=True) + # Build the page head = HEAD(TITLE(feed.title)) @@ -280,8 +297,8 @@ class TouchscreenFeedTemplate(Template): head.append(STYLE(extra_css, type='text/css')) body = BODY(style='page-break-before:always') div = DIV( - H2(feed.title, CLASS('calibre_feed_title', 'calibre_rescale_160')), - DIV(style="border-top:1px solid gray;border-bottom:1em solid white") + top_navbar, + H2(feed.title, CLASS('feed_title')) ) body.append(div) @@ -317,9 +334,8 @@ class TouchscreenFeedTemplate(Template): toc.append(tr) div.append(toc) - #div.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) div.append(BR()) - div.append(navbar) + div.append(bottom_navbar) self.root = HTML(head, body) class TouchscreenNavBarTemplate(Template): @@ -334,24 +350,23 @@ class TouchscreenNavBarTemplate(Template): head.append(STYLE(extra_css, type='text/css')) navbar = DIV() - if bottom: - navbar.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) - - navbar_t = TABLE(CLASS('article_navbar')) + navbar_t = TABLE(CLASS('touchscreen_navbar')) navbar_tr = TR() + # | Previous if art > 0: href = '%s../article_%d/index.html'%(prefix, art-1) - navbar_tr.append(TD(A(EM('< Previous'), href=href), width="32%", align="center")) + navbar_tr.append(TD(A(EM('Previous'),href=href), + width="32%")) else: - navbar_tr.append(TD('', width="25%")) + navbar_tr.append(TD('', width="32%")) # | Articles | Sections | href = '%s../index.html#article_%d'%(prefix, art) - navbar_tr.append(TD(A(STRONG('Articles'), href=href),width="18%", align="center")) + navbar_tr.append(TD(A(STRONG('Articles'), href=href),width="18%")) href = '%s../../index.html#feed_%d'%(prefix, feed) - navbar_tr.append(TD(A(STRONG('Sections'), href=href),width="18%", align="center")) + navbar_tr.append(TD(A(STRONG('Sections'), href=href),width="18%")) # | Next next = 'feed_%d'%(feed+1) if art == number_of_articles_in_feed - 1 \ @@ -359,7 +374,8 @@ class TouchscreenNavBarTemplate(Template): up = '../..' if art == number_of_articles_in_feed - 1 else '..' href = '%s%s/%s/index.html'%(prefix, up, next) - navbar_tr.append(TD(A(EM('Next >'), href=href),width="32%", align="center")) + navbar_tr.append(TD(A(EM('Next'),href=href), + width="32%")) navbar_t.append(navbar_tr) navbar.append(navbar_t) #print "\n%s\n" % etree.tostring(navbar, pretty_print=True) From 1a9a74b849765d879fbde6c3d9fbe163add805e0 Mon Sep 17 00:00:00 2001 From: GRiker Date: Tue, 22 Jun 2010 11:43:49 -0600 Subject: [PATCH 06/10] GwR wip --- resources/default_tweaks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/default_tweaks.py b/resources/default_tweaks.py index d2f2667222..b9f58178f7 100644 --- a/resources/default_tweaks.py +++ b/resources/default_tweaks.py @@ -77,4 +77,4 @@ title_series_sorting = 'library_order' # If set to 'True', a Book's Series name will be used as the Genre # If set to 'False', the book's first tag beginning with an alpha character will # be used as the Genre -ITUNES_use_series_as_category = True +ITUNES_use_series_as_category = False From 40718a915a1aa3cb695a6401d10a0fe65ae65131 Mon Sep 17 00:00:00 2001 From: GRiker Date: Tue, 22 Jun 2010 11:44:44 -0600 Subject: [PATCH 07/10] GwR wip --- resources/default_tweaks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/default_tweaks.py b/resources/default_tweaks.py index b9f58178f7..ac5ba8e898 100644 --- a/resources/default_tweaks.py +++ b/resources/default_tweaks.py @@ -74,7 +74,7 @@ title_series_sorting = 'library_order' # Apple iTunes/iDevice # Control whether Series name is used as Genre in iTunes/iBooks -# If set to 'True', a Book's Series name will be used as the Genre +# If set to 'True', a Book's Series name (if one exists) will be used as the Genre # If set to 'False', the book's first tag beginning with an alpha character will # be used as the Genre ITUNES_use_series_as_category = False From 60cb1c2fbe167b4ac03b4b60144e00993ce247ac Mon Sep 17 00:00:00 2001 From: GRiker Date: Tue, 22 Jun 2010 16:15:10 -0600 Subject: [PATCH 08/10] GwR revisions wip --- resources/default_tweaks.py | 7 -- src/calibre/devices/apple/driver.py | 104 ++++++++++++++++++++++++--- src/calibre/devices/kindle/driver.py | 1 + 3 files changed, 97 insertions(+), 15 deletions(-) diff --git a/resources/default_tweaks.py b/resources/default_tweaks.py index ac5ba8e898..bda839b28f 100644 --- a/resources/default_tweaks.py +++ b/resources/default_tweaks.py @@ -71,10 +71,3 @@ gui_pubdate_display_format = 'MMM yyyy' # order until the title is edited. Double-clicking on a title and hitting return # without changing anything is sufficient to change the sort. title_series_sorting = 'library_order' - -# Apple iTunes/iDevice -# Control whether Series name is used as Genre in iTunes/iBooks -# If set to 'True', a Book's Series name (if one exists) will be used as the Genre -# If set to 'False', the book's first tag beginning with an alpha character will -# be used as the Genre -ITUNES_use_series_as_category = False diff --git a/src/calibre/devices/apple/driver.py b/src/calibre/devices/apple/driver.py index 91cfba98f1..3b37289dab 100644 --- a/src/calibre/devices/apple/driver.py +++ b/src/calibre/devices/apple/driver.py @@ -10,12 +10,13 @@ from calibre.constants import __appname__, __version__, DEBUG from calibre import fit_image from calibre.constants import isosx, iswindows from calibre.devices.errors import UserFeedback +from calibre.devices.usbms.deviceconfig import DeviceConfig from calibre.devices.interface import DevicePlugin from calibre.ebooks.BeautifulSoup import BeautifulSoup from calibre.ebooks.metadata import MetaInformation from calibre.ebooks.metadata.epub import set_metadata from calibre.library.server.utils import strftime -from calibre.utils.config import Config, config_dir, tweaks +from calibre.utils.config import Config, ConfigProxy, config_dir from calibre.utils.date import isoformat, now, parse_date from calibre.utils.logging import Log from calibre.utils.zipfile import ZipFile @@ -34,7 +35,7 @@ if iswindows: import pythoncom, win32com.client -class ITUNES(DevicePlugin): +class ITUNES(DeviceConfig, DevicePlugin): ''' Calling sequences: Initialization: @@ -85,6 +86,15 @@ class ITUNES(DevicePlugin): FORMATS = ['epub','pdf'] + # Configuration + HELP_MESSAGE = _('Configure Device') + EXTRA_CUSTOMIZATION_MESSAGE = None + EXTRA_CUSTOMIZATION_DEFAULT = None + MUST_READ_METADATA = False + SAVE_TEMPLATE = '{title}' + SUPPORTS_SUB_DIRS = False + SUPPORTS_USE_AUTHOR_SORT = False + # Product IDs: # 0x1292:iPhone 3G # 0x129a:iPad @@ -163,7 +173,7 @@ class ITUNES(DevicePlugin): sources = None update_msg = None update_needed = False - use_series_as_category = tweaks['ITUNES_use_series_as_category'] + use_series_as_category = False # Public methods def add_books_to_metadata(self, locations, metadata, booklists): @@ -512,6 +522,29 @@ class ITUNES(DevicePlugin): ''' return (None,None) + def config_widget(self): + ''' + Return a QWidget with settings for the device interface + ''' + if DEBUG: + self.log.info("ITUNES.config_widget()") + from calibre.gui2.device_drivers.configwidget import ConfigWidget + cw = ConfigWidget(self.settings(), self.FORMATS, self.SUPPORTS_SUB_DIRS, + self.MUST_READ_METADATA, self.SUPPORTS_USE_AUTHOR_SORT, + self.EXTRA_CUSTOMIZATION_MESSAGE) + # Turn off the Save template + cw.opt_save_template.setVisible(False) + cw.label.setVisible(False) + + # Repurpose the checkbox + cw.opt_read_metadata.setText("Use Series as Genre in iTunes/iBooks") + return cw + + def customization_help(self,gui=False): + if DEBUG: + self.log.info("ITUNES.customization_help()") + return _('Configure Device') + def delete_books(self, paths, end_session=True): ''' Delete books at paths on device. @@ -741,16 +774,45 @@ class ITUNES(DevicePlugin): ''' self.report_progress = report_progress + def save_settings(self, settings_widget): + ''' + Should save settings to disk. Takes the widget created in config_widget + and saves all settings to disk. + ''' + if DEBUG: + self.log.info("ITUNES.save_settings()") + proxy = self._configProxy() + proxy['format_map'] = settings_widget.format_map() + if self.SUPPORTS_SUB_DIRS: + proxy['use_subdirs'] = settings_widget.use_subdirs() + if not self.MUST_READ_METADATA: + proxy['read_metadata'] = settings_widget.read_metadata() + if self.SUPPORTS_USE_AUTHOR_SORT: + proxy['use_author_sort'] = settings_widget.use_author_sort() + if self.EXTRA_CUSTOMIZATION_MESSAGE: + ec = unicode(settings_widget.opt_extra_customization.text()).strip() + if not ec: + ec = None + proxy['extra_customization'] = ec + st = unicode(settings_widget.opt_save_template.text()) + proxy['save_template'] = st + + # Snag the read_metadata check box contents on the way by + self.use_series_as_category = settings_widget.read_metadata() + def settings(self): ''' Should return an opts object. The opts object should have one attribute `format_map` which is an ordered list of formats for the device. ''' - klass = self if isinstance(self, type) else self.__class__ - c = Config('device_drivers_%s' % klass.__name__, _('settings for device drivers')) - c.add_opt('format_map', default=self.FORMATS, - help=_('Ordered list of formats the device will accept')) - return c.parse() + if DEBUG: + self.log.info("ITUNES.settings()") + opts = self._config().parse() + + # Repurpose the read_metadata check box + self.use_series_as_category = opts.read_metadata + + return opts def sync_booklists(self, booklists, end_session=True): ''' @@ -1067,6 +1129,27 @@ class ITUNES(DevicePlugin): return db_added, lb_added + def _config(self): + klass = self if isinstance(self, type) else self.__class__ + c = Config('device_drivers_%s' % klass.__name__, _('settings for device drivers')) + c.add_opt('format_map', default=self.FORMATS, + help=_('Ordered list of formats the device will accept')) + c.add_opt('use_subdirs', default=True, + help=_('Place files in sub directories if the device supports them')) + c.add_opt('read_metadata', default=True, + help=_('Use Series as Genre in iTunes/iBooks')) + c.add_opt('use_author_sort', default=False, + help=_('Use author sort instead of author')) + c.add_opt('save_template', default=self._default_save_template(), + help=_('Template to control how books are titled in iTunes/iBooks')) + c.add_opt('extra_customization', + default=self.EXTRA_CUSTOMIZATION_DEFAULT, + help=_('Extra customization')) + return c + + def _configProxy(self): + return ConfigProxy(self._config()) + def _cover_to_thumb(self, path, metadata, db_added, lb_added, format): ''' assumes pythoncom wrapper for db_added @@ -1217,6 +1300,11 @@ class ITUNES(DevicePlugin): return this_book + def _default_save_template(self): + from calibre.library.save_to_disk import config + return self.SAVE_TEMPLATE if self.SAVE_TEMPLATE else \ + config().parse().send_template + def _delete_iTunesMetadata_plist(self,fpath): ''' Delete the plist file from the file to force recache diff --git a/src/calibre/devices/kindle/driver.py b/src/calibre/devices/kindle/driver.py index cd56d210e1..c3e7bb190d 100644 --- a/src/calibre/devices/kindle/driver.py +++ b/src/calibre/devices/kindle/driver.py @@ -429,6 +429,7 @@ class Bookmark(): entries, = unpack('>I', data[9:13]) current_entry = 0 e_base = 0x0d + self.pdf_page_offset = 0 while current_entry < entries: ''' location, = unpack('>I', data[e_base+2:e_base+6]) From e5a47a8de286abdcac3ed890fb18064e12cec3d5 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 22 Jun 2010 16:18:41 -0600 Subject: [PATCH 09/10] Fix #5943 (markdown link in TXT input preferences page does not work.) --- src/calibre/gui2/convert/txt_input.ui | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/calibre/gui2/convert/txt_input.ui b/src/calibre/gui2/convert/txt_input.ui index 5a9527ebc5..186783c277 100644 --- a/src/calibre/gui2/convert/txt_input.ui +++ b/src/calibre/gui2/convert/txt_input.ui @@ -43,6 +43,9 @@ true + + true + From 800256ab65fd3a0d6274433ff0537abc8134ec95 Mon Sep 17 00:00:00 2001 From: John Schember Date: Tue, 22 Jun 2010 20:35:48 -0400 Subject: [PATCH 10/10] Reduce size of quick start guide. --- resources/quick_start.epub | Bin 773058 -> 129993 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/resources/quick_start.epub b/resources/quick_start.epub index d5aeec5457369673aadefc53633c0e0deb3f53d9..589fd1d0dc6e1c222e00014bfd3162a7fe70bcbb 100644 GIT binary patch delta 109142 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

Qj!DhyYH}xt#>1kt)m$-57y=c4Lcw=Qp{55kW7y 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%0DS4 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

X=3~sB&yO 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