/ telethon '1.38.1'
Я учусь этому делу, делаю бота. Имеет три
Код: Выделить всё
NewMessageКод: Выделить всё
@client.on(events.NewMessage(pattern='/start'))Код: Выделить всё
Button.inline('Click and send a music artist name...', b'send_name_button')Код: Выделить всё
@client.on(events.NewMessage(pattern='/delete))Код: Выделить всё
@client.on(events.NewMessage(pattern=r'^((?!\/start|\/delete).)*$))У меня есть встроенная кнопка < сильный>
Код: Выделить всё
data=b'send_name_button'Код: Выделить всё
@client.on(events.NewMessage)Это весь код:
Код: Выделить всё
try:
@client.on(events.NewMessage(pattern='/start'))
async def respond_start(event):
user = await event.get_sender() # name = utils.get_display_name(sender) ?
msg = await event.respond(
f'Hello, {user.first_name} ☘️!\nThis bot will send 🎁 you a chosen song ' \
'(mp3 file) from a songs list of an artist you chose ' \
'🔊 (from .........)',
buttons=[
Button.inline('Click and send a music artist name...', b'send_name_button')
]
)
append_msg_id(msg_ids, msg.id)
except Exception as ex:
print(f'Ecxception: respond_start: {ex}')
try:
@client.on(events.NewMessage(pattern='/delete'))
async def delete_dialog(event):
append_msg_id(msg_ids, event.id)
await client.delete_messages(event.chat_id, msg_ids)
clean_msg_ids(msg_ids)
except Exception as ex:
print(f'Exception: delete_messages: {ex}')
# not /start and not /delete
try:
@client.on(events.NewMessage(pattern=r'^((?!\/start|\/delete).)*$'))
async def respond_else(event):
append_msg_id(msg_ids, event.id)
msg = await event.respond('Try [/start](/start)...')
append_msg_id(msg_ids, msg.id)
except Exception as ex:
print(f'Exception: respond_else: {ex}')
Код: Выделить всё
@client.on(events.CallbackQuery(data=b'send_name_button'))
async def handler_send_name_button(event):
msg = await event.respond(f'Type the name of a musician. After that the bot will' \
' send the list of tracks of the chosen musician...' )
functions.append_msg_id(msg_ids, event.id)
functions.append_msg_id(msg_ids, msg.id)
@client.on(events.NewMessage):
async def handler_a_name_is_chosen_after_clicking_send_name_button(event):
pass # THIS HANDLER MUST BE TRIGGERED ONLY AFTER THE BUTTON OF data=b'send_name_button' IS CLICKED
Как сделать ссылку между нажатием кнопки data=b'send_name_button' и вызов обработчика handler_a_name_is_chosen_after_clicking_send_name_button?
весь код: https://pastebin.com/EVMYPL7J
Подробнее здесь: https://stackoverflow.com/questions/792 ... ine-button
Мобильная версия