<commit_before>module Cygnus
  module Cygnus_Commands
    # PRUNE
    # Apaga mensagens de acordo com o filtro.
    module Prune
      extend Discordrb::Commands::CommandContainer

      # Apaga certo número de mensagens.
      command :rm, help_available: false,
               permission_level: 2, permission_message: false do |event, num|

        next "\\⚠ :: !rm [2-100]" unless num
        next "\\⚠ :: Não está entre o intervalo permitido." unless num.to_i >= 2 && num.to_i <= 100

        event.channel.prune( num.to_i )

        msg = "Prunou #{num.to_i} mensagens de ##{event.channel.name}."
        Cygnus::Database::Evento.create mod: event.user.distinct,
                                        mod_id: event.user.id,
                                        server_id: event.server.id,
                                        log: msg

        nil
      end

      # Retrocede até certa mensagem.
      command :retroceder, help_available: false,
               permission_level: 2, permission_message: false do |event, id|

        next "\\⚠ :: !retroceder (até) [id]" unless id
        next "\\⚠ :: Número fornecido não parece um ID." unless id.length == 18

        msg = event.channel.history( 100 ).take_while { |h| h.id != id.to_i }
        event.channel.delete_messages msg

        log = "Retrocedeu #{msg.length} mensagens de ##{event.channel.name}."
        Cygnus::Database::Evento.create mod: event.user.distinct,
                                        mod_id: event.user.id,
                                        server_id: event.server.id,
                                        log: log

        nil
      end

      # Deleta mensagens de um usuário dentro de um certo intervalo.
      command :prune, help_available: false,
               permission_level: 2, permission_message: false do |event, num|

        next "\\⚠ :: !prune [2-100] [usuário]" if event.message.mentions.empty? || ! num
        next "\\⚠ :: Não está entre o intervalo permitido." unless num.to_i >= 2 && num.to_i <= 100

        user = event.message.mentions.first.on( event.server )

        msg = []
        event.channel.history( num.to_i ).count do |h|
          msg.push h if h.author.id == user.id
        end

        event.channel.delete_messages msg

        log = "Prunou #{msg.length} mensagens de #{user.distinct} em ##{event.channel.name}."
        Cygnus::Database::Evento.create mod: event.user.distinct,
                                        mod_id: event.user.id,
                                        server_id: event.server.id,
                                        log: log

        nil
      end
    end
  end
end<commit_msg>Implementado comando para limpar mensagens do bot<commit_after>module Cygnus
  module Cygnus_Commands
    # PRUNE
    # Apaga mensagens de acordo com o filtro.
    module Prune
      extend Discordrb::Commands::CommandContainer

      # Apaga certo número de mensagens.
      command :rm, help_available: false,
               permission_level: 2, permission_message: false do |event, num|

        next "\\⚠ :: !rm [2-100]" unless num
        next "\\⚠ :: Não está entre o intervalo permitido." unless num.to_i >= 2 && num.to_i <= 100

        event.channel.prune( num.to_i )

        msg = "Prunou #{num.to_i} mensagens de ##{event.channel.name}."
        Cygnus::Database::Evento.create mod: event.user.distinct,
                                        mod_id: event.user.id,
                                        server_id: event.server.id,
                                        log: msg

        nil
      end

      # Retrocede até certa mensagem.
      command :retroceder, help_available: false,
               permission_level: 2, permission_message: false do |event, id|

        next "\\⚠ :: !retroceder (até) [id]" unless id
        next "\\⚠ :: Número fornecido não parece um ID." unless id.length == 18

        msg = event.channel.history( 100 ).take_while { |h| h.id != id.to_i }
        event.channel.delete_messages msg

        log = "Retrocedeu #{msg.length} mensagens de ##{event.channel.name}."
        Cygnus::Database::Evento.create mod: event.user.distinct,
                                        mod_id: event.user.id,
                                        server_id: event.server.id,
                                        log: log

        nil
      end

      # Deleta mensagens de um usuário dentro de um certo intervalo.
      command :prune, help_available: false,
               permission_level: 2, permission_message: false do |event, num|

        next "\\⚠ :: !prune [2-100] [usuário]" if event.message.mentions.empty? || ! num
        next "\\⚠ :: Não está entre o intervalo permitido." unless num.to_i >= 2 && num.to_i <= 100

        user = event.message.mentions.first.on( event.server )

        msg = []
        event.channel.history( num.to_i ).count do |h|
          msg.push h if h.author.id == user.id
        end

        event.channel.delete_messages msg

        log = "Prunou #{msg.length} mensagens de #{user.distinct} em ##{event.channel.name}."
        Cygnus::Database::Evento.create mod: event.user.distinct,
                                        mod_id: event.user.id,
                                        server_id: event.server.id,
                                        log: log

        nil
      end

      command :limpar, help_available: false,
               permission_level: 2, permission_message: false do |event, num|

        next "\\⚠ :: !limpar [2-100]" unless num
        next "\\⚠ :: Não está entre o intervalo permitido." unless num.to_i >= 2 && num.to_i <= 100

        msg = []
        event.channel.history( num.to_i ).count do |h|
          msg.push h if h.author.id == CONFIG["client_id"]
        end

        event.channel.delete_messages msg

        log = "Limpou #{msg.length} mensagens do bot em ##{event.channel.name}."
        Cygnus::Database::Evento.create mod: event.user.distinct,
                                        mod_id: event.user.id,
                                        server_id: event.server.id,
                                        log: log

        nil
      end
    end
  end
end
{'fraction_non_alphanumeric': 0.10563037481745903, 'fraction_numerical': 0.009248742495537888, 'mean_word_length': 1.5747702589807853, 'pattern_counts': {'":': 0, '<': 8, '<?xml version=': 0, '>': 8, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 21, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4530611', 'n_tokens_mistral': 1819, 'n_tokens_neox': 1741, 'n_words': 488}