from dataclasses import dataclass import os import random from telebot.types import Message from exception import UnknownAnimationType @dataclass(frozen=True, init=True, eq=True) class FemboyGeneratorResult: send: bool message: Message | None = None media_type: str | None = None media_path: str | None = None class FemboyGeneratorMsgProcessor: ODDS = 1/200 TRIGGER_WORDS = [ "uwu", "femboy", "фембой", ] def __init__(self, msg: Message): self._msg = msg def process_trigger_words(self) -> bool: t = self._msg.text.lower() for tw in self.TRIGGER_WORDS: if tw in t: return True return False @staticmethod def pick_random_media() -> str: return random.choice(os.listdir("femboys")) @staticmethod def get_media_type(path: str) -> str: if path.endswith((".jpg", ".jpeg", ".png")): return "pic" elif path.endswith((".mp4", ".m4a", ".gif")): return "gif" raise UnknownAnimationType("Unknown media type in femboys folder -w-") def process(self) -> FemboyGeneratorResult: if self._msg: if random.random() < self.ODDS or self.process_trigger_words(): random_file_path = self.pick_random_media() return FemboyGeneratorResult( send=True, message=self._msg, media_type=self.get_media_type(random_file_path), media_path=random_file_path ) return FemboyGeneratorResult(send=False)