@macalckux

Как сделать рассылку сообщений Aiogram?

@router.message(Command('price'))
async def analytics_price(message: Message):
    await message.answer(text='<b>Начинаю анализировать цены твоих товаров...</b>\n'
                              '\n'
                              'Следи за уведомлениями и не переключай команду.\n'
                              'Чтобы отменить анализ, введи другую команду\n'
                              'Все команды ты найдешь здесь - /help')
    all_price_product = [
        ParsingWB(links[-1]).get_data()['Цена'] for links in sql.look_product(message.from_user.id)
    ]

    link = [i[-1] for i in sql.look_product(message.from_user.id)]
    article = [i[0] for i in sql.look_product(message.from_user.id)]
    price_product = [i[1] for i in sql.look_product(message.from_user.id)]
    name_product = [i[2] for i in sql.look_product(message.from_user.id)]
    while True:
        for t, y, z, r, k in zip(all_price_product, price_product, article, name_product, link):
            if t < y:
                button_link = InlineKeyboardMarkup(
                    inline_keyboard=[
                        [
                            InlineKeyboardButton(text=f'Купить товар', url=k),
                        ]
                    ]
                )
                await message.answer(
                    f'Цена товара <b>{r} - {z}</b> СНИЗИЛАСЬ:\n'
                    f'<b>С {y} до {t}</b>\n'
                    f'Разница {y - t}₽\n',
                    reply_markup=button_link
                )

                sql.update(t, z)
        await asyncio.sleep(5)


Данный код работает так: Когда человек вводит команду /price, то бот начинает анализировать цены на его товары, которые он внес в базу. Если цена изменилась, то бот присылает сообщение об изменении цены.

Проблема в том, что он постоянно отправляет уведомления. Когда цена меняется у товара, он постоянно присылает уведомления, хотя в БД данные о новой цену уже занесены.

Если есть вариант решения, что анализ цены будет происходить без команды /price, даже если пользователь ничего не будет вводить, буду благодарен
  • Вопрос задан
  • 170 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы