Идея бота: пользователь бота направляет ссылку на ютуб видео - далее бот направляет эту ссылку в группу где я могу "принять" или "отказать" заявку.
Далее, если я отклоняю заявку, бот возвращает деньги за заявку пользователю который направил эту заявку путём поиска в бд ссылки которая была отправлена и извлекает оттуда userID
Вот сам коллбэк, когда я отклоняю заявку
if call.data == 'callback.no':
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id,
text='{0}\n Статус: Отказано \nЗаявку отказал: @{1} ❌'.format(
call.message.text,call.from_user.username))
user_id_sender = sql.execute("SELECT linkSender FROM links WHERE linkYoutube=(?)", (message.text,))
res_userID = user_id_sender.fetchall()
useridsender = res_userID[0][0]
print(message.text)
sql.execute("UPDATE users SET cash = (cash + 150) WHERE id = {0}".format(useridsender,))
db.commit()
bot.send_message(useridsender, '<b>Ваша заявка была отклонена! Деньги возвращены на баланс</b>', parse_mode="html")
Проблема в строке кода
user_id_sender = sql.execute("SELECT linkSender FROM links WHERE linkYoutube=(?)", (message.text,))
message.text всегда держит в себе одну ссылку первого пользователя который направил заявку и не обновляется, и поэтому если отказываю другим людям в заявке, все средства возвращаются первому пользователю который направил заявку.
Пример как бот работает сейчас, я направил две заявки с разными ссылками
Что выводит print(message.text)
Были размышления по поводу использовать call.message.text и уже оттуда извлекать ссылку, но возможно ли такое вообще, так как там ещё и содержится текст, в интернете информации по этому поводу не нашёл.
Возможно не совсем ясно написал, но если нужна дополнительная информация, я предоставлю её..