Example #1
0
def create_review(trail_id):
    # change to <trail>.query....etc
    trail = Trail.query.filter_by(id=trail_id).first()
    if trail is None:
        return failure_response('Trail not found!')
    body = json.loads(request.data)
    # image_data = body.get("image_data")
    # if image_data is not None:
    #     asset = Asset(image_data=image_data)
    # else:
    #     asset = Asset(image_data="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAYAAAB5fY51AAANhklEQVR4nO3daW8bVRuA4ScLpDQtktWmNEAKCASRqkp84v//AVAdh7Qhi50QL+Nt4mW8ZmbeD1V4p26SepkzZx77vj5C8Dkq6p1zjmdZC8MwFABQYN32BABgWgQLgBoEC4AaBAuAGgQLgBoEC4AaBAuAGgQLgBoEC4AaBAuAGgQLgBoEC4AaBAuAGgQLgBoEC4AaBAuAGgQLgBoEC4AaBAuAGgQLgBoEC4AaBAuAGgQLgBoEC4AaBAuAGgQLgBoEC4AaBAuAGgQLgBoEC4AaBAuAGpu2JyAi0mw2JZ/P254GgAe8evVKdnZ2rM4hFcEaj8fS6XRsTwPAA8bjse0psCUEoAfBAqAGwQKgBsECoAbBAqAGwQKgBsECoAbBAqAGwQKgBsECoAbBAqAGwQKgBsECoAbBAqAGwQKgBsECoAbBAqAGwQKgRioekRy39fV1efnype1pAFY5jiO+79ueRqyWNli//vqr7WkAVjWbzaULFltCAGoQLABqECwAahAsAGoQLABqECwAahAsAGoQLABqECwAahAsAGoQLABqECwAahAsAGoQLABqECwAahAsAGoQLABqECwAahAsAGoQLABqECwAahAsAGoQLABqECwAahAsAGoQLABqECwAahAsAGoQLABqbNqeAD4YDAYyHo9lY2NDHj9+bHs6QCoRLAvCMBTXdaXRaEi9XpfhcPjJz2xubkomk5EXL15IJpORzU3+VwH8LUhYuVyWQqFwZ6Sibm5upFarSa1Wk42NDdnb25O9vT3Z2NhIaKZA+hCshHieJ0dHR+J53sz/re/7UigUpFQqyW+//SbPnj0zMEMg/Th0T0Cj0ZC//vprrlhFjUYjyeVycnl5GdPMAF0IlmGO40gulxPf92P7zPPzczk5OYnt8wAtCJZB7XZbjo+PjXx2sViUUqlk5LOBtCJYhozHYzk8PJQgCIyNcXp6Ku1229jnA2lDsAy5vLyU0WhkdIwgCOTs7MzoGMvM5C8TmEGwDBgMBlIsFhMZq9VqSb1eT2SsZXN+fi6dTsf2NDADgmVAqVRK9Lf3v//+m9hYy+L6+lqKxaKUy2XbU8EMCJYB1Wo10fHa7baMx+NEx9TM9305Pj6WMAzFcZxYv8GFWQQrZp7nyWAwSHTMMAylVqslOqZm+Xxe+v2+iHyIl+M4lmeEaRGsmLVaLSvjchYznVar9cn5IttCPQhWzJJeXd26XTHgfkEQyPv37yUMw4/+eafT4fIQJQhWzG5ubqyMyxnW50W3gpNYZelAsLAS2u22XF1d3fvvHcex9ssG0yNYMbP1+JcvvvjCyrga3LcVnPwZDt/Tj2DF7KuvvrIy7tbWlpVxNcjn89Lr9T77c9ybmX4EK2ZPnjyxMu7Tp0+tjJt2n9sKRnmeZ+1bXkyHYMXs6dOnVrZnmUwm8THTbpqt4CRWWelGsGK2trYmz58/T3TM7e1t2d7eTnRMDabdCkbVajW+cU0xgmXA999/L2tra4mN9+rVq8TG0mKWrWAUh+/pRrAM2N7elt3d3UTGevLkibx48SKRsbQIguC/ewXnwbYwvQiWIT/88IPxV3Otra3Jzz//nOhqToN8Pr/Q8/N7vZ5cX1/HOCPEhWAZsrW1Ja9fvzYak59++onD9gnzbgUnceV7OhEsgzKZjPzyyy9GPvubb77h7GrColvBKA7f04lgGfbdd9/J/v6+rK/H90e9t7cn+/v7sX3esri4uFj4VWq3giCQSqUSy2chPgQrAS9fvpTff/9dHj16tNDnbG5uyv7+PudWd+h0OrG/r5HD9/Thzc8J+frrr+WPP/6QYrEoFxcXM91ou76+Lru7u/Ljjz9yz+Ad5rlAdBr9fl9c1+WcMEUIVoLW19dlb29Pdnd3xXVdqVar4rrunfFaW1uTTCYjz549k+fPn3Ov4APi3ApOKpVKBCtFCJYFm5ubsrOzIzs7OyLy4TG90Suyt7a25Msvv7Q1PVVMbAWjGo2GjEYj/n+kBMFKgY2NDW5enoOpreDkGJVKhW9kU4JDdzyo2+2m9oWjl5eXxraCUaVSyWgUMT2ChXv5vi+Hh4dyeHiYumh1u12jW8GowWAgrusmMhYeRrBwr4uLCxkMBtJsNuXvv/9OTbRut4JJzodLHNKBYOFO3W73o1tcGo1GaqJ1eXkp3W430TEbjYYMh8NEx8SnCBbudHJy8kmcGo2GHB0dWY1WklvBqDAMub8wBQgWPlEqle59VHC9XrcWLRtbwahyuczhu2UECx8Zj8eSz+cf/Blb0bKxFYwaDofSbDatjQ+ChQmnp6dTPaUg6Wh5nmdlKziJw3e7CBb+02q1Zno8cL1el3fv3hmPVhiGVreCUc1mUwaDge1prCyCBRH5/7OkZlWr1eTdu3dGz3YuLy+l0+kY+/xZhGHIY2csIlgQEZGrq6uZ3zBzq1arydHRkZFoeZ4nFxcXsX/uIrjy3R6CBen3+1IoFBb6DBMrrTRtBaNGo5E0Gg3b01hJBAtyenoaSxSq1Wqs0UrTVnBSsVi0PYWVRLBWnOM4sa4WqtVqLE9QSONWMOr6+lr6/b7taawcgrXCfN+X8/Pz2D/XcZyFohWGoRwfH6duKxjFle92EKwVdnZ2Zuz+uEWidXV1Je1228Cs4lWpVFId1WVEsFZUt9s1vkJwHGfm1271er3PXmmfFhy+J49graDbb9+S+Gq+UqlMfX1XWr8VfAhXvieLYK2gcrmc6D15lUpF3r9//9mf07IVjHJdl8P3BBGsFTMcDuXs7CzxcT+30tK0FZzEKis5BMuypLc/5+fn4vt+omPeKpfLd0ZL41YwisP35BAsi1zXTfR56Y1GY6abm024K1oat4JR4/FYarWa7WmsBIJlUT6fl2azKblczni0giCQ09NTo2NMq1wuyz///CMiH24L0roVjGJbmAzeS2iJ67r/rSpc15VcLidv3ryR9XUzv0MKhUKqDodv/4Kn+TVis2i1WtLr9eTx48e2p7LUWGFZMrmqcF1XDg4OjPzl7fV6H71QIi1KpZLqreAkVlnmESwLoqurqOvra8lms7Efiqf9Npdl4TgOf86GESwLHjqzabVacnBwEFu0HMe594USiNd4PJZqtWp7GkuNYCXsvtVVVKvVkmw2Kzc3NwuNNR6PU3PQvirYFppFsBI27Tdi7XZbDg4OFopWPp+f6oUSiE+73RbP82xPY2kRrARNs7qKarfbc6+0Wq0Wv+0t4eF+5hCsBM1zvVGn05FsNjvTSikIAjk5OZl5LMSjWq1au5tg2RGshMy6uoqaNVpXV1dWXzi66m5ubjh8N4RgJWTRq7m73e5U0RoMBql+tPCq4GmkZhCsBCyyuorqdrvy9u3bB6N1cnLCdiQF2u12al+goRnBSkCc98p5nidv376V0Wj0yb+r1+s8ATNFWGXFj2AZFtfqKsrzPMlmsx9Fy/d9DtpTxnEcVrsxI1iGmXoSwe1K6/YlEoVCwdgLJTAf3/etP85n2RAsg0ysrqJ6vZ5ks1lpNBqpvLkZXPkeN4JlUBLPeer1epLL5RJ5oQRm1+12l+qJFLYRLENMr66gB6us+BAsQ5bhKZqIR7VaXfhGdnxAsAxgdYWoIAg4fI8JwTKA1RUmsS2MB8GKGasr3MXzPB6kGAOCFTNWV7gPq6zFEawYsbrCQ2q1Gg9UXBDBihGrKzwkCAKpVCq2p6EawYoJqytMgxuiF0OwYsLqCtPo9Xriuq7taahFsGLA6gqzYFs4P4IVA1ZXmAWH7/MjWAtidYVZcfg+P4K1IFZXmAfXZM2HYC2A1RXm1e/3OXyfA8FaAKsrLIJV1uwI1pxYXWFR9Xr9zpeJ4H4Ea06srrCoMAy5kHRGBGsOrK4Ql3K5zOOtZ7BpewIa9ft9+fbbb21PA0tiOBzKo0ePbE9DBYI1B2IF2MGWEIAaBAuAGgQLgBoEC4AaBAuAGgQLgBoEC4AaBAuAGgQLgBoEC4AaBAuAGgQLgBoEC4AaBAuAGgQLgBoEC4AaBAuAGgQLgBpL+YjkMAyl0+nYngZgVRAEtqcQu6UMlu/78ueff9qeBoCYsSUEoAbBAqAGwQKgBsECoAbBAqAGwQKgBsECoAbBAqAGwQKgBsECoAbBAqAGwQKgBsECoAbBAqAGwQKgBsECoAbBAqAGwQKgBsECoAbBAqAGwQKgBsECoAbBAqAGwQKgBsECoAbBAqAGwQKgBsECoAbBAqAGwQKgBsECoAbBAqAGwQKgBsECoAbBAqAGwQKgBsECoAbBAqAGwQKgBsECoAbBAqAGwQKgBsECoAbBAqAGwQKgBsECoAbBAqAGwQKgBsECoAbBAqAGwQKgBsECoAbBAqAGwQKgBsECoAbBAqAGwQKgBsECoAbBAqAGwQKgBsECoAbBAqAGwQKgBsECoAbBAqAGwQKgBsECoAbBAqAGwQKgBsECoMZaGIah7UkAwDRYYQFQg2ABUINgAVCDYAFQg2ABUINgAVCDYAFQg2ABUINgAVCDYAFQg2ABUINgAVCDYAFQg2ABUINgAVCDYAFQg2ABUINgAVCDYAFQg2ABUINgAVCDYAFQg2ABUINgAVCDYAFQg2ABUINgAVCDYAFQg2ABUINgAVCDYAFQg2ABUINgAVDjfwXxayX33T/OAAAAAElFTkSuQmCC")
    # db.session.add(asset)
    # image_id = asset.id

    new_review = Review(title=body.get('title'),
                        body=body.get('body'),
                        rating=body.get('rating'),
                        username=body.get('username'),
                        trail_id=trail_id,
                        trail=trail
                        # image_id = image_id,
                        # image=asset
                        )
    if new_review.title is None or new_review.rating is None:
        return failure_response('Could not create Review for trail')
    if new_review.body is None or new_review.username is None:
        return failure_response('Could not create Review for trail')
    db.session.add(new_review)
    trail.reviews.append(new_review)
    db.session.commit()
    # update_rating(trail)
    return success_response(new_review.serialize())
