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),