Esempio n. 1
0
async def log(context):
    await client.send_typing(context.message.channel)
    msgs = []
    do_filter = bool(context.message.mentions)
    try:
        num = int(re.search(r'\d+', context.message.content).group())
    except:
        num = 0
    num = 25 if num == 0 or num > 25 else num
    author = client.user

    em = discord.Embed(title='Last %s messages' % (str(num)),
                       description='My Embed Content.',
                       colour=0x5998ff)
    if (do_filter):
        author = context.message.mentions[0]
    lembed = list_embed('Last %s messages' % (str(num)), 'here you go', author)
    async for message in client.logs_from(context.message.channel, limit=1000):
        if (not do_filter or message.author == context.message.mentions[0]):
            msgs.append(message)
        if (len(msgs) >= num):
            break
    for message in reversed(msgs):
        lembed.add(author.display_name, message.content)
    await client.send_message(context.message.channel,
                              embed=lembed.get_embed())
Esempio n. 2
0
    async def exec_cmd(self, **kwargs):
        ROLES_DICT = kwargs['ROLES_DICT']
        await self.client.send_typing(self.channel)
        arg = self.content.split(' ')
        member = self.author
        if (len(arg) < 2):
            requested_role = 'list'
        else:
            del arg[0]
            requested_role = ' '.join(arg)

        if (requested_role == 'list'):
            lembed = list_embed('Available Roles', '`!role [role]`', self.client.user)
            roles = "Available roles:\n"
            for roletag, rolename in ROLES_DICT.items():
                lembed.add(rolename, roletag)
            await self.client.send_message(self.channel, embed=lembed.get_embed())
        elif (requested_role.lower() in (name.lower() for name in ROLES_DICT)):
            filtered = filter(lambda role: role.name == ROLES_DICT[requested_role], member.server.role_hierarchy)
            action = 'Added'
            prep = 'to'
            try:
                role = next(filtered)
                if (role in member.roles):
                    await self.client.remove_roles(member, role)
                    action = 'Removed'
                    prep = 'from'
                else:
                    await self.client.add_roles(member, role)
            except:
                await self.client.send_message(self.channel, "Could not add %s to %s." % (self.author.mention, requested_role))
            else:
                await self.client.send_message(self.channel, "%s %s %s %s." % (action, self.author.mention, prep, requested_role))
        else:
            await self.client.send_message(self.channel, "I don't know that role, %s" % self.author.mention)
Esempio n. 3
0
 def get_help(self):
     lembed = list_embed('Available Roles', '`!role [role]`',
                         self.client.user)
     roles = "Available roles:\n"
     for roletag, rolename in ROLES_DICT.items():
         lembed.add(rolename, roletag)
     return lembed.get_embed()
Esempio n. 4
0
 def add_popup(self):
     title = "last %d edits" % (len(self.edits))
     lem = list_embed(title, self.ogtime.strftime("%m-%d %I:%M %p"),
                      self.most_recent.author)
     for edit in self.edits:
         est = self.get_datetime(edit.timestamp)
         lem.add(est.strftime("%I:%M:%S %p"), edit.content)
     return lem.get_embed()
Esempio n. 5
0
async def roleids(ctx):
    channel = ctx.message.channel
    lem = list_embed(channel.guild.name, '')
    lem.name = "Role IDs"
    for role in channel.guild.roles:
        if not role.is_everyone:
            lem.add(role.name, role.id)
    print(lem.get_embed().to_dict())
    await channel.send(embed=lem.get_embed())
Esempio n. 6
0
 def qembed(self):
     name = self.name or "None"
     lem = list_embed("Currently Playing:", "*%s*" % name, self.bot.user)
     lem.color = 0x6600ff
     lem.icon_url = ''
     lem.name = "Song Queue"
     for i in range(len(self.q)):
         song = self.q[len(self.q) - i - 1]
         lem.add("%d. *%s*" % (i + 1, song.title), song.url)
     return lem.get_embed()
