add node
This commit is contained in:
parent
cf34bd74d8
commit
da0d8193ee
|
@ -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:
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
Loading…
Reference in New Issue