async def unmute(self, ctx, *args): member = MemberConverter(ctx, args[0]).convert( ) if len(args) > 0 and args[0] else ctx.message.author server = ctx.message.server if server.id not in self.bot.audit_log.keys() or not is_mod(ctx): return if not get(member.roles, name="Muted"): await self.bot.say( f"The user: {str(member.name)}\#{str(member.discriminator)} was not muted." ) return await self.bot.remove_rank(server, "Muted", member) e = Embed( title= f"Member: {str(member.name)}\#{str(member.discriminator)} unmuted", description=member.mention + " " + member.display_name, colour=0xFFFF00, ) e.set_author(name=get_nick(member), icon_url=get_avatar(member)) e.set_thumbnail(url=get_avatar(member)) await self.bot.send_message(self.bot.get_channel( self.bot.audit_log[member.server.id]), embed=e) emojimeme = get(self.bot.get_all_emojis(), name='gladrad') await self.bot.add_reaction(ctx.message, emojimeme)
async def avatar(self, ctx, *args): urMum = MemberConverter(ctx, args[0]).convert( ) if len(args) > 0 and args[0] else ctx.message.author e = Embed() e.set_author(name=get_nick(urMum), icon_url=get_avatar(urMum)) e.set_image(url=get_avatar(urMum)) await self.bot.say(embed=e)
async def copy_channel(self, ctx, from_channel: str, to_channel: Channel, to_filter=None, limit=10000): if not is_mod(ctx): return from_channel = self.bot.get_channel( from_channel) or self.bot.get_channel(from_channel[2:-1]) if from_channel is None: await self.bot.say("Invalid from_channel") return if to_filter == "image": def to_filter(msg: Message): if msg.attachments or msg.embeds: return True else: # noinspection PyUnusedLocal def to_filter(msg: Message): return True msglist = [] async for i in afilter( self.bot.logs_from(from_channel, before=dt.utcnow(), limit=limit), to_filter): msglist.append(i) for i in msglist[::-1]: i: Message = i embed = Embed() embed.set_author(name=get_nick(i.author), icon_url=get_avatar(i.author)) if len(i.attachments) == 1: embed.set_image(url=i.attachments[0]["url"]) elif len(i.attachments) > 1: for ind, j in enumerate(i.attachments): aembed = deepcopy(embed) aembed.description = f"Image {ind+1}/{len(i.attachments)}" aembed.set_image(url=j["url"]) await self.bot.send_message(to_channel, embed=aembed) if i.embeds: with (suppress(IndexError, KeyError)): aembed = deepcopy(embed) aembed.set_image(url=i.embeds[0]['image']['url']) await self.bot.send_message(to_channel, embed=aembed) embed.description = i.content if embed.description or embed.image.url: await self.bot.send_message(to_channel, embed=embed)
def userJoined(self, user, channel): log.msg('%s joined %s' % (user, channel)) nick = utils.get_nick(user) for name, f in self._channels[channel].user_joins.items(): eb = functools.partial(self._log_callback, '<%s> error' % (name,), system=channel) self._call(f, nick, channel, eb=eb)
async def unmuteinternal(self, server, member, time): await asyncio.sleep(int(time) * 60) if not get(member.roles, name="Muted"): return await self.bot.remove_rank(server, "Muted", member) e = Embed( title= f"{str(member.name)}\#{str(member.discriminator)}'s mute expired.", description=member.mention + " " + member.display_name, colour=0xFFFF00, ) e.set_author(name=get_nick(member), icon_url=get_avatar(member)) e.set_thumbnail(url=get_avatar(member)) await self.bot.send_message(self.bot.get_channel( self.bot.audit_log[member.server.id]), embed=e)
def say_g(self, user, channel, args): if channel == self.nickname: self._proto.send_msg(utils.get_nick(user), 'secret g') else: self._proto.send_msg(channel, 'g')