コード例 #1
0
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.")
コード例 #2
0
ファイル: PingallInGroup.py プロジェクト: 7DSMeliodas/Userbot
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)
コード例 #3
0
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)
コード例 #4
0
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)