diff --git a/safaribooks.py b/safaribooks.py
index fc4bafa..cf399d1 100755
--- a/safaribooks.py
+++ b/safaribooks.py
@@ -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("{0}".format(escape(sub["name"]))
- for sub in self.book_info["subjects"])
+ subjects = "\n".join("{0}".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),