diff --git a/imgsrc/rating.svg b/imgsrc/rating.svg new file mode 100644 index 0000000000..d289c71b99 --- /dev/null +++ b/imgsrc/rating.svg @@ -0,0 +1,589 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/rating.png b/resources/images/rating.png new file mode 100644 index 0000000000..81eba505b9 Binary files /dev/null and b/resources/images/rating.png differ diff --git a/resources/images/star.png b/resources/images/star.png deleted file mode 100644 index 6eb1fb890f..0000000000 Binary files a/resources/images/star.png and /dev/null differ diff --git a/src/calibre/ebooks/oeb/transforms/jacket.py b/src/calibre/ebooks/oeb/transforms/jacket.py index dd1b14a736..a44a18db95 100644 --- a/src/calibre/ebooks/oeb/transforms/jacket.py +++ b/src/calibre/ebooks/oeb/transforms/jacket.py @@ -8,16 +8,13 @@ __docformat__ = 'restructuredtext en' import sys from xml.sax.saxutils import escape -from itertools import repeat from lxml import etree from calibre import guess_type, strftime -from calibre.constants import __appname__, __version__ from calibre.ebooks.BeautifulSoup import BeautifulSoup from calibre.ebooks.oeb.base import XPath, XHTML_NS, XHTML from calibre.library.comments import comments_to_html -from calibre.utils.magick.draw import save_cover_data_to JACKET_XPATH = '//h:meta[@name="calibre-content" and @content="jacket"]' @@ -51,26 +48,24 @@ class Jacket(object): def insert_metadata(self, mi): self.log('Inserting metadata into book...') - fname = 'star.png' - img = I(fname, data=True) - - if self.opts.output_profile.short_name == 'kindle': - fname = 'star.jpg' - img = save_cover_data_to(img, fname, - return_data=True) - - - id, href = self.oeb.manifest.generate('calibre_jacket_star', fname) - self.oeb.manifest.add(id, href, guess_type(fname)[0], data=img) - try: tags = map(unicode, self.oeb.metadata.subject) except: tags = [] - root = render_jacket(mi, self.opts.output_profile, star_href=href, - alt_title=unicode(self.oeb.metadata.title[0]), alt_tags=tags, - alt_comments=unicode(self.oeb.metadata.description[0])) + try: + comments = unicode(self.oeb.metadata.description[0]) + except: + comments = '' + + try: + title = unicode(self.oeb.metadata.title[0]) + except: + title = _('Unknown') + + root = render_jacket(mi, self.opts.output_profile, + alt_title=title, alt_tags=tags, + alt_comments=comments) id, href = self.oeb.manifest.generate('calibre_jacket', 'jacket.xhtml') item = self.oeb.manifest.add(id, href, guess_type(href)[0], data=root) @@ -98,7 +93,7 @@ class Jacket(object): # Render Jacket {{{ -def get_rating(rating, href): +def get_rating(rating): ans = '' try: num = float(rating)/2 @@ -109,16 +104,11 @@ def get_rating(rating, href): if num < 1: return ans - if href is not None: - ans = ' '.join(repeat( - 'star'% - href, int(num))) - else: - ans = u' '.join(u'\u2605') + ans = u'\u2605' * int(num) return ans -def render_jacket(mi, output_profile, star_href=None, +def render_jacket(mi, output_profile, alt_title=_('Unknown'), alt_tags=[], alt_comments=''): css = P('jacket/stylesheet.css', data=True).decode('utf-8') @@ -139,7 +129,7 @@ def render_jacket(mi, output_profile, star_href=None, except: pubdate = '' - rating = get_rating(mi.rating, star_href) + rating = get_rating(mi.rating) tags = mi.tags if mi.tags else alt_tags if tags: @@ -153,8 +143,6 @@ def render_jacket(mi, output_profile, star_href=None, if comments: comments = comments_to_html(comments) - footer = 'BOOK JACKET GENERATED BY %s %s' % (__appname__.upper(),__version__) - def generate_html(comments): args = dict(xmlns=XHTML_NS, title_str=title_str, @@ -165,7 +153,8 @@ def render_jacket(mi, output_profile, star_href=None, rating_label=_('Rating'), rating=rating, tags_label=_('Tags'), tags=tags, comments=comments, - footer = footer) + footer='' + ) generated_html = P('jacket/template.xhtml', data=True).decode('utf-8').format(**args) diff --git a/src/calibre/gui2/tag_view.py b/src/calibre/gui2/tag_view.py index 519d533ff6..6c50a71b92 100644 --- a/src/calibre/gui2/tag_view.py +++ b/src/calibre/gui2/tag_view.py @@ -376,7 +376,7 @@ class TagsModel(QAbstractItemModel): # {{{ 'series' : QIcon(I('series.png')), 'formats' : QIcon(I('book.png')), 'publisher' : QIcon(I('publisher.png')), - 'rating' : QIcon(I('star.png')), + 'rating' : QIcon(I('rating.png')), 'news' : QIcon(I('news.png')), 'tags' : QIcon(I('tags.png')), ':custom' : QIcon(I('column.png')),