Example #2
0
def create_review(reviewer_name, title, description, rating, event_id):
    new_review = Review(reviewer_name=reviewer_name,
                        title=title,
                        description=description,
                        rating=rating,
                        event_id=event_id)
    db.session.add(new_review)
    db.session.commit()
    return new_review.serialize()
def create_review(review_text, review_book_id, username, password):
  book = Book.query.filter_by(id=review_book_id).first()
  u = get_user(username, password)
  if book is None or u is None:
    return None
  new_review = Review(content = review_text, book_id = review_book_id, user_id = u.get_id())
  db.session.add(new_review)
  db.session.commit()
  return new_review.serialize_review()
def create_review(username, review, recommend, book_id):
    # if recommend == True:
    #     recommendation = "Yes"
    # else:
    #     recommendation = "No"

    new_review = Review(username=username,
                        review=review,
                        recommend=recommend,
                        book=book_id)

    db.session.add(new_review)
    db.session.commit()
    return new_review.serialize()
Example #5
0
def comment():
    if request.method == 'POST':
        email = global_email
        if email != None:
            comment = request.form ['comment']

            current_date = datetime.datetime.now()
            date = current_date.strftime("%d"), current_date.strftime("%b"), current_date.strftime("%Y")
            date = ' '.join(date)

            all = db.session.query(Review).all()
            i = 0
            for a in all:
                i = i+1

            row = Review(comment_id=i, name=global_name, email=email, comment=comment, date=date)
            db.session.add(row)
            query = db.session.query(Review).all()
            db.session.commit()
            return render_template('coment.html', comments=query, email=global_email, name=global_name)

        else:
            query = db.session.query(Review).all()
            return render_template('coment.html', comments=query)

    else:
        query = db.session.query(Review).all()
        email =global_email
        if email != None:
            search = db.session.query(Users).filter_by(email=email).all()
        return render_template('coment.html', comments=query, email=email,name=global_name)
