Esempio n. 1
0
 async def yes():
     await infraction.delete()
     await MessageUtils.send_to(ctx, "YES", "inf_delete_deleted", id=infraction.id)
     GearbotLogging.log_key(ctx.guild.id, 'inf_delete_log', id=infraction.id, target=Utils.clean_user(target),
                            target_id=target.id, mod=Utils.clean_user(mod), mod_id=mod.id if mod is not None else 0, reason=reason,
                            user=Utils.clean_user(ctx.author), user_id=ctx.author.id)
     InfractionUtils.clear_cache(ctx.guild.id)
Esempio n. 2
0
 async def update(self, ctx: commands.Context, infraction: ServerInfraction, *, reason: Reason):
     """inf_update_help"""
     infraction.mod_id = ctx.author.id
     infraction.reason = reason
     infraction.save()
     await MessageUtils.send_to(ctx, 'YES', 'inf_updated', id=infraction.id)
     InfractionUtils.clear_cache(ctx.guild.id)
Esempio n. 3
0
 async def claim(self, ctx, infraction: ServerInfraction):
     """inf_claim_help"""
     infraction.mod_id = ctx.author.id
     infraction.save()
     await MessageUtils.send_to(ctx,
                                'YES',
                                'inf_claimed',
                                inf_id=infraction.id)
     InfractionUtils.clear_cache(ctx.guild.id)
Esempio n. 4
0
 async def update(self, ctx: commands.Context, infraction: ServerInfraction, *, reason: Reason):
     """inf_update_help"""
     infraction.mod_id = ctx.author.id
     infraction.reason = reason
     await infraction.save()
     await MessageUtils.send_to(ctx, 'YES', 'inf_updated', id=infraction.id)
     InfractionUtils.clear_cache(ctx.guild.id)
     user = await Utils.get_user(infraction.user_id)
     GearbotLogging.log_key(ctx.guild.id, "inf_update_log", inf=infraction.id, user=Utils.clean_user(user), userid=user.id, mod=Utils.clean_user(ctx.author), modid=ctx.author.id, reason=reason)
Esempio n. 5
0
 async def mute_punishment(self, v: Violation):
     duration = v.bucket["PUNISHMENT"]["DURATION"]
     until = time.time() + duration
     reason = self.assemble_reason(v)
     role = AntiSpam._get_mute_role(v.guild)
     i = await Infraction.get_or_none(user_id=v.member.id,
                                      type="Mute",
                                      guild_id=v.member.guild.id,
                                      active=True)
     if i is None:
         i = await InfractionUtils.add_infraction(v.guild.id,
                                                  v.member.id,
                                                  self.bot.user.id,
                                                  'Mute',
                                                  reason,
                                                  end=until)
         try:
             await v.member.add_roles(role, reason=reason)
         except Forbidden:
             GearbotLogging.log_key(v.guild.id,
                                    'mute_punishment_failure',
                                    user=Utils.clean_user(v.member),
                                    user_id=v.member.id,
                                    duration=Utils.to_pretty_time(
                                        duration, v.guild.id),
                                    reason=reason,
                                    inf=i.id)
         else:
             GearbotLogging.log_key(v.guild.id,
                                    'mute_log',
                                    user=Utils.clean_user(v.member),
                                    user_id=v.member.id,
                                    moderator=Utils.clean_user(v.guild.me),
                                    moderator_id=v.guild.me.id,
                                    duration=Utils.to_pretty_time(
                                        duration, v.guild.id),
                                    reason=reason,
                                    inf=i.id)
     else:
         i.end += datetime.timedelta(seconds=duration)
         i.reason += f'+ {reason}'
         i.save()
         GearbotLogging.log_key(v.guild.id,
                                'mute_duration_extended_log',
                                user=Utils.clean_user(v.member),
                                user_id=v.member.id,
                                moderator=Utils.clean_user(v.guild.me),
                                moderator_id=v.guild.me.id,
                                duration=Utils.to_pretty_time(
                                    duration, v.guild.id),
                                reason=reason,
                                inf_id=i.id,
                                end=i.end)
         InfractionUtils.clear_cache(v.guild.id)
