async def is_administrator(user_id: int, message): admin = False async for user in client.iter_participants( message.chat_id, filter=ChannelParticipantsAdmins): if user_id == user.id or user_id in OFFICERS or user_id in devs: admin = True break return admin
async def _(event): if event.fwd_from: return if event.is_group: if not await can_ban_users(message=event): return else: return # Here laying the sanity check chat = await event.get_chat() admin = chat.admin_rights.ban_users creator = chat.creator # Well if not admin and not creator: await event.reply("`I don't have enough permissions!`") return c = 0 KICK_RIGHTS = ChatBannedRights(until_date=None, view_messages=True) done = await event.reply("Working ...") async for i in bot.iter_participants(event.chat_id): if isinstance(i.status, UserStatusLastMonth): status = await tbot( EditBannedRequest(event.chat_id, i, KICK_RIGHTS)) if not status: return c = c + 1 if isinstance(i.status, UserStatusLastWeek): status = await tbot( EditBannedRequest(event.chat_id, i, KICK_RIGHTS)) if not status: return c = c + 1 if c == 0: await done.edit("Got no one to kick 😔") return required_string = "Successfully Kicked **{}** users" await event.reply(required_string.format(c))
async def _(event): if not event.is_group: return if event.is_group: if not await can_ban_users(message=event): return # Here laying the sanity check chat = await event.get_chat() admin = chat.admin_rights.ban_users creator = chat.creator # Well if not admin and not creator: await event.reply("`I don't have enough permissions!`") return done = await event.reply("Working ...") p = 0 async for i in bot.iter_participants(event.chat_id, filter=ChannelParticipantsBanned, aggressive=True): rights = ChatBannedRights( until_date=0, send_messages=False, ) try: await bot( functions.channels.EditBannedRequest(event.chat_id, i, rights)) except FloodWaitError as ex: logger.warn("sleeping for {} seconds".format(ex.seconds)) sleep(ex.seconds) except Exception as ex: await event.reply(str(ex)) else: p += 1 if p == 0: await done.edit("No one is muted in this chat") return required_string = "Successfully unmuted **{}** users" await event.reply(required_string.format(p))
async def job_close(): ws_chats = get_all_chat_id() if len(ws_chats) == 0: return for warner in ws_chats: try: await tbot.send_message( int(warner.chat_id), "`12:00 Am, Group Is Closing Till 6 Am. Night Mode Started !` \n**Powered By @AuraXRobot**", ) await tbot( functions.messages.EditChatDefaultBannedRightsRequest( peer=int(warner.chat_id), banned_rights=hehes)) if CLEAN_GROUPS: async for user in tbot.iter_participants(int(warner.chat_id)): if user.deleted: await tbot.edit_permissions(int(warner.chat_id), user.id, view_messages=False) except Exception as e: logger.info(f"Unable To Close Group {warner} - {e}")
async def get_users(show): if not show.is_group: return if show.is_group: if not await is_register_admin(show.input_chat, show.sender_id): return info = await bot.get_entity(show.chat_id) title = info.title if info.title else "this chat" mentions = "Users in {}: \n".format(title) async for user in bot.iter_participants(show.chat_id): if not user.deleted: mentions += f"\n[{user.first_name}](tg://user?id={user.id}) {user.id}" else: mentions += f"\nDeleted Account {user.id}" file = open("userslist.txt", "w+") file.write(mentions) file.close() await bot.send_file( show.chat_id, "userslist.txt", caption="Users in {}".format(title), reply_to=show.id, ) os.remove("userslist.txt")