Example #6
0
    def extract_concert_reviews_for_performer(self, performer):
        existing = db.get_review_by_teamband_name(self.session, performer)
        if existing.count() >= 2:
            print performer + " was already in the database"
            return

        print "now scraping " + performer

        urls = self.googler.google_concert_reviews_urls(performer +
                                                        " concert reviews")

        for url in urls[:2]:
            if db.get_review_by_url(self.session, url).count() != 0:
                continue
            response = requests.get(url)
            tree = BeautifulSoup(response.text)
            most_likey_review = self.extractor.extract(tree)

            r = Review(teamband_name=performer,
                       url=url,
                       review=most_likey_review)
            self.session.add(r)
            self.session.commit()

            time.sleep(10)
Example #7
0
def create_review_for_restaurant(restaurant_id, body):
    user_id = body.get("user_id")
    user = User.query.filter_by(id=user_id).first()
    restaurant = Restaurant.query.filter_by(id=restaurant_id).first()
    if user is None or restaurant is None:
        return None
    review = Review(rating=body.get("rating"),
                    content=body.get("content"),
                    user_id=user_id,
                    restaurant_id=restaurant_id)
    update_rating_for_restaurant(restaurant_id, body.get("rating"),
                                 len(restaurant.reviews))
    db.session.add(review)
    db.session.commit()

    return review.serialize()
Example #8
0
def persist_review_data(session, app_row_id, review_data):
    for review in review_data:
        r = Review(app_id=app_row_id,
                   content=review['content'],
                   review_native_id=review['reviewId'],
                   score=review['score'],
                   reply_content=review['replyContent'],
                   created_at=review['at'])
        session.add(r)
        session.commit()
Example #9
0
def comment():
    if 'email' in session:
        email = session['email']
        name = session['name']
    else:
        email = None
        name = None
    if request.method == 'POST':
        if email != None:
            comment = request.form['comment']

            current_date = datetime.datetime.now()
            date = current_date.strftime("%d"), current_date.strftime(
                "%b"), current_date.strftime("%Y")
            date = ' '.join(date)

            all = session_app.query(Review).all()
            i = 1
            for a in all:
                i = i + 1

            row = Review(comment_id=i,
                         name=name,
                         email=email,
                         comment=comment,
                         date=date)
            session_app.add(row)
            query = session_app.query(Review).all()
            session_app.commit()
            return render_template('coment.html',
                                   comments=query,
                                   email=email,
                                   name=name)

        else:
            query = session_app.query(Review).all()
            return render_template('coment.html',
                                   comments=query,
                                   email=email,
                                   name=name,
                                   action=1)

    else:
        query = session_app.query(Review).all()

        return render_template('coment.html',
                               comments=query,
                               email=email,
                               name=name)
Example #10
0
def multi_thread_user_communication(user_id):
    print user_id
    try:
        personal_update = threads[user_id].get()

        # Получаем информацию о сообщении
        offset, user_id, chat_id, username, text, message_date, photo = extract_update_info(
            personal_update)
        print personal_update

        if photo is not None:
            if user_id in review_stages and review_stages[user_id] == "picture":
                unfilled_reviews[user_id].image_id = photo.file_id
                write_review(user_id)
                answer(log_file,
                       bot,
                       user_id,
                       chat_id,
                       "Спасибо за отзыв!\n",
                       reply_markup,
                       del_msg=False)
            else:
                result = bot.send_message(chat_id, PHOTO_IS_IN_PROCESS).wait()
                print result
                da = get_info_by_url(bot, chat_id, user_id,
                                     get_photo_url(photo))
                try:
                    product_id = int(da[0].split()[2])
                except:
                    answer(log_file,
                           bot,
                           user_id,
                           chat_id,
                           PHOTO_IS_NONE,
                           reply_markup,
                           del_msg=False)
                    return
                if da[0] is not None:
                    last_product[user_id] = product_id

                k = 0
                for i in da:
                    if k == 0:
                        print i
                        if i is not None:
                            answer(log_file,
                                   bot,
                                   user_id,
                                   chat_id,
                                   ' '.join(i.split()[4:]),
                                   reply_markup,
                                   del_msg=False)
                        else:
                            answer(log_file,
                                   bot,
                                   user_id,
                                   chat_id,
                                   "Мы не знаем что это :(",
                                   reply_markup,
                                   del_msg=False)
                            return
                    elif k == 1:
                        print i
                        if i is not None:
                            answer(log_file,
                                   bot,
                                   user_id,
                                   chat_id,
                                   "Средняя оценка: " + u"🍔" * int(i),
                                   reply_markup,
                                   del_msg=False)
                    k += 1

                reviews = db.get_reviews(product_id)
                if list(reviews) != []:
                    for r in reviews:
                        if r.image_id is not None:
                            bot.send_photo(chat_id=chat_id, photo='https://api.telegram.org/bot' + BOT_TOKEN + \
                                '/getFile?file_id=' + str(r.image_id))
                            break

                    for r in reviews:
                        answer(log_file,
                               bot,
                               user_id,
                               chat_id,
                               "%s: %s\n\t%s" %
                               (r.user_id, u"🍔" * r.rating, r.text),
                               reply_markup,
                               del_msg=False)
                    answer(log_file,
                           bot,
                           user_id,
                           chat_id,
                           "Оставить свой: /review\n",
                           reply_markup,
                           del_msg=False)
                else:
                    answer(log_file,
                           bot,
                           user_id,
                           chat_id,
                           "Оставить первый отзыв: /review\n",
                           reply_markup,
                           del_msg=False)

        else:
            if text == "/review":
                unfilled_reviews[user_id] = Review(user_id,
                                                   last_product[user_id], None,
                                                   None, None, None)
                answer(
                    log_file,
                    bot,
                    user_id,
                    chat_id,
                    "Ваша оценка:\n/star1\n/star2\n/star3\n/star4\n/star5\n",
                    reply_markup,
                    del_msg=False)
                review_stages[user_id] = "rating"
            elif user_id in review_stages:
                if review_stages[user_id] == "rating":
                    #exception possible
                    unfilled_reviews[user_id].rating = int(text[-1])
                    #answer(log_file, bot, user_id, chat_id, "Цена товара:\n", reply_markup, del_msg=False)
                    answer(log_file,
                           bot,
                           user_id,
                           chat_id,
                           "Отзыв:\n",
                           reply_markup,
                           del_msg=False)
                    review_stages[user_id] = "text"
                elif review_stages[user_id] == "price":
                    #exception possible
                    unfilled_reviews[user_id].price = float(text)
                    answer(log_file,
                           bot,
                           user_id,
                           chat_id,
                           "Отзыв:\n",
                           reply_markup,
                           del_msg=False)
                    review_stages[user_id] = "text"
                elif review_stages[user_id] == "text":
                    unfilled_reviews[user_id].text = text
                    answer(log_file,
                           bot,
                           user_id,
                           chat_id,
                           "Фотография: (пропустить - /skip)\n",
                           reply_markup,
                           del_msg=False)
                    review_stages[user_id] = "picture"
                elif review_stages[user_id] == "picture" and text == "/skip":
                    write_review(user_id)
                    answer(log_file,
                           bot,
                           user_id,
                           chat_id,
                           "Спасибо за отзыв!\n",
                           reply_markup,
                           del_msg=False)

            else:
                if user_id in review_stages:
                    write_review(user_id)
                    answer(log_file,
                           bot,
                           user_id,
                           chat_id,
                           "Спасибо за отзыв!\n",
                           reply_markup,
                           del_msg=False)
                else:
                    answer(log_file,
                           bot,
                           user_id,
                           chat_id,
                           PHOTO_IS_NONE,
                           reply_markup,
                           del_msg=False)
            return
    except ContinueError as exc_txt:
        answer(log_file,
               bot,
               user_id,
               chat_id,
               exc_txt.txt,
               reply_markup,
               del_msg=False)
    except EasyError as exc_txt:
        log_write(log_file, 'sys', exc_txt.txt)
Example #11
0
                './/h3[@class="bv-author"]').text

            # We use date_ to avoid naming conflict with the date method from datetime.
            date_ = review.find_element_by_xpath(
                './/meta[@itemprop="datePublished"]').get_attribute('content')
            year, month, day = map(lambda x: int(x), date_.split('-'))
            date_ = date(year, month, day)

            rating = review.find_element_by_xpath(
                './/span[@class="bv-rating-stars-container"]/span').text
            rating = int(re.search('\d+', rating).group())

            # create a Review object that correponds to one row of our table.
            review = Review(username=username,
                            title=title,
                            content=content,
                            date=date_,
                            rating=rating)
            review.save()

        # Locate the next button on the page.
        wait_button = WebDriverWait(driver, 10)
        current_button = wait_button.until(
            EC.element_to_be_clickable((
                By.XPATH,
                '//li[@class="bv-content-pagination-buttons-item bv-content-pagination-buttons-item-next"]'
            )))
        prev_button = current_button
        current_button.click()
    except Exception as e:
        print(e)
Example #12
0
			# To get the attribute instead of the text of each element, use 'element.get_attribute()'
			try:
				title = review.find_element_by_xpath('.//div[@class="NHaasDS75Bd fontSize_12 wrapText"]').text
			except:
				continue

			text = review.find_element_by_xpath('.//span[@class="pad6 onlyRightPad"]').text
			username = review.find_element_by_xpath('.//span[@class="padLeft6 NHaasDS55Rg fontSize_12 pad3 noBottomPad padTop2"]').text
			date_published = review.find_element_by_xpath('.//span[@class="NHaasDS55Rg fontSize_12  pad3 noBottomPad padTop2"]').text
			rating = review.find_element_by_xpath('.//span[@class="positionAbsolute top0 left0 overflowHidden color_000"]').get_attribute('style')
			rating = int(re.findall('\d+', rating)[0])/20		
	

			# create a Review object that correponds to one row of our table.
			cur_review = Review(username=username,
							title=title,
							text=text,
							date_published=date_published,
							rating=rating)
			cur_review.save()

		# Locate the next button on the page.
		wait_button = WebDriverWait(driver, 10)
		next_button = wait_button.until(EC.element_to_be_clickable((By.XPATH,
									'//li[@class="nextClick displayInlineBlock padLeft5 "]')))
		next_button.click()
	except Exception as e:
		print(e)
		csv_file.close()
		driver.close()
		break
Example #13
0
                    recommending =''
                helpful = review.find_element_by_xpath(
                    './/button[@class="border_grayThree NHaasDS55Rg fontSize_12 height48 width100p positiveReviewFeedBack"]/span').text
                helpful = int(re.findall('\d+', helpful)[0])
                unhelpful = review.find_element_by_xpath(
                    './/button[@class="border_grayThree NHaasDS55Rg fontSize_12 height48 width100p negativeReviewFeedBack"]/span').text
                unhelpful = int(re.findall('\d+', unhelpful)[0])
                # if saving data to mysql triggers exception error, skip this data row
                #print('helpful, unhelpful', helpful, unhelpful)
                try:
                    current = Review(
                        store          = 'verizon',
                        skuId          = skuId,
                        username       = username,
                        text           = text,
                        title          = title,
                        date_published = date_published,
                        rating         = rating,
                        recommending   = recommending,
                        helpful        = helpful,
                        unhelpful      = unhelpful
                        )
                    current.save()
                    
                except:
                    continue

            # end of for loop
            

            
            # Locate the next button element on the page and then call `button.click()` to click it.
Example #14
0
import re
from time import sleep
import pandas as pd
from datetime import datetime
"""
class Reviews(Model):
    title_id = TextField()
    review_id = CharField(20, unique=True)
    summary = TextField(null=True)
    content = TextField(null=True)
    username = TextField(null=True)
    date = DateTimeField(null=True)
    rating = TextField(null=True)
    scale = IntegerField(null=True)
    helpful_votes = IntegerField(null=True)
    total_votes = IntegerField(null=True)
            
"""

query = Review.select()
year = []

res = (Reviews
       .insert_from(
           Review.select(Review.title_id, Review.review_id, Review.summary, Review.content, Review.username, Review.date, \
                         None, Review.scale, Review.helpful_votes, Review.total_votes).where(Review.rating == ''),
           fields=[Reviews.title_id, Reviews.review_id, Reviews.summary, Reviews.content, Reviews.username, Reviews.date, \
                   Reviews.rating, Reviews.scale, Reviews.helpful_votes, Reviews.total_votes])

       .execute())