Esempio n. 6
0
    async def update(self, ctx: commands.Context, infraction: ServerInfraction, *, reason: Reason):
        """inf_update_help"""
        reason += ",".join(Utils.assemble_attachment(ctx.message.channel.id, attachment.id, attachment.filename) for attachment in ctx.message.attachments)
        if len(reason) > 1800:
            raise TranslatedBadArgument('reason_too_long', ctx)

        infraction.mod_id = ctx.author.id
        infraction.reason = reason
        await infraction.save()
        await MessageUtils.send_to(ctx, 'YES', 'inf_updated', id=infraction.id)
        InfractionUtils.clear_cache(ctx.guild.id)
        user = await Utils.get_user(infraction.user_id)
        GearbotLogging.log_key(ctx.guild.id, "inf_update_log", inf=infraction.id, user=Utils.clean_user(user), userid=user.id, mod=Utils.clean_user(ctx.author), modid=ctx.author.id, reason=reason)
Esempio n. 7
0
    async def mute_punishment(self, v: Violation):
        duration = v.bucket["PUNISHMENT"]["DURATION"]
        until = time.time() + duration
        reason = self.assemble_reason(v)
        role = AntiSpam._get_mute_role(v.guild)
        i = await Infraction.get_or_none(user_id = v.member.id, type = "Mute", guild_id = v.member.guild.id, active=True)
        if i is None:
            i = await InfractionUtils.add_infraction(v.guild.id, v.member.id, self.bot.user.id, 'Mute', reason,
                                               end=until)
            try:
                await v.member.add_roles(role, reason=reason)
            except Forbidden:
                GearbotLogging.log_key(v.guild.id, 'mute_punishment_failure',
                                       user=Utils.clean_user(v.member),
                                       user_id=v.member.id,
                                       duration=Utils.to_pretty_time(duration, v.guild.id),
                                       reason=reason, inf=i.id)
            else:
                GearbotLogging.log_key(v.guild.id, 'mute_log',
                                       user=Utils.clean_user(v.member),
                                       user_id=v.member.id,
                                       moderator=Utils.clean_user(v.guild.me),
                                       moderator_id=v.guild.me.id,
                                       duration=Utils.to_pretty_time(duration, v.guild.id),
                                       reason=reason, inf=i.id)
                if Configuration.get_var(v.guild.id, "INFRACTIONS", "DM_ON_MUTE"):
                    await Utils.send_infraction(self.bot, v.member, v.guild, 'MUTE', 'mute', reason, duration=Utils.to_pretty_time(duration, v.guild.id))
        else:
            i.end += duration
            i.reason += Utils.trim_message(f'+ {reason}', 2000)
            await i.save()
            GearbotLogging.log_key(v.guild.id, 'mute_duration_extended_log',
                                   user=Utils.clean_user(v.member),
                                   user_id=v.member.id,
                                   moderator=Utils.clean_user(v.guild.me),
                                   moderator_id=v.guild.me.id,
                                   duration=Utils.to_pretty_time(duration, v.guild.id),
                                   reason=reason, inf_id=i.id, end=i.end)
            InfractionUtils.clear_cache(v.guild.id)

        if v.member.voice:
            permissions = v.member.voice.channel.permissions_for(v.guild.me)
            if permissions.move_members:
                await v.member.move_to(None, reason=f"{reason}")
Esempio n. 8
0
 async def yes(interaction: disnake.Interaction):
     await infraction.delete()
     await interaction.response.edit_message(
         content=MessageUtils.assemble(ctx,
                                       "YES",
                                       "inf_delete_deleted",
                                       id=infraction.id),
         view=None)
     GearbotLogging.log_key(ctx.guild.id,
                            'inf_delete_log',
                            id=infraction.id,
                            target=Utils.clean_user(target),
                            target_id=target.id,
                            mod=Utils.clean_user(mod),
                            mod_id=mod.id if mod is not None else 0,
                            reason=reason,
                            user=Utils.clean_user(ctx.author),
                            user_id=ctx.author.id)
     InfractionUtils.clear_cache(ctx.guild.id)