hublinker.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:Squid-Plugins 作者: tekulvw 项目源码 文件源码
def initial_linker(self, master, slave):
        master = discord.utils.get(self.bot.servers, id=master)
        slave = discord.utils.get(self.bot.servers, id=slave)
        if master is None or slave is None:
            return

        my_role = discord.utils.find(lambda r: r.name.lower() == "squid",
                                     slave.roles)
        if my_role is None:
            role_dict = {}
            role_dict['permissions'] = \
                discord.Permissions(permissions=36826127)
            role_dict['name'] = "Squid"
            my_server_role = await self.bot.create_role(slave, **role_dict)
            await self.bot.add_roles(slave.me, my_server_role)

        log.debug('Slave roles:\n\t{}'.format(
            [role.name for role in slave.roles]))

        await self._delete_all_roles(slave)

        log.debug('Slave roles:\n\t{}'.format(
            [role.name for role in slave.roles]))

        await self._create_all_roles(slave, master)

        # We only really care about the online people, this way we *hopefully*
        # don't get ourselves rate-limited on large servers.

        online_master_members = [m for m in master.members
                                 if m.status == discord.Status.online]
        omm_withrole = [m for m in online_master_members if len(m.roles) > 1]
        ommwr_in_slave = [m for m in omm_withrole if m in slave.members]

        log.debug('members to give role to RN:\n\t{}'.format(
            [m.name for m in ommwr_in_slave]))

        for m in ommwr_in_slave:
            slave_member = discord.utils.get(slave.members, id=m.id)
            to_add = []
            for mrole in m.roles:
                if mrole.name.lower() == "@everyone" \
                        or mrole.name.lower() == "squid":
                    continue
                log.debug(self._matching_role(slave, mrole))
                to_add.append(self._matching_role(slave, mrole))
            log.debug('adding roles to {0.name} on {1.id}:\n\t{2}'.format(
                slave_member, slave, [r.name for r in to_add]))
            discord.compat.create_task(
                self.bot.add_roles(slave_member, *to_add))
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号