mirror of
https://github.com/miloszowi/everyone-mention-telegram-bot.git
synced 2025-05-20 09:14:07 +00:00
43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
from ..config.contents import mention_failed
|
|
from ..entities.group import Group
|
|
from ..entities.user import User
|
|
from ..firebaseProxy import FirebaseProxy
|
|
from ..repositories.groupRepository import GroupRepository
|
|
from .handlerInterface import HandlerInterface
|
|
from telegram.ext.callbackcontext import CallbackContext
|
|
from telegram.ext.commandhandler import CommandHandler
|
|
from telegram.update import Update
|
|
|
|
|
|
class MentionHandler(HandlerInterface):
|
|
botHandler: CommandHandler
|
|
commandName: str = 'everyone'
|
|
|
|
def __init__(self) -> None:
|
|
self.botHandler = CommandHandler(
|
|
self.getCommandName(),
|
|
self.handle
|
|
)
|
|
|
|
def handle(self, update: Update, context: CallbackContext) -> None:
|
|
groupId = update.effective_chat.id
|
|
groupRepository = GroupRepository()
|
|
mentionMessage = self.buildMentionMessage(groupRepository.get(id=groupId))
|
|
|
|
update.message.reply_markdown_v2(text=mentionMessage)
|
|
|
|
def getBotHandler(self) -> CommandHandler:
|
|
return self.botHandler
|
|
|
|
def getCommandName(self) -> str:
|
|
return self.commandName
|
|
|
|
def buildMentionMessage(self, group: Group) -> str:
|
|
result = ''
|
|
|
|
for user in group.getUsers():
|
|
username = user.getUsername() or user.getId()
|
|
result += f'*[{username}](tg://user?id={user.getId()})* '
|
|
|
|
return result or mention_failed
|