Você não está conectado. Conecte-se ou registre-se

Sistema de warn e ban automático

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

1 Sistema de warn e ban automático em Qua Dez 24, 2014 2:39 pm

waghcwb

avatar
Membro elite

Então galera, vou compartilhar um sisteminha que fiz para meu fórum aqui com vocês. Não vou adaptar para outros fóruns muito cedo.

Mas vou deixar o código para estudos (que aliás, foi feito na pressa, então não está nada otimizado, só é funcional)

Espero que seja útil para alguém.

Código:
;$(function() {
   
   var level = _userdata["user_level"];
   
   if(level === 1 || level === 2){
      
      $('.warn').each(function() {
         
         var oThis = $(this);
         
         if(oThis.data('hidden')) {
            oThis.parents('.post').css({
               opacity: '.3'
            });
         };
         
      });
      
      var warn = '<a class="give_warn" href="#warn"><span class="post_controls">Warn</span></a>';

      $('.post-options').prepend(warn);

      var panel =
         '<div class="warn-panel">' +
         '   Quantos avisos deseja aplicar?' +
         '   <div style="overflow:hidden;">' +
         '   <div class="warn-opt">' +
         '      1 <input type="radio" name="warn" checked="checked" value="1">' +
         '   </div>' +
         '   <div class="warn-opt">' +
         '      2 <input type="radio" name="warn" value="2">' +
         '   </div>' +
         '   <div class="warn-opt">' +
         '      3 <input type="radio" name="warn" value="3">' +
         '   </div>' +
         '   <div class="warn-opt" style="float: right;margin-top:2em;margin-right:4.1em;">' +
         '      <button class="confirm-warn">Confirmar</button>' +
         '   </div>' +
         '   </div>' +
         '</div>';
         
      $('.give_warn').after(panel).click(function(event) {
         
         event.preventDefault();
         
         $('.warn-panel').fadeToggle();
         
         

      });
      
      $('.confirm-warn').click(function() {

         var actual = $(this).parents('.postmain').find('.entry-content div.clear').prev('div').text();
         var newMessage = actual + '<div class="warn" data-hidden="true">Usuário alertado por flood.</div>';
         var id = $(this).parents('.post').find('a:first').attr('name');
         var userid = $(this).parents('.post').find('.author a[href*="/u"]').attr('href').split('/u')[1];
         var message1 = '[center][b]Avisos 1/3[/b][/center][img]http://hitskin.com/themes/17/42/99/i_icon_minicat.gif[/img]';
         var message2 = '[center][b]Avisos 2/3[/b][/center][img]http://hitskin.com/themes/17/42/99/i_icon_minicat.gif[/img][img]http://hitskin.com/themes/17/42/99/i_icon_minicat.gif[/img]';
         var message3 = '[center][b]Avisos 3/3[/b][/center][img]http://hitskin.com/themes/17/42/99/i_icon_minicat.gif[/img][img]http://hitskin.com/themes/17/42/99/i_icon_minicat.gif[/img][img]http://hitskin.com/themes/17/42/99/i_icon_minicat.gif[/img][center][b][color=#ac0000]Banido[/color][/b][/center]';
         var user = $(this).parents('.post').find('.author a[href*="/u"]').text();
         var warnval = $(this).parents('.warn-panel').find('[name="warn"]:checked').val();
         var tid = $('[name="tid"]').val();

         if(warnval == '3') {
            banUser(userid, tid, user);
         }
         else if(warnval == '2') {
            setWarn(id, newMessage, userid, message2, user);
         }
         else {
            setWarn(id, newMessage, userid, message1, user);
         }
         
         $('.warn-panel').fadeToggle();   

      });
      
   }
   else {
      
      $('.warn').each(function() {
         
         var oThis = $(this);
         
         if(oThis.data('hidden')) {
            oThis.parents('.post').remove();
         };
         
      });
   }
});

function setWarn(id, newMessage, userid, message, user) {
   
   $.post('/post?mode=editpost', {
      p: id,
      message: newMessage,
      post: 1
   }).success(function() {
      var tid = $('[name="tid"]').val();
      update(userid, 'profile_field_2_3', 2, message, tid, user, id);

   }).error(function() {
      alert("Algum erro ocorreu, contate o administrador.");
   });
}


function update(USER_ID, profile_field, field_ID, field_value, TID, user, id) {

   $.post('/ajax_profile.forum?jsoncallback=?', {
      id: field_ID,
      user: USER_ID,
      active: '1',
      content: '[["' + profile_field + '", "' + field_value + '"]]',
      tid: TID
   },
       
   function(data){
      var today = getDate();
      var message =
         '[b]Log de eventos[/b]' +
         '[hr]\n' +
         '[b]Tópico:[/b] ' + location.href + '#' + id + '\n' +
         '[b]Data:[/b] ' + today + '\n' +
         '[b]Usuário:[/b] ' + user;
      
      postLog(user, message, today, user, id);

   }, "json").fail(function() {
      console.error("Error: ajax_profile" + USER_ID);
   });

    return false;
}

function postLog(mod, message, date, user, id) {

   $.post('/post?', {
      mode: 'newtopic',
      f: '11',
      lt: '0',
      subject: '[ Warn ] ' + mod + ' [ ' + date + ' ]',
      message: message,
      post: 1
   }).done(function(){
      location.href = location.href + '#' + id;
      location.reload();
   }).fail(function(){
      alert("Algum erro ocorreu, tente novamente.");
   });

}

