Beispiel #1
0
 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)
Beispiel #2
0
 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)
Beispiel #3
0
    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)
Beispiel #4
0
    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)
Beispiel #5
0
 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)
Beispiel #6
0
 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')