Telegram bot map user data for callback query (#74302)

fix(component/telegram-bot): map user data for callback query
This commit is contained in:
Lerosen 2022-07-06 11:21:15 +02:00 committed by GitHub
parent 8fb9b45e42
commit 8b97271c26
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -19,6 +19,7 @@ from telegram import (
ReplyKeyboardMarkup,
ReplyKeyboardRemove,
Update,
User,
)
from telegram.error import TelegramError
from telegram.ext import CallbackContext, Filters
@ -966,16 +967,17 @@ class BaseTelegramBotEntity:
event_data[ATTR_TEXT] = message.text
if message.from_user:
event_data.update(
{
ATTR_USER_ID: message.from_user.id,
ATTR_FROM_FIRST: message.from_user.first_name,
ATTR_FROM_LAST: message.from_user.last_name,
}
)
event_data.update(self._get_user_event_data(message.from_user))
return event_type, event_data
def _get_user_event_data(self, user: User) -> dict[str, Any]:
return {
ATTR_USER_ID: user.id,
ATTR_FROM_FIRST: user.first_name,
ATTR_FROM_LAST: user.last_name,
}
def _get_callback_query_event_data(
self, callback_query: CallbackQuery
) -> tuple[str, dict[str, Any]]:
@ -991,6 +993,9 @@ class BaseTelegramBotEntity:
event_data[ATTR_MSG] = callback_query.message.to_dict()
event_data[ATTR_CHAT_ID] = callback_query.message.chat.id
if callback_query.from_user:
event_data.update(self._get_user_event_data(callback_query.from_user))
# Split data into command and args if possible
event_data.update(self._get_command_event_data(callback_query.data))