This repository has been archived on 2024-08-21. You can view files and clone it, but cannot push or open issues or pull requests.
EmojiCaptchaBot/classes/callbacks.py

53 lines
1.4 KiB
Python

from dataclasses import dataclass
from pyrogram.types import CallbackQuery
@dataclass
class CallbackVerify:
user_id: int
@classmethod
def from_callback(cls, callback: CallbackQuery):
action, user_id = str(callback.data).split(";")
if action.lower() != "verify":
raise ValueError("Callback provided is not a verification callback")
return cls(int(user_id))
@dataclass
class CallbackEmoji:
user_id: int
emoji: str
@classmethod
def from_callback(cls, callback: CallbackQuery):
action, user_id, emoji = str(callback.data).split(";")
if action.lower() != "emoji":
raise ValueError("Callback provided is not an emoji button callback")
return cls(int(user_id), emoji)
@dataclass
class CallbackBan:
user_id: int
@classmethod
def from_callback(cls, callback: CallbackQuery):
action, user_id = str(callback.data).split(";")
if action.lower() != "ban":
raise ValueError("Callback provided is not a ban callback")
return cls(int(user_id))
@dataclass
class CallbackLanguage:
language: str
@classmethod
def from_callback(cls, callback: CallbackQuery):
action, language = str(callback.data).split(";")
if action.lower() != "language":
raise ValueError("Callback provided is not a language callback")
return cls(language)