@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, даже если пользователь ничего не будет вводить, буду благодарен