Implement #3444 (More Information on Metadata page)

This commit is contained in:
Kovid Goyal 2009-09-10 19:53:09 -06:00
parent 12eb3bf6a0
commit 145fb221d2
2 changed files with 20 additions and 1 deletions

BIN
resources/images/star.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -8,6 +8,7 @@ __docformat__ = 'restructuredtext en'
import textwrap
from xml.sax.saxutils import escape
from itertools import repeat
from lxml import etree
@ -31,6 +32,7 @@ class Jacket(object):
<h1 class="calibre_rescale_180">%(title)s</h1>
<h2 class="calibre_rescale_140">%(jacket)s</h2>
<div class="calibre_rescale_100">%(series)s</div>
<div class="calibre_rescale_100">%(rating)s</div>
<div class="calibre_rescale_100">%(tags)s</div>
</div>
<div style="margin-top:2em" class="calibre_rescale_100">
@ -54,6 +56,23 @@ class Jacket(object):
img.getparent().remove(img)
return
def get_rating(self, rating):
ans = ''
if rating is None:
return
try:
num = float(rating)/2
except:
return ans
num = max(0, num)
num = min(num, 5)
if num < 1:
return ans
id, href = self.oeb.manifest.generate('star', 'star.png')
self.oeb.manifest.add(id, href, 'image/png', data=I('star.png', data=True))
ans = 'Rating: ' + ''.join(repeat('<img style="vertical-align:text-top" alt="star" src="%s" />'%href, num))
return ans
def insert_metadata(self, mi):
self.log('Inserting metadata into book...')
comments = mi.comments
@ -87,7 +106,7 @@ class Jacket(object):
html = self.JACKET_TEMPLATE%dict(xmlns=XPNSMAP['h'],
title=escape(title), comments=escape(comments),
jacket=escape(_('Book Jacket')), series=series,
tags=tags)
tags=tags, rating=self.get_rating(mi.rating))
id, href = self.oeb.manifest.generate('jacket', 'jacket.xhtml')
root = etree.fromstring(html)
item = self.oeb.manifest.add(id, href, guess_type(href)[0], data=root)