Не получается сделать бан для пользователя в инлайне. Я использую такую систему бана - добавлять id пользователя в таблицу бан mysql Перед тем как ответить на действие пользователя, он проверяет по таблице не состоит ли его id в бане. На обычные кнопки или запросы по вводу данных все работает нормально. Ты добавил пользователя в таблицу, и ему сразу выдает сообщение "Ты забанен" на любое действие. Но с инлайном это не работает. Сам бан я настроил но если забаненный пользователь не будет перезапускать бота или нажимать обычные кнопки, а только дальше пользоваться инлайном, тогда бан инлайна не выскочит.
banam = []
@bot.message_handler(commands = ['start'])
def first(message):
p = ('SELECT user_id FROM blockuser')
cursor.execute(p)
for p in cursor:
banam.append(p[0])
ban = list(set(banam))
if int(message.chat.id) in ban:
bot.send_message(message.chat.id, "Вы забанены")
#Сам инлайн
@bot.callback_query_handler(func=lambda c: True)
def inlin(c):
ban = list(set(banam))
try:
if c.data == 'nazad':
if c.message.chat.id in ban:
bot.send_message(c.message.chat.id, 'BAN')
else:
bot.edit_message_media(media=types.InputMedia(type='photo', media=const.PHOTOINLINE1),
chat_id=c.message.chat.id, message_id=c.message.message_id, reply_markup=inline2())
def inline2():
knopk2 = types.InlineKeyboardMarkup()
but_1 = types.InlineKeyboardButton(text='Картинка 1', callback_data='kar11')
but_2 = types.InlineKeyboardButton(text='Картинка 2', callback_data='kar2')
but_3 = types.InlineKeyboardButton(text='Назад', callback_data='nazad')
but_4 = types.InlineKeyboardButton(text='Выбор', callback_data='vybor')
knopk2.add(but_1)
knopk2.add(but_2)
knopk2.add(but_3)
knopk2.add(but_4)
return knopk2