Example #1
0
def item_init(dic):
    i = 0
    catz = []
    for key in dic['name']:
        seller = Seller.query.filter_by(
            username=dic['merchant_id'][key]).first()
        cat = dic['amazon_category_and_sub_category'][key]
        if pd.isna(cat) is True:
            cat = 'Other'
        else:
            cats = cat.split(' > ')
            cat = cats[0]

            if cat not in catz:
                toAdd = Category(name=cat)
                db.session.add(toAdd)
                catz.append(cat)
        if not seller:
            toAdd = Seller(username=str(dic['merchant_id'][key]),
                           email=str(dic['merchant_id'][key]) + str(i) +
                           "@NULL")
            i += 1
            toAdd.set_password('123')
            db.session.add(toAdd)
        item = Item(id=key,
                    name=dic['name'][key],
                    price=dic['price'][key],
                    quantity=dic['quantity'][key],
                    description=dic['description'][key],
                    seller=Seller.query.filter_by(
                        username=dic['merchant_id'][key]).first(),
                    category=cat)
        date = '' + str(datetime.now().month) + '/' + str(
            datetime.now().day) + '/' + str(datetime.now().year)
        location = ['USA', 'Canada', 'United Kingdom', 'China', 'Japan']
        stars = [1, 2, 3, 4, 5]
        user_id = []
        for user in User.query.all():
            user_id.append(user.id)
        for i in range(5):
            review = Reviews(user_id=random.choice(user_id),
                             item_id=item.id,
                             date_time=date,
                             location=random.choice(location),
                             stars=random.choice(stars),
                             content=get_random_string(10))
            db.session.add(review)
        avg_stars = db.session.query(func.avg(
            Reviews.stars)).filter(Reviews.item_id == item.id).first()
        item.avg_user_rating = avg_stars[0]
        db.session.add(item)
    #for name in catz:
    #_search_params = {
    #'q': name,
    #'num': 1,
    #"print_urls":True
    #}
    #print(name)
    #gis.search(search_params=_search_params, path_to_dir='Images', width=500, height=500, custom_image_name=str(name))
    db.session.commit()