diff --git a/utils/handlers.py b/utils/handlers.py index cdf97e4..c4dba5e 100644 --- a/utils/handlers.py +++ b/utils/handlers.py @@ -857,9 +857,16 @@ class PromoteHandler: async def handle_reply_promote(self): if self.message.chat.type not in [ChatType.PRIVATE, ChatType.CHANNEL]: user_for_promote = self.message.reply_to_message.from_user + promote_title = ( + self.message.text.split(maxsplit=1)[1] + if len(self.message.text.split()) > 1 + else None + ) + if promote_title and len(promote_title) > 16: + promote_title = promote_title[:16] if user_for_promote: try: - await self.promote_user(user_for_promote.id) + await self.promote_user(user_for_promote.id, promote_title) await self.message.edit( self.construct_promote_message(user_for_promote) ) @@ -876,9 +883,16 @@ class PromoteHandler: if self.message.chat.type not in [ChatType.PRIVATE, ChatType.CHANNEL]: if len(self.cause.split()) > 1: user_to_promote = await self.get_user_to_promote() + promote_title = ( + " ".join(self.cause.split(" ")[2:]) + if len(self.cause.split(" ")) > 2 + else None + ) + if promote_title and len(promote_title) > 16: + promote_title = promote_title[:16] if user_to_promote: try: - await self.promote_user(user_to_promote.id) + await self.promote_user(user_to_promote.id, promote_title) await self.message.edit( self.construct_promote_message(user_to_promote) ) @@ -902,12 +916,13 @@ class PromoteHandler: await self.message.edit("Invalid user type") return None - async def promote_user(self, user_id): + async def promote_user(self, user_id, title): try: await self.client.promote_chat_member( self.chat_id, user_id, privileges=ChatPrivileges(**self.common_privileges_promote), + title=title, ) if len(self.cause.split()) > 1 and self.message.chat.type == "group": await self.client.set_administrator_title( @@ -925,7 +940,7 @@ class PromoteHandler: def construct_promote_message(self, user): return ( f"{user.first_name} promoted!" - + f"\n{'Prefix: ' + self.cause.split(' ', maxsplit=1)[1] + '' if len(self.cause.split()) > 1 else ''}" + + f"\n{'Title: ' + self.cause.split(' ', maxsplit=1)[1] + '' if len(self.cause.split()) > 1 else ''}" )