Files
nosibakabot/bot/femboygenerator.py
2024-11-19 18:00:11 +03:00

58 lines
1.6 KiB
Python

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)