29 lines
771 B
Python
29 lines
771 B
Python
|
from dataclasses import dataclass
|
||
|
|
||
|
from pyrogram.types import CallbackQuery
|
||
|
|
||
|
|
||
|
@dataclass
|
||
|
class CallbackLanguage:
|
||
|
language: str
|
||
|
|
||
|
@classmethod
|
||
|
def from_callback(cls, callback: CallbackQuery):
|
||
|
"""Parse callback query and extract language data from it.
|
||
|
|
||
|
### Args:
|
||
|
* callback (`CallbackQuery`): Callback query got from user interaction.
|
||
|
|
||
|
### Raises:
|
||
|
* `ValueError`: Raised when callback provided is not a language one.
|
||
|
|
||
|
### Returns:
|
||
|
* `CallbackLanguage`: Parsed callback query.
|
||
|
"""
|
||
|
action, language = str(callback.data).split(":")
|
||
|
|
||
|
if action.lower() != "language":
|
||
|
raise ValueError("Callback provided is not a language callback")
|
||
|
|
||
|
return cls(language)
|