function banUser(id, tid, user) {
   var agree = confirm("Atenção!!\n\nConfirma que deseja banir o usuário " + user + '?');
   var date = getDate();
   if(agree){
      $.post('/modcp?mode=ban&user_id=' + id + '&tid=' + tid, {
         ban_user_date: 30,
         ban_user_reason: 'Usuário flooder - Alcançou o número máximo de 3 avisos.',
         confirm: 1
      }).success(function() {
         alert("O usuário " + user + " foi banido com sucesso.");
         $.post('/post?', {
            mode: 'newtopic',
            f: '12',
            lt: '0',
            subject: '[ Ban ] ' + user + ' [ ' + date + ' ]',
            message: '[b]Log de banimento[/b][hr][b]Usuário:[/b]' + user + '\n[b]Data:[/b] ' + date,
            post: 1
         }).done(function(){
            location.reload();
         }).fail(function(){
            alert("Algum erro ocorreu, tente novamente.");
         });
      });
   }
   else {
      alert("Você cancelou o ban");
   }
}

function getDate() {
      var today = new Date();
      var dd = today.getDate();
      var mm = today.getMonth()+1;
      var yyyy = today.getFullYear();

      if(dd<10) {
         dd='0'+dd
      }
      
      if(mm<10) {
         mm='0'+mm
      }

      return today = dd+'/'+mm+'/'+yyyy;
}


Tem muito (MUITO mesmo) o que melhorar no código, mas já é funcional, talvez seja útil para alguém santa



"May the force be with you, young grasshopper!"




Não há assuntos pouco interessantes; apenas há pessoas pouco interessadas.
Ver perfil do usuário

2 Re: Sistema de warn e ban automático em Qua Dez 24, 2014 3:52 pm

Stark'

avatar
Membro ativo

Desculpe a pergunta, não entendo mais de programação. Isso é JS?

Ver perfil do usuário

3 Re: Sistema de warn e ban automático em Qua Dez 24, 2014 5:07 pm

waghcwb

avatar
Membro elite

Sim, isso é um código Javascript amigo.



"May the force be with you, young grasshopper!"




Não há assuntos pouco interessantes; apenas há pessoas pouco interessadas.
Ver perfil do usuário

4 Re: Sistema de warn e ban automático em Qua Dez 24, 2014 8:54 pm

[Dark]Doki-.

avatar
Membro elite

Não mexo mais com forums, porém pelo que vi o código parece ser muito bom.
Parabéns wagh!



"This life goes on, i'm starting to learn more and more about responsibility and i realize that everything that i do is affecting the people around me.
So i wanted to take this time out to apologize for things that i've done and for things that haven't occurred yet and things that they don't want to take responsibility for.
I'm sorry for everything that i've done."



Ver perfil do usuário http://darkcheats.uniogame.com

5 Re: Sistema de warn e ban automático em Qua Dez 24, 2014 10:22 pm

DeeW.

avatar
Membro elite

Bem fácil de configurar, mas apenas uma perguntinha! qual o endereço de teu fórum?

Ver perfil do usuário

6 Re: Sistema de warn e ban automático em Qui Dez 25, 2014 2:12 pm

waghcwb

avatar
Membro elite

Faz muito tempo que não mexo com nada lá, só voltei que a galera que ta cuidando do fórum (até minha volta) reclamou que o chat havia parado de funcionar. Então peguei e instalei uma skin aqui da BS (acredito que inclusive seja sua), e fiz alguns sisteminhas básicos para usar lá.

Mas em breve quero voltar a ativa e ai vou fazer minha própria skin denovo (o fórum tinha uma exclusiva, mas com minha saida outros admins sairam também e preferiram tirar a skin), e voltar a fazer códigos em .lua Very Happy

Tem muito o que arrumar, acabar com os floods que rolaram lá e tal. Mas isso é com o tempo.

http://mtaz.wikiforum.net/forum



"May the force be with you, young grasshopper!"




Não há assuntos pouco interessantes; apenas há pessoas pouco interessadas.
Ver perfil do usuário

7 Re: Sistema de warn e ban automático em Sex Fev 20, 2015 9:21 pm

Como faço pra mim usar esse sistema ?

Ver perfil do usuário

8 Re: Sistema de warn e ban automático em Qua Fev 25, 2015 12:36 pm

Sonic_BR

avatar
Membro ativo

O sistema parece ser bem útil, mas não funciona. Clico em Confirmar e nada acontece (acho que era pra abrir uma janela).

Waghcwb, como corrigimos isso? É meio frustrante ver um script que parece ser útil e não funcionar, porém o criador não dar suporte algum.

Ver perfil do usuário

9 Re: Sistema de warn e ban automático em Qua Fev 25, 2015 12:57 pm

waghcwb

avatar
Membro elite

@Sonic_BR,

Talvez seja por isso que eu postei na área de exemplo de códigos e não nos tutoriais, não acha? Como já falei antes, vou repetir agora. Assim que sobrar tempo eu farei um tutorial completo com o código funcional para outros fóruns, ele funciona e bem para os propósitos para o qual foi criado.

Então seja paciente.



"May the force be with you, young grasshopper!"




Não há assuntos pouco interessantes; apenas há pessoas pouco interessadas.
Ver perfil do usuário

10 Re: Sistema de warn e ban automático em Dom Abr 12, 2015 9:37 pm

Valeu cara, facilitou muito mais meu trabalho, grato!

Ver perfil do usuário

11 Re: Sistema de warn e ban automático em Dom Set 24, 2017 4:56 am

virus

avatar
Membro ativo

@waghcwb escreveu:Sim, isso é um código Javascript amigo.
adapta pf '-' ajudaria mt kk

Ver perfil do usuário

Conteúdo patrocinado


Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum