Exemple #1
0
def check_prices():
    users = session.query(User).all()
    scrapper = Scrapper()
    items = session.query(Item).all()
    for item in items:
        scrapper.go_to(item.link)
        price = scrapper.get_price()
        title = scrapper.get_title()
        if not item.title:
            item.title = title
            session.commit()
        if item.price:
            change_percentage = (abs(price - item.price) / item.price) * 100.0
            if change_percentage >= 3:
                item.price = price
                session.commit()
                markup = InlineKeyboardMarkup(
                    [InlineKeyboardButton('Check', url=item.link)])
                for u in users:
                    try:
                        bot.send_message(
                            u.tg_id,
                            '<code>{}</code> price changed'.format(title),
                            parse_mode=ParseMode.HTML,
                            reply_markup=markup)
                    except Exception as e:
                        config.logger.error(
                            'Error sending a message: {}'.format(e))
        else:
            item.price = price
            session.commit()