Как получить id пользователя если он не отправляет сообщение
Создаю бота с помощь telebot. Нужно чтобы бот каждый день в определенное время выполнял проверку.
schedule.every().day.at("10:30").do(auto_check())
Для проверки требуется сообщение от пользователя чтобы взять из него user_id
def auto_check(message):
names = bd.SQLlighter.get_name(message.from_user.id)
names_list = [item for sub in names for item in sub]
for i in names_list:
name = i
url_bd = bd.SQLlighter.get_url(name)
price_bd = bd.SQLlighter.get_price(name)
price_bd = int(price_bd[0])
url = "".join(map(','.join, url_bd))
html = requests.get(url).text
soup = bs(html, "lxml")
price_original = soup.find(attrs={"class": "current-price"})
price_current = price_original.text.removesuffix("тг").replace(" ", "")
price_current = int(price_current)
user_id = message.from_user.id
date = datetime.datetime.now()
if price_current == price_bd:
bot.send_message(message.chat.id, 'Цена на товар: '+ name + ' не изменилась \n')
else:
if price_current > price_bd:
bot.send_message(message.chat.id,
'Цена на товар: '+ name + ' увеличилась на ' + str(price_current - price_bd) + ' тг. Новая цена: ' + str(
price_current) + ' тг. \n')
bd.SQLlighter.add_bd(user_id, date, name, price_current, url)
bot.send_message(message.chat.id, 'Новая цена сохранена \n')
else:
bot.send_message(message.chat.id,
'Цена на товар: '+ name + ' уменьшилась на ' + str(price_bd - price_current) + ' тг. Новая цена: ' + str(
price_current) + ' тг. \n')
bd.SQLlighter.add_bd(user_id, date, name, price_current, url)
bot.send_message(message.chat.id, 'Новая цена сохранена \n')
Как можно получить user_id без отправки сообщения юзером, например из последнего отправленного юзером сообщения?