diff --git a/src/calibre/ebooks/metadata/fetch.py b/src/calibre/ebooks/metadata/fetch.py index 86e7c99de5..96807c06ae 100644 --- a/src/calibre/ebooks/metadata/fetch.py +++ b/src/calibre/ebooks/metadata/fetch.py @@ -9,6 +9,7 @@ from threading import Thread from calibre import prints from calibre.utils.config import OptionParser from calibre.utils.logging import default_log +from calibre.utils.titlecase import titlecase from calibre.customize import Plugin from calibre.ebooks.metadata.covers import check_for_cover @@ -384,6 +385,16 @@ def search(title=None, author=None, publisher=None, isbn=None, isbndb_key=None, if r.pubdate is None: r.pubdate = pubdate + def fix_case(x): + if x and x.isupper(): + x = titlecase(x) + return x + + for r in results: + r.title = fix_case(r.title) + if r.authors: + r.authors = list(map(fix_case, r.authors)) + return results, [(x.name, x.exception, x.tb) for x in fetchers] def get_social_metadata(mi, verbose=0):