Example #1
0
    async def _get_profiles(self, names):
        if not names:
            names = ['me']

        uids = []
        for name in names:
            if name == 'me' or name == 'myself':
                uids.append(self.bot.user.id)
                continue

            match = MENTION_REGEX.match(name)
            if match is not None:
                uid = int(match[1])
            elif name.isdigit():
                uid = int(name)
            else:
                nname = normalize_caseless(name)
                uid = discord.utils.find(
                    lambda u, n=nname: normalize_caseless(u.name) == n,
                    self.bot.users)

            uids.append(uid)

        profiles = await asyncio.gather(
            *[self._get_profile(uid) for uid in uids])
        return list(filter(lambda t: t[1] is not None, profiles))
Example #2
0
 def _get_user_mention(self, name):
     if name.isdigit():
         id = int(name)
         user = self.bot.get_user(id)
     else:
         name = utils.normalize_caseless(name)
         user = discord.utils.find(
             lambda u: utils.normalize_caseless(u.name) == name,
             self.bot.users)
     return getattr(user, 'mention', '(No such user)')
Example #3
0
 def _get_channel_mention(self, name, guild=None):
     if name.isdigit():
         id = int(name)
         chan = self.bot.get_channel(id)
     else:
         name = utils.normalize_caseless(name)
         channels = guild.channels if guild else self.bot.get_all_channels()
         chan = discord.utils.find(
             lambda c: utils.normalize_caseless(c.name) == name, channels)
     return getattr(chan, 'mention', '(No such channel)')
Example #4
0
    def _get_guild(self, ctx, name):
        if name is None:
            return ctx.guild

        if name.isdigit():
            return self.bot.get_guild(int(name))
        else:
            name = normalize_caseless(name)
            for guild in self.bot.guilds:
                if normalize_caseless(guild.name) == name:
                    return guild
        return None