if a < 1:
TypeError: '<' not supported between instances of 'module' and 'int'
markupdel = InlineKeyboardMarkup(row_width=1)
markupdel.insert(InlineKeyboardButton(text='Привет', callback_data='hidelete'))
@dp.message_handler(content_types=["new_chat_members"])
async def handler_new_member(message):
try:
first_name = message.new_chat_members[0].first_name
await bot.send_message(message.chat.id, "✔ Благодарим Вас за подписку!0}".format(first_name), disable_notification=True, reply_markup=markupdel)
print_string ="{first_name}"
print_string = print_string.format(first_name) # Error
except:
traceback.print_exc()
await message.delete()
@dp.callback_query_handler(text='hidelete')
async def hideletefun(call: CallbackQuery):
await message.delete(message.chat.id, message.message_id)
@dp.message_handler(content_types=["new_chat_members"])
async def handler_new_member(message):
try:
first_name = message.new_chat_members[0].first_name
markup = InlineKeyboardMarkup(row_width=1)
markup.insert(InlineKeyboardButton(text='Привет', callback_data='hidelete'))
await bot.send_message(message.chat.id, "✔ Благодарим Вас за подписку!0}".format(first_name), disable_notification=True, reply_markup=markup)
print_string ="{first_name}"
print_string = print_string.format(first_name) # Error
except:
traceback.print_exc()
await message.delete()
@dp.callback_query_handler(text='hidelete')
async def hideletefun(call: CallbackQuery):
await message.delete(message.chat.id, message.message_id)
in handler_new_member
await bot.send_message(message.chat.id, "✔ Благодарим Вас за подписку!0}".format(first_name), disable_notification=True, reply_markup=markup)
ValueError: Single '}' encountered in format string
@dp.callback_query_handler(text="pravila")
async def pravila_call(callback: types.CallbackQuery):
#markup = types.ReplyKeyboardMarkup(one_time_keyboard=True)
#markup = types.ReplyKeyboardMarkup(row_width=1, resize_keyboard=True, one_time_keyboard=True)
await callback.message.answer("Тут мой текс", parse_mode='html',reply_markup=btn_send_markup)
#await message.reply('Cancelled.', reply_markup=types.ReplyKeyboardRemove())
await callback.answer()
@dp.message_handler(lambda c:True, content_types=['text'])#этот блок выполнится если юзер отправит боту сообщение
async def pravila_call(message):
await bot.edit_message_reply_markup(message.chat.id, message_id = message.message_id-1, reply_markup = '')# удаляем кнопки у последнего сообщения
await bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text="Текст нашей кнопки", reply_markup=None)
'''
async def pravila_call(message: types.Message):
markup = types.ReplyKeyboardRemove()
return await bot.send_message(message.from_user.id, 'text', markup=item3)
'''
Это ответ, пользователя: на сайте, каком то нашел.
Для этого могут быть разные решения, мое предложение:
вы можете использовать самый первый ответ каждого пользователя, чтобы удалить клавиатуру, сначала используйте editMessageText, чтобы удалить клавиатуру, а затем отправьте ему соответствующий ответ.(обратите внимание, что chatIDs, что вы удалили их клавиатуру, поэтому вы сделаете это для каждого пользователя только один раз)
bot.on('callback_query', function onCallbackQuery(callbackQuery) {
if(!didWeRemoveHisKeyboard(callbackQuery.from.id))
removeHisKeyboard(callbackQuery)
//then handle the user response
})
removeHisKeyboard = function(callbackQuery){
bot.editMessageText(callbackQuery.message.text,
{message_id:callbackQuery.message.message_id , chat_id:callbackQuery.from.id,
reply_markup: {
remove_keyboard: true
}}).catch((err) => {
//some error handling
}).then(function(res){
if(res)
addThisChatToHandledList(callbackQuery.from.id)
})
}
Вот тоже, ответ пользователю, но примера даже нет, как это всё написать.
Да, вы можете обновить (отредактировать) текущий текст сообщения с помощью выбора, сделанного пользователем, это простая быстрая визуальная обратная связь с пользователем, когда он взаимодействует с вашими встроенными кнопками.
Для этого можно использовать методы editXXX .
см. https://core.telegram.org/боты/api#обновление-сообщения
editMessageText - изменяет текст сообщения перед панелью inlinekeyboard
editMessageReplyMarkup - изменения в новой линейной панели
Читал документацию, но ничего не понял, как сделать.
async with TelegramClient('anon', api_id, api_hash).start() as client:
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
Traceback (most recent call last):
File "F:/Telegram/PyCharm/Tg_nov/testbotpyTelegramBotAPI13.py", line 64, in <module>
asyncio.run(main())
File "C:\Python38\lib\asyncio\runners.py", line 44, in run
return loop.run_until_complete(main)
File "C:\Python38\lib\asyncio\base_events.py", line 616, in run_until_complete
return future.result()
File "F:/Telegram/PyCharm/Tg_nov/testbotpyTelegramBotAPI13.py", line 9, in main
async with TelegramClient('anon', api_id, api_hash).start() as client:
AttributeError: __aexit__
async with TelegramClient('anon', api_id, api_hash).start() as client:
asyncio.run(main())