def clean_deleted(bot: BOT, message: Message): if AdminCheck(message) is True: message.edit("`Iterating through memberlist...`") all_members = BOT.iter_chat_members(message.chat.id) to_remove = [] removed = [] for member in all_members: if member.user.is_deleted: to_remove.append(member.user.id) message.edit(f"`{len(to_remove)} deleted accounts found.`") for usr in to_remove: try: BOT.kick_chat_member( chat_id=message.chat.id, user_id=usr) removed.append(usr) except UserAdminInvalid: pass except FloodWait as e: sleep(e.x) message.edit(f"Removed {len(removed)} deleted accounts.")
def pingall(bot: BOT, message: Message): chat_members = bot.iter_chat_members(message.chat.id) tagable = [create_link(x) for x in chat_members if not x.user.is_bot] for i in range(math.ceil(len(tagable) / 10)): toTag = tagable[i * 10:(i + 1) * 10] bot.send_message(message.chat.id, " ".join(map(str, toTag))) sleep(1)
def get_members(bot: BOT, message: Message): if message.chat.type == 'private': message.delete() else: total = 0 admins = 0 members = 0 bots = 0 deleted = 0 for member in BOT.iter_chat_members(message.chat.id): total += 1 if member.user.is_bot: bots += 1 elif member.user.is_deleted: deleted += 1 elif member.status in ['creator', 'administrator']: admins += 1 elif not member.user.is_deleted and not member.user.is_bot: members += 1 member_count_text = MEMBER_INFO.format(message.chat.title, total, admins, members, bots, deleted) message.edit(member_count_text) LogMessage(member_count_text)
def get_admins(bot: BOT, message: Message): if message.chat.type == 'private': message.edit("There are no admins in private chats...") sleep(2) message.delete() else: all_admins = BOT.iter_chat_members(chat_id=message.chat.id, filter='administrators') creator = None admins = [] for admin in all_admins: if admin.status == 'creator': creator = admin elif admin.status == 'administrator': admins.append(admin) sorted_admins = sorted(admins, key=lambda usid: usid.user.id) AdminList = ADMINTITLE.format(message.chat.title) if creator: AdminList += ADMINCREATOR.format( str(creator.user.id).rjust(10), creator.user.first_name, creator.user.id) AdminList += "╔ **Admins**\n" for admin in sorted_admins: if admin is sorted_admins[-1]: if admin.user.is_bot: AdminList += ADMINLISTLASTBOT.format( str(admin.user.id).rjust(10), admin.user.first_name, admin.user.id) else: AdminList += ADMINLISTLAST.format( str(admin.user.id).rjust(10), admin.user.first_name, admin.user.id) else: if admin.user.is_bot: AdminList += ADMINLISTBOT.format( str(admin.user.id).rjust(10), admin.user.first_name, admin.user.id) else: AdminList += ADMINLIST.format( str(admin.user.id).rjust(10), admin.user.first_name, admin.user.id) message.edit(AdminList) LogMessage(AdminList)