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())
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)
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()
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()
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())
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()
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())
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)
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)