Esempio n. 7
0
    async def exec_cmd(self, **kwargs):
        channel = self.channel
        await self.client.send_typing(channel)
        msgs = []
        do_filter = bool(self.message.mentions)
        try:
            num = int(re.search(r'\d+', self.message.clean_content).group())
        except:
            num = 25
        num = max(num, 1)
        num = min(num, 200)

        async for message in self.client.logs_from(channel, limit=5000):
            if (not do_filter or message.author in self.message.mentions):
                msgs.append(message)
            if (len(msgs) >= num):
                break
        msgs.reverse()
        twenty_five = [msgs[x:x + 25] for x in range(0, len(msgs), 25)]
        target_channel = channel
        if len(twenty_five) > 1:
            botcommands = discord.utils.get(channel.server.channels,
                                            name='bot-commands',
                                            type=ChannelType.text)
            if botcommands:
                target_channel = botcommands
                await self.client.send_message(channel, botcommands.mention)

        for messages in twenty_five:
            lembed = list_embed('Last %s messages' % num, channel.mention,
                                self.client.user)
            lembed.color = 0x9e6338
            lembed.icon_url = 'https://engineeringblog.yelp.com/images/previews/logfeeder.png'
            lembed.name = channel.server.name
            for message in messages:
                if message.id == self.message.id:
                    continue
                elif message.content:
                    lembed.add(message.author.display_name, message.content)
                elif message.embeds:
                    em = message.embeds[0]
                    lembed.add(
                        message.author.display_name,
                        em['url'] if 'url' in em.keys() else em['title'])
                elif message.attachments:
                    lembed.add(message.author.display_name,
                               message.attachments[0]['url'] or '')
            await self.client.send_message(target_channel,
                                           embed=lembed.get_embed())
Esempio n. 8
0
async def test(context):
    author = context.message.author
    server = context.message.channel.server
    if (author.id != JOHNYS_ID and author.id != GHOSTS_ID):
        await client.send_message(context.message.channel, "it works")
        return
    await client.change_nickname(server.get_member(client.user.id), 't')
    await client.send_message(context.message.channel, "```usage:       !gulag <member>\ndescription: Starts a vote to move a member to the gulag. Each vote over the threshold (5) will add additional time.```")

    await client.send_message(context.message.channel,'<%s>' % author.avatar_url if author.avatar_url else author.default_avatar_url)
    await client.change_nickname(server.get_member(client.user.id), None)
    #usr = context.message.mentions[0]
    #await client.send_message(context.message.channel, usr.avatar_url if usr.avatar_url else usr.default_avatar_url)
    lem = list_embed('https://giphy.com/gifs/vv41HlvfogHAY', context.message.channel.mention, context.message.author)
    await client.send_message(context.message.channel, embed=lem.get_embed())

    emojis = client.get_all_emojis()
    for emoji in emojis:
        await client.send_message(context.message.channel, emoji.url)
Esempio n. 9
0
async def test(context):
    if (message.author.id != JOHNYS_ID):
        await client.send_message(context.message.channel, "it works")
        return
    lem = list_embed('https://giphy.com/gifs/vv41HlvfogHAY',
                     context.message.channel.mention, context.message.author)
    await client.send_message(context.message.channel, embed=lem.get_embed())

    emojis = client.get_all_emojis()
    for emoji in emojis:
        if (emoji.name == 'reee'):
            NORM_EMOJI_OBJ = str(emoji)
        elif (emoji.name == 'pech'):
            TOXIC_EMOJI_OBJ = str(emoji)

    await client.send_message(context.message.channel,
                              context.message.channel.id)
    await client.send_message(context.message.channel, ":heart:")
    await client.send_message(context.message.channel,
                              next(client.get_all_emojis()))
    await client.send_message(context.message.channel, NORM_EMOJI_OBJ)