forked from maximebf/amazon-storefront-template
/
manage.py
executable file
·76 lines (57 loc) · 1.8 KB
/
manage.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/usr/bin/env python
from flask_script import Manager, Shell, Server
import amzstorefront
from amzstorefront import app, amazon
from amzstorefront.models import *
from amzstorefront.utils import *
import json
manager = Manager(app)
manager.add_command("runserver", Server(port=8080))
manager.add_command("shell", Shell())
@manager.shell
def make_shell_context():
import pprint
c = dict(app=app, amazon=amazon, models=amzstorefront.models,
pprint=pprint.pprint, commit=db.session.commit,
item_lookup=item_lookup)
c.update(amzstorefront.models.__dict__)
c.update(amzstorefront.utils.__dict__)
return c
@manager.command
def create_db():
from amzstorefront.models import db
db.create_all()
@manager.command
def add_category(name):
c = Category(name)
print "Adding category %s" % c.name
db.session.add(c)
db.session.commit()
@manager.command
def add_product(asin, category_name):
c = Category.find_by_name(category_name)
if c is None:
print "ERROR: unknown category '%s'" % category_name
p = amazon.find_product(asin)
if p.ASIN != asin:
print "WARNING: %s is a variation" % asin
print "Adding product '%s' in '%s'" % (p.ASIN, category_name)
c.products.append(p)
db.session.commit()
@manager.command
def update_product(asin):
p = Product.query.filter_by(ASIN=asin).one()
amazon.update_product(p)
db.session.commit()
@manager.command
def update_all_products():
for p in Product.query.filter_by(parent_id=None).all():
amazon.update_product(p)
db.session.commit()
@manager.command
def item_lookup(asin, response_group):
from lxml import etree
r = amazon.find_item(asin, response_group)
print etree.tostring(r, pretty_print=True)
if __name__ == "__main__":
manager.run()