Initial commit
This commit is contained in:
30
classes/callbacks.py
Normal file
30
classes/callbacks.py
Normal file
@@ -0,0 +1,30 @@
|
||||
from dataclasses import dataclass
|
||||
|
||||
from pyrogram.types import CallbackQuery
|
||||
|
||||
|
||||
@dataclass
|
||||
class CallbackLanguage:
|
||||
__slots__ = ("language",)
|
||||
|
||||
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)
|
||||
Reference in New Issue
Block a user