41 lines
1.2 KiB
Python
Raw Normal View History

from typing import Iterable
from config.contents import mention_failed
from entity.user import User
from repository.userRepository import UserRepository
from telegram.ext.callbackcontext import CallbackContext
from telegram.ext.commandhandler import CommandHandler
from telegram.update import Update
from handler.abstractHandler import AbstractHandler
class MentionHandler(AbstractHandler):
botHandler: CommandHandler
userRepository: UserRepository
def __init__(self) -> None:
self.botHandler = CommandHandler('everyone', self.handle)
self.userRepository = UserRepository()
def handle(self, update: Update, context: CallbackContext) -> None:
updateData = self.getUpdateData(update)
users = self.userRepository.getAllForChat(updateData.getChatId())
if users:
self.reply(update, self.buildMentionMessage(users))
return
self.reply(update, mention_failed)
def getBotHandler(self) -> CommandHandler:
return self.botHandler
def buildMentionMessage(self, users: Iterable[User]) -> str:
result = ''
for user in users:
result += f'*[{user.getUsername()}](tg://user?id={user.getUserId()})* '
return result