diff --git a/src/calibre/ebooks/metadata/book/base.py b/src/calibre/ebooks/metadata/book/base.py index a031c4886d..7927517b22 100644 --- a/src/calibre/ebooks/metadata/book/base.py +++ b/src/calibre/ebooks/metadata/book/base.py @@ -563,8 +563,12 @@ class Metadata(object): def format_tags(self): return u', '.join([unicode(t) for t in sorted(self.tags, key=sort_key)]) - def format_rating(self): - return unicode(self.rating) + def format_rating(self, v=None, divide_by=1.0): + if v is None: + if self.rating is not None: + return unicode(self.rating/divide_by) + return u'None' + return unicode(v/divide_by) def format_field(self, key, series_with_index=True): ''' diff --git a/src/calibre/library/save_to_disk.py b/src/calibre/library/save_to_disk.py index 709e3645a6..b89e9c36f8 100644 --- a/src/calibre/library/save_to_disk.py +++ b/src/calibre/library/save_to_disk.py @@ -189,7 +189,7 @@ def get_components(template, mi, id, timefmt='%b %Y', length=250, else: template = re.sub(r'\{series_index[^}]*?\}', '', template) if mi.rating is not None: - format_args['rating'] = mi.format_rating() + format_args['rating'] = mi.format_rating(divide_by=2.0) if hasattr(mi.timestamp, 'timetuple'): format_args['timestamp'] = strftime(timefmt, mi.timestamp.timetuple()) if hasattr(mi.pubdate, 'timetuple'): @@ -211,6 +211,9 @@ def get_components(template, mi, id, timefmt='%b %Y', length=250, format_args[key] = strftime(timefmt, format_args[key].timetuple()) elif cm['datatype'] == 'bool': format_args[key] = _('yes') if format_args[key] else _('no') + elif cm['datatype'] == 'rating': + format_args[key] = mi.format_rating(format_args[key], + divide_by=2.0) elif cm['datatype'] in ['int', 'float']: if format_args[key] != 0: format_args[key] = unicode(format_args[key])