This commit is contained in:
tianyu 2016-09-28 22:15:38 +08:00
parent cf34bd74d8
commit da0d8193ee
3 changed files with 34 additions and 0 deletions

View File

@ -7,6 +7,7 @@ from urllib.error import HTTPError
from amazon.api import AmazonAPI
import config
from node import Node
cache_dir = 'cache/'
@ -56,6 +57,21 @@ def lookup(book):
book.small_image_url = product.small_image_url
if product.languages:
book.languages = list(product.languages)
for browse_node in product.browse_nodes:
node = Node()
book.nodes.append(node)
while True:
node.id = browse_node.id
node.name = str(browse_node.name)
if not browse_node.is_category_root:
node.node = Node()
node = node.node
browse_node = browse_node.ancestor
else:
node.is_root = True
break
print('cached: ' + book.item_id + ' -> ' + book.title)
break
except HTTPError as e:

View File

@ -28,6 +28,7 @@ class Book:
publication_date = None
small_image_url = None
languages = None
nodes = []
def json(self):
return json.dumps(self, default=lambda o: o.__dict__, indent=2, ensure_ascii=False, sort_keys=True)

17
kindle/node.py Normal file
View File

@ -0,0 +1,17 @@
class Node:
node = None # ancestor
id = None
is_root = False
name = None
def dump(self):
return clean_dict(self.__dict__)
def clean_dict(d):
if not isinstance(d, dict):
return d
return dict((k, clean_dict(v)) for k, v in d.items() if v is not None)