From 38159dbf9dfe89cd8c3d70e5b1e45113648fbe65 Mon Sep 17 00:00:00 2001 From: mrmissx Date: Wed, 12 Jul 2023 21:56:47 +0700 Subject: [PATCH] fix(federation): remove bot owner check on leavefed --- anjani/plugins/federation.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/anjani/plugins/federation.py b/anjani/plugins/federation.py index a1038aea7..d588d3fdc 100644 --- a/anjani/plugins/federation.py +++ b/anjani/plugins/federation.py @@ -436,29 +436,30 @@ async def cmd_joinfed(self, ctx: command.Context, fid: Optional[str] = None) -> return ret @command.filters(filters.admin_only) - async def cmd_leavefed(self, ctx: command.Context, fid: Optional[str] = None) -> str: + async def cmd_leavefed(self, ctx: command.Context) -> str: """Leave a federation in chats""" chat = ctx.chat user = ctx.msg.from_user invoker = await chat.get_member(user.id) - if invoker.status != ChatMemberStatus.OWNER or invoker.user.id != self.bot.owner: + if invoker.status != ChatMemberStatus.OWNER: return await self.text(chat.id, "err-group-creator-cmd") - if not fid: - return await self.text(chat.id, "fed-not-found") - - exists = await self.get_fed(fid) - if not exists: - return await self.text(chat.id, "fed-invalid-id") + fed = await self.get_fed_bychat(chat.id) - if chat.id not in exists.get("chats", []): + if not fed: return await self.text(chat.id, "fed-not-connected") ret, _ = await asyncio.gather( - self.text(chat.id, "fed-chat-leave-info", exists["name"]), - self.db.update_one({"_id": fid}, {"$pull": {"chats": chat.id}}), + self.text(chat.id, "fed-chat-leave-info", fed["name"]), + self.db.update_one({"_id": fed["_id"]}, {"$pull": {"chats": chat.id}}), ) + + if log := fed.get("log"): + await self.bot.client.send_message( + log, + f"**New Chat Joined Federation**\n**Name**: {chat.title}", + ) return ret @command.filters(aliases=["fpromote"])