Merge pull request #239 from nhonaitran/SB237_unhandledExceptions

Issue #237: unhandled exception for missing "rights" key
This commit is contained in:
Lorenzo Di Fuccia 2020-11-23 21:12:13 +01:00 • committed by GitHub
commit f05a68d8ee
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -171,13 +171,13 @@ class Display:
def book_info(self, info):
description = self.parse_description(info["description"]).replace("\n", " ")
for t in [
("Title", info["title"]), ("Authors", ", ".join(aut["name"] for aut in info["authors"])),
("Identifier", info["identifier"]), ("ISBN", info["isbn"]),
("Publishers", ", ".join(pub["name"] for pub in info["publishers"])),
("Rights", info["rights"] if "rights" in info and info["rights"] else ""),
("Title", info.get("title", "")), ("Authors", ", ".join(aut.get("name", "") for aut in info.get("authors", []))),
("Identifier", info.get("identifier", "")), ("ISBN", info.get("isbn", "")),
("Publishers", ", ".join(pub.get("name", "") for pub in info.get("publishers", []))),
("Rights", info.get("rights", "")),
("Description", description[:500] + "..." if len(description) >= 500 else description),
("Release Date", info["issued"]),
("URL", info["web_url"])
("Release Date", info.get("issued", "")),
("URL", info.get("web_url", ""))
]:
self.info("{0}{1}{2}: {3}".format(self.SH_YELLOW, t[0], self.SH_DEFAULT, t[1]), True)
@ -951,18 +951,18 @@ class SafariBooks:
escape(aut["name"])
) for aut in self.book_info["authors"])
subjects = "\n".join("<dc:subject>{0}</dc:subject>".format(escape(sub["name"]))
for sub in self.book_info["subjects"])
subjects = "\n".join("<dc:subject>{0}</dc:subject>".format(escape(sub.get("name", "")))
for sub in self.book_info.get("subjects", []))
return self.CONTENT_OPF.format(
(self.book_info["isbn"] if self.book_info["isbn"] else self.book_id),
(self.book_info.get("isbn", self.book_id)),
escape(self.book_title),
authors,
escape(self.book_info["description"]),
escape(self.book_info.get("description", "")),
subjects,
", ".join(escape(pub["name"]) for pub in self.book_info["publishers"]),
escape(self.book_info["rights"]) if "rights" in self.book_info and self.book_info["rights"] else "",
self.book_info["issued"],
", ".join(escape(pub.get("name", "")) for pub in self.book_info.get("publishers", [])),
escape(self.book_info.get("rights", "")),
self.book_info.get("issued", ""),
self.cover,
"\n".join(manifest),
"\n".join(spine),