Приветствую, создаю систему браков в боте Telegram. Мой код относительно рабочий и исправно исполняет свои функции, однако, спустя какое-то время этот самый код становится нерабочим, а спустя ещё какое-то время опять рабочим. Что за бред? У меня тот же вопрос.
@dp.message_handler(commands=['брак'], commands_prefix='+')
async def love(message: types.Message):
user = message.from_user.get_mention(as_html=True)
#userTwoLink = message.reply_to_message.from_user.get_mention(as_html=True)
# userTwo = re.findall(r'\d+', str(userTwoLink))[0]
if not message.reply_to_message:
await message.answer("Ответьте на сообщение")
return
inline = InlineKeyboardMarkup(row_width=2)
yeah = InlineKeyboardButton(text='Согласиться', callback_data='accept')
nope = InlineKeyboardButton(text='Отказаться', callback_data='decline')
inline.add(yeah, nope)
answer = await message.answer(f'✨ Минуточку внимания!\n\n'
f'[⚖️] {user} предложил заключить брак с <a href="tg://user?id={message.reply_to_message.from_user.id}">{message.reply_to_message.from_user.first_name}</a>\n'
f'[❤️] Согласится ли вторая половинка на заключение?\n'
f'[] <a href="tg://user?id={message.reply_to_message.from_user.id}">{message.reply_to_message.from_user.first_name}</a> решать Вам! Нажмите одну из кнопок, чтобы принять решение', reply_markup=inline, parse_mode='HTML')
@dp.callback_query_handler()
async def loveCallback(callback: types.CallbackQuery):
if callback.data == 'accept':
if callback.from_user.id == message.reply_to_message.from_user.id:
now = datetime.datetime.now()
strf = now.strftime("%d.%m.%Y")
stamp = now.timestamp()
await callback.answer(text=f'Вы заключили брак! ❤️')
await answer.edit_text(text=f"[❤️] Партнёр принял предложение! Брак состоялся {strf}")
else:
await callback.answer(text=f'Эта кнопка не для тебя!')
else:
if callback.from_user.id == message.reply_to_message.from_user.id:
await callback.answer(text='Вы отказались от предложения! ')
await answer.edit_text(text=f"[] Партнёр отказался от предложения! Брак не состоялся")
else:
await callback.answer(text='Эта кнопка не для тебя!')
Переменные созданы для внесения в базу данных даты создания брака.
now = datetime.datetime.now()
strf = now.strftime("%d.%m.%Y")
stamp = now.timestamp()
Старый метод проверки на то, кто нажал кнопку
#userTwoLink = message.reply_to_message.from_user.get_mention(as_html=True)
#userTwo = re.findall(r'\d+', str(userTwoLink))[0]
Вот, код прекрасно выполняет свою работу.
Здесь уже нет.
Я решил вывести ID'шники тех, кто нажимает на кнопку и тех, кого бот ожидает для нажатия. Первое сообщение - кто нажал, второе - кого ожидают. Смотря на картинку можно понять, что я нажал на кнопку, но ожидается тот, кто отправил предложение. Почему это так и как это можно исправить?
Также, иногда выскакивает ошибка:
Message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message