Skip to content

Commit

Permalink
Merge pull request lorenzodifuccia#239 from nhonaitran/SB237_unhandle…
Browse files Browse the repository at this point in the history
…dExceptions

Issue lorenzodifuccia#237: unhandled exception for missing "rights" key
  • Loading branch information
lorenzodifuccia committed Nov 23, 2020
2 parents 7f7eab4 + 734a9f6 commit f05a68d
Showing 1 changed file with 13 additions and 13 deletions.
26 changes: 13 additions & 13 deletions safaribooks.py
Original file line number Diff line number Diff line change
Expand Up @@ -171,13 +171,13 @@ def parse_description(self, desc):
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)

Expand Down Expand Up @@ -951,18 +951,18 @@ def create_content_opf(self):
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),
Expand Down

0 comments on commit f05a68d

Please sign in to comment.