add buttons from keyboard
This commit is contained in:
parent
9c1ac6e0bb
commit
a30b25e9f5
20
README.md
20
README.md
@ -518,3 +518,23 @@ async def reply_builder(message: types.Message):
|
||||
|
||||
**Запуск веб-приложения (WebApp)**. При нажатии на кнопку открывает WebApp. Необходимо передать объект WebAppInfo. В этой книге веб-аппы пока рассматриваться не будут.
|
||||
|
||||
две заготовки хэндлеров на приём нажатий от нижних двух кнопок:
|
||||
```py
|
||||
# новый импорт
|
||||
from aiogram import F
|
||||
|
||||
@dp.message(F.user_shared)
|
||||
async def on_user_shared(message: types.Message):
|
||||
print(
|
||||
f"Request {message.user_shared.request_id}. "
|
||||
f"User ID: {message.user_shared.user_id}"
|
||||
)
|
||||
|
||||
|
||||
@dp.message(F.chat_shared)
|
||||
async def on_user_shared(message: types.Message):
|
||||
print(
|
||||
f"Request {message.chat_shared.request_id}. "
|
||||
f"User ID: {message.chat_shared.chat_id}"
|
||||
)
|
||||
```
|
||||
|
52
bot.py
52
bot.py
@ -197,29 +197,10 @@ async def echo_with_time(message: Message):
|
||||
# Отправляем новое сообщение с добавленным текстом
|
||||
await message.answer(f"{message.html_text}\n\n{not_anderstand}!!! Я не понимаю эту команду :(\nДля получения списка известных мне команд напиши /start \n{added_text}", parse_mode="HTML")
|
||||
|
||||
# Извлекаем из сообщений пользователя данные url, email, телефон и код
|
||||
#@dp.message(F.text)
|
||||
async def extract_data(message: Message):
|
||||
data = {
|
||||
"url": "<N/A>",
|
||||
"email": "<N/A>",
|
||||
"phone_number": "<N/A>",
|
||||
# "code": "<N/A>"
|
||||
}
|
||||
entities = message.entities or []
|
||||
for item in entities:
|
||||
if item.type in data.keys():
|
||||
# Неправильно
|
||||
# data[item.type] = message.text[item.offset : item.offset+item.length]
|
||||
# Правильно
|
||||
data[item.type] = item.extract_from(message.text)
|
||||
await message.reply(
|
||||
"Вот что я нашёл:\n"
|
||||
f"URL: {html.quote(data['url'])}\n"
|
||||
f"E-mail: {html.quote(data['email'])}\n"
|
||||
f"Телефон: {html.quote(data['phone_number'])}\n"
|
||||
# f"Пароль: {html.quote(data['code'])}"
|
||||
)
|
||||
@dp.message(F.text.lower() == "круто")
|
||||
async def without_puree(message: types.Message):
|
||||
await message.reply("Соглашусь, это круто!")
|
||||
|
||||
|
||||
@dp.message(Command("settimer", prefix="/!")) # добавим дополнительные префиксы для оперделения команды
|
||||
async def cmd_settimer(
|
||||
@ -431,6 +412,31 @@ async def send_gif(message: Message):
|
||||
show_caption_above_media=True
|
||||
)
|
||||
|
||||
# Извлекаем из сообщений пользователя данные url, email, телефон и код
|
||||
@dp.message(F.text)
|
||||
async def extract_data(message: Message):
|
||||
data = {
|
||||
"url": "<N/A>",
|
||||
"email": "<N/A>",
|
||||
"phone_number": "<N/A>",
|
||||
# "code": "<N/A>"
|
||||
}
|
||||
entities = message.entities or []
|
||||
for item in entities:
|
||||
if item.type in data.keys():
|
||||
# Неправильно
|
||||
# data[item.type] = message.text[item.offset : item.offset+item.length]
|
||||
# Правильно
|
||||
data[item.type] = item.extract_from(message.text)
|
||||
await message.reply(
|
||||
"Вот что я нашёл:\n"
|
||||
f"URL: {html.quote(data['url'])}\n"
|
||||
f"E-mail: {html.quote(data['email'])}\n"
|
||||
f"Телефон: {html.quote(data['phone_number'])}\n"
|
||||
# f"Пароль: {html.quote(data['code'])}"
|
||||
)
|
||||
|
||||
|
||||
# Запуск процесса поллинга новых апдейтов
|
||||
async def main():
|
||||
# Регистрируем хэндлер cmd_test2 по команде /start
|
||||
|
Loading…
x
Reference in New Issue
Block a user