T
Size: a a a
T
P#
P#
T
P#
T
class SepCallbackData:
def __init__(self, prefix: str, type_: Type[NamedTuple], sep: str = "_"):
self.prefix = prefix
self.sep = sep
self.data_type = type_
if sep in prefix:
raise ValueError(f"prefix cannot contain sep '{sep}'")
def check(self, c: CallbackQuery):
if c.data.startswith(self.prefix):
params = c.data.split(self.sep)[1:]
return {"callback_data": self.data_type(*params)}
def render(self, *args, **kwargs) -> str:
data = self.data_type(*args, **kwargs)
return self.prefix + self.sep + self.sep.join(map(str, data))
P#
T
q
P#
KG
T
P#
T
P#
Callable
:DDq
q
q
{
"update_id": 923209072,
"message": {
"message_id": 285971,
"from": {
"id": 1034443264,
"is_bot": false,
"first_name": "cul",
"username": "culnaen",
"language_code": "ru"
},
"chat": {
"id": 1034443264,
"first_name": "cul",
"username": "culnaen",
"type": "private"
},
"date": 1587387438,
"reply_to_message": {
"message_id": 285970,
"from": {
"id": 285793787,
"is_bot": true,
"first_name": "Show Json Bot",
"username": "ShowJsonBot"
},
"chat": {
"id": 1034443264,
"first_name": "cul",
"username": "culnaen",
"type": "private"
},
"date": 1587387434,
"text": "{\n \"update_id\": 923209071,\n \"message\": {\n \"message_id\": 285969,\n \"from\": {\n \"id\": 1034443264,\n \"is_bot\": false,\n \"first_name\": \"cul\",\n \"username\": \"culnaen\",\n \"language_code\": \"ru\"\n },\n \"chat\": {\n \"id\": 1034443264,\n \"first_name\": \"cul\",\n \"username\": \"culnaen\",\n \"type\": \"private\"\n },\n \"date\": 1587387434,\n \"text\": \"test\"\n }\n}",
"entities": [
{
"offset": 0,
"length": 350,
"type": "pre"
}
]
},
"text": "test_1"
}
}