Como personalizar meu chatbox com códigos personalizados?

Este Fórum está Bloqueado. Você não pode enviar, responder ou editar mensagens   Este Tópico está bloqueado. Você não pode editar as mensagens ou responder.

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Atendido / Resolvido Como personalizar meu chatbox com códigos personalizados?

Mensagem por Bruno Franks em 28.01.18 2:32

Detalhes da questão


Endereço do fórum: http://ams7.forumeiros.com/
Versão do fórum: phpBB2

Descrição


Olá pessoas! Espero que vocês estejam bem, de verdade. Feliz

Andando por aí nos tutoriais me deparei com este: Códigos para personalizar o seu chatbox, porém encontrei algumas dificuldades para alterar o código de acordo com minhas necessidades. Será que você poderia me ajudar? Primeiramente, quero dizer que testei o código exatamente como ele está e de certa forma ele funciona, com alguns bugs, atrasos (que não sei se são devido à minha conexão de internet ou ao próprio código), etc.

Bom, gostaria de alterar o som de notificação atual para esse: New_message_notification
Também gostaria que o efeito trabalhasse ainda que eu não esteja na página do fórum, porque de certa forma óbvia, a ideia da notificação é de me alertar que há uma nova mensagem que eu não vi chegar.

Desde já, lhe agradeço pela atenção! Feliz Feliz
Bruno Franks

Bruno Franks
Nível 9

Masculino
Inscrito dia : 20/06/2012
Mensagens : 153
Pontos Ativos : 201

Ver perfil do usuário http://ams7.forumeiros.com/

Atendido / Resolvido Re: Como personalizar meu chatbox com códigos personalizados?

Mensagem por Luiz em 28.01.18 8:42

Olá novamente, Bruno.

Andando por aí nos tutoriais me deparei com este: Códigos para personalizar o seu chatbox [...]

Poderia ser mais específico nesse caso? O que está acontecendo de errado?

Bom, gostaria de alterar o som de notificação atual para esse: New_message_notification

Para isso, precisaremos que você hospede (de algum modo) o arquivo .mp4 do som que você deseja usar. Feliz

o/
Luiz

Luiz
Principal contribuidor
Principal contribuidor

Masculino
Inscrito dia : 23/04/2016
Mensagens : 6626
Pontos Ativos : 7521

Ver perfil do usuário https://luizfelipe.dev

Atendido / Resolvido Re: Como personalizar meu chatbox com códigos personalizados?

Mensagem por Bruno Franks em 28.01.18 13:19

Olá Luiz!
Poderia ser mais específico nesse caso? O que está acontecendo de errado?
Então, como mencionei, o efeito tem atrasado um pouco: eu envio a mensagem por uma máquina, a mensagem é enviada, mas o som de notificação é reproduzido com atraso, um tanto depois. E pelos testes que fiz, percebi que, aparentemente, ele não é reproduzido quando estou em outra aba, ou com outra janela aberta, sendo tocado quando eu volto a acessar a página do fórum.

Para isso, precisaremos que você hospede (de algum modo) o arquivo .mp4 do som que você deseja usar.
Devo hospedá-lo em .mp4 mesmo? Não seria .mp3?
Bruno Franks

Bruno Franks
Nível 9

Masculino
Inscrito dia : 20/06/2012
Mensagens : 153
Pontos Ativos : 201

Ver perfil do usuário http://ams7.forumeiros.com/

Atendido / Resolvido Re: Como personalizar meu chatbox com códigos personalizados?

Mensagem por Luiz em 28.01.18 13:23

O atraso é normal. Infelizmente isso é dado por uma série de fatores, os quais infelizmente não podemos fazer nada a fim de contorná-los. :/

Devo hospedá-lo em .mp4 mesmo? Não seria .mp3?
Também serve. Ambos formatos são válidos para o nosso caso. Feliz
Luiz

Luiz
Principal contribuidor
Principal contribuidor

Masculino
Inscrito dia : 23/04/2016
Mensagens : 6626
Pontos Ativos : 7521

Ver perfil do usuário https://luizfelipe.dev

Atendido / Resolvido Re: Como personalizar meu chatbox com códigos personalizados?

Mensagem por Bruno Franks em 28.01.18 13:41

Hospedei o arquivo de áudio aqui: http://picosong.com/wyvxY/

Entretanto, não sei se este seria o link direto para o mesmo ou se mesmo este link funcionaria. Pensativo
Bruno Franks

Bruno Franks
Nível 9

Masculino
Inscrito dia : 20/06/2012
Mensagens : 153
Pontos Ativos : 201

Ver perfil do usuário http://ams7.forumeiros.com/

Atendido / Resolvido Re: Como personalizar meu chatbox com códigos personalizados?

Mensagem por Luiz em 28.01.18 13:44

Eu preciso do link do arquivo .mp3 ou .mp4 em si, por exemplo:

Código:
http://ajuda.forumeiros.com/audios/notify-sound.mp3

o/
Luiz

Luiz
Principal contribuidor
Principal contribuidor

Masculino
Inscrito dia : 23/04/2016
Mensagens : 6626
Pontos Ativos : 7521

Ver perfil do usuário https://luizfelipe.dev

Atendido / Resolvido Re: Como personalizar meu chatbox com códigos personalizados?

Mensagem por Bruno Franks em 29.01.18 12:07

Aqui de volta!

Este link é funcional? https://drive.google.com/file/d/1trb_BB1zUydGA0qe8aTLV0Iq69dD527x/view

Só não estou conseguindo fazê-lo reproduzir automaticamente ao abrir o link.



Aqui também → http://www.driveplayer.com/#fileIds=1trb_BB1zUydGA0qe8aTLV0Iq69dD527x&userId=110633504095218054066
Bruno Franks

Bruno Franks
Nível 9

Masculino
Inscrito dia : 20/06/2012
Mensagens : 153
Pontos Ativos : 201

Ver perfil do usuário http://ams7.forumeiros.com/

Atendido / Resolvido Re: Como personalizar meu chatbox com códigos personalizados?

Mensagem por Luiz em 29.01.18 12:14

Olá novamente,

Infelizmente não. O link deve ser como este:
Código:
http://illiweb.com/fa/fdf/secret.mp3

o/
Luiz

Luiz
Principal contribuidor
Principal contribuidor

Masculino
Inscrito dia : 23/04/2016
Mensagens : 6626
Pontos Ativos : 7521

Ver perfil do usuário https://luizfelipe.dev

Atendido / Resolvido Re: Como personalizar meu chatbox com códigos personalizados?

Mensagem por Bruno Franks em 29.01.18 12:42

Será que assim vai? https://www.dropbox.com/s/4nuc4hjb6k4lza2/newmesage.mp3

Entretanto ele não reproduz automaticamente... pelo menos, não consegui fazê-lo.


Poxa vida, que difícil Louco Feliz
Bruno Franks

Bruno Franks
Nível 9

Masculino
Inscrito dia : 20/06/2012
Mensagens : 153
Pontos Ativos : 201

Ver perfil do usuário http://ams7.forumeiros.com/

Atendido / Resolvido Re: Como personalizar meu chatbox com códigos personalizados?

Mensagem por Luiz em 29.01.18 16:45

Também não. :s
Quando você entra no link, deve ser algo similar a este:
Código:
http://illiweb.com/fa/fdf/secret.mp3

Não se esqueça de votar nos seus candidatos favoritos!


o/
Luiz

Luiz
Principal contribuidor
Principal contribuidor

Masculino
Inscrito dia : 23/04/2016
Mensagens : 6626
Pontos Ativos : 7521

Ver perfil do usuário https://luizfelipe.dev

Atendido / Resolvido Re: Como personalizar meu chatbox com códigos personalizados?

Mensagem por Bruno Franks em 29.01.18 17:39

Bom, dando continuidade... aqui está:
Código:
https://s1.vocaroo.com/media/download_temp/Vocaroo_s1W4QI3NjNuN.mp3


Aliás, obrigado pela ajuda lá. ^^
Bruno Franks

Bruno Franks
Nível 9

Masculino
Inscrito dia : 20/06/2012
Mensagens : 153
Pontos Ativos : 201

Ver perfil do usuário http://ams7.forumeiros.com/

Atendido / Resolvido Re: Como personalizar meu chatbox com códigos personalizados?

Mensagem por Luiz em 30.01.18 9:58

Qual código você está usando para criar o som?
Creio que agora só falte modificar o áudio, certo?
Luiz

Luiz
Principal contribuidor
Principal contribuidor

Masculino
Inscrito dia : 23/04/2016
Mensagens : 6626
Pontos Ativos : 7521

Ver perfil do usuário https://luizfelipe.dev

Atendido / Resolvido Re: Como personalizar meu chatbox com códigos personalizados?

Mensagem por Bruno Franks em 30.01.18 12:29

Estou usando este:

Código:
  window.localStorage && $(window).load(function() {
      var chatbox_script = function() {
        var sounds = {
          'future': 'http://illiweb.com/fa/fdf/future.mp3',
          'hal': 'http://illiweb.com/fa/fdf/hal.mp3',
          'secret': 'http://illiweb.com/fa/fdf/secret.mp3',
          'zelda': 'http://illiweb.com/fa/fdf/zelda.mp3'
        };
        var default_sound = sounds['zelda'];
        var default_freq = 'new';
        var default_when = 'once';
        var default_volume = 100;
 
   
        if(localStorage.cb_sound && !localStorage.cb_sound.indexOf('https://dl.dropboxusercontent.com/u/181621985/')) localStorage.removeItem('cb_sound');
        var a = document.createElement('audio');
        if(!a.canPlayType) return;
        a.volume = Math.min(1, Math.max(0, localStorage.cb_volume||(default_volume/100)));
   
        var origin_send = Chatbox.prototype.send;
        Chatbox.prototype.send = function(params) {
          var m = $.trim($("#message").val());
          if(m.indexOf('/sound')&&m.indexOf('/soudn'))
            return origin_send.call(this, params);
          m = $.trim(m.substr(6)).split(/\s+/,3);
          var bad_apple = false;
          switch(m[0].toLowerCase()) {
            case "":
              if(!a.src) {
                a.src = localStorage.cb_sound||default_sound;
                a.load();
            }
              a.play();
              break;
            case "all":
            case "new":
              localStorage.cb_freq = m[0]; break;
            case "always":
            case "off":
            case "on":
            case "once":
            case "never":
              localStorage.cb_when = m[0]; break;
            case "stop":
              if(!a.paused) a.pause();
              if(!a.ended) a.currentTime = 0;
              break;
            case "pause":
              if(!a.paused) a.pause();
              break;
            case "volume":
              if(m.length>1) {
                localStorage.cb_volume = Math.min(1, Math.max(0, parseFloat(m[1].replace(',','.'))/100));
                a.volume = localStorage.cb_volume;
                break
              }
            default:
              bad_apple = true;
          };
          if(bad_apple) {
            if(m[0] in sounds) {
              m[0]= sounds[m[0]];
            }
            if(m[0]=="default") {
              m[0]=default_sound;
              localStorage.removeItem('cb_sound');
              localStorage.removeItem('cb_freq');
              localStorage.removeItem('cb_volume');
              localStorage.removeItem('cb_when');
              a.volume = Math.min(1, Math.max(0, default_volume/100));
            }
            if(/^https?:\/\/.+/.test(m[0])) {
              localStorage.cb_sound = m[0];
              a.pause();
              a.src = m[0];
              a.load();
              a.play();
            } else {
              var message = $('#message').val();
              alert('/sound [all | new]\n/sound [always | off | on | once | never]\n/sound [stop | pause]\n/sound default\n/sound volume 0-100\n/sound ['+$.map(sounds,function(_,k){return k}).join(' | ')+']\n/sound [http://* | https://*]');
              setTimeout(function(){ $("#message").val(message).select().focus(); }, 100);
              return;
            }
          }
          return $("#message").val('').focus();
        };
 
        $(window).on("focus", function(){ localStorage.removeItem('cb_once'); localStorage.removeItem('cb_blurred') }).on("blur", function(){ localStorage.cb_blurred=1; });
 
        var play_sound = function(){
          if(a.paused || a.ended) {
            a.currentTime=0;
            if(!a.src) {
              a.src = localStorage.cb_sound||default_sound;
              a.load()
            }
            a.play()
          }
        };
        var overrided = Chatbox.prototype.refresh;
        Chatbox.prototype.refresh = function(data) {
          if (data.messages && data.messages.length) {
            var lm = data.messages.slice(-1)[0];
            var last_message = lm.time+','+lm.action+','+lm.msg;
            if(this.last_message_sound != last_message) {
              var user = $.grep(data.users, function(v){return v.id==chatbox.userId});
              user = user.length ? user[0] : [{}];
              if(this.last_message_sound!==undefined) {
                var freq = (localStorage.cb_freq||default_freq);
                var when = (localStorage.cb_when||default_when);
                console.log([when, freq, localStorage.cb_blurred, localStorage.cb_once]);
                if(when != "never" && (when != "off" || localStorage.cb_blurred) && (when != "on" || !localStorage.cb_blurred) && (when != "once" || (localStorage.cb_blurred && !localStorage.cb_once))) {
                  console.log([when, freq, localStorage.cb_blurred, localStorage.cb_once]);
                  if(freq =="all" || (lm.userId!=chatbox.userId && user.username!=lm.username)) {
                    if(when!="once" || !localStorage.cb_once) {
                      play_sound();
                      localStorage.cb_once = 1;
                    }
                  }
                }
              }
              this.last_message_sound = lm;
            }
          }
          overrided.call(this, data);
        };
      };
      var s=document.createElement('script');s.text="("+chatbox_script.toString()+")();";jQuery('object[data^="/chatbox/index.forum"],iframe[src^="/chatbox/index.forum"]').each(function(){try{jQuery(this.contentDocument||this.contentWindow.document).find("#chatbox").closest("html").find("head").first().each(function(){this.appendChild(s.cloneNode(true))})}catch(a){}})
    });

Do tutorial supracitado. Entretanto, é feita uma observação sobre esse código que é a seguinte:
Assim que aplicar, saiba que há uma série de mudanças que deve ser feito. default_sound corresponde a pasta com o áudio ou URL da mesma.

Fiquei confuso com o dito "uma série de mudanças" porque a meu ver, só devo mudar o valor da variável:

Código:
var sounds = {
          'NOME DO ARQUIVO': 'ENDEREÇO DO ARQUIVO'
};

e a variável:

Código:
var default_sound = sounds['NOME DADO AO ARQUIVO'];


Seria somente essas mudanças ou estou deixando passar algo mais?


EDIT
Fiz as alterações mencionadas e o resultado bateu. Entretanto, resta uma última dúvida. O efeito é aplicado uma única vez quando há uma nova mensagem, ou seja, após o recebimento de uma nova mensagem, as outras novas que vêm depois não são notificadas. Para alterar isso de maneira que cada nova mensagem seja notificada eu devo alterar a variável
Código:
var default_when = 'once';
?

Quais são os possível valores para essa variável?
Bruno Franks

Bruno Franks
Nível 9

Masculino
Inscrito dia : 20/06/2012
Mensagens : 153
Pontos Ativos : 201

Ver perfil do usuário http://ams7.forumeiros.com/

Atendido / Resolvido Re: Como personalizar meu chatbox com códigos personalizados?

Mensagem por Luiz em 30.01.18 13:00

Tente mudar para:
Código:
always

Feliz
Luiz

Luiz
Principal contribuidor
Principal contribuidor

Masculino
Inscrito dia : 23/04/2016
Mensagens : 6626
Pontos Ativos : 7521

Ver perfil do usuário https://luizfelipe.dev

Atendido / Resolvido Re: Como personalizar meu chatbox com códigos personalizados?

Mensagem por Bruno Franks em 30.01.18 13:52

Excelente! Feliz Deu certo a questão de todas as mensagens serem notificadas, mas agora um efeito "colateral" foi desenvolvido: o som de notificação também é reproduzido quando estou na página do fórum e não somente quando estou em outra aba ou janela (o que acontecia antes e gostaria que permanecesse).
Devo dar este tópico por resolvido e abrir outro para solicitar apoio neste detalhe?
Bruno Franks

Bruno Franks
Nível 9

Masculino
Inscrito dia : 20/06/2012
Mensagens : 153
Pontos Ativos : 201

Ver perfil do usuário http://ams7.forumeiros.com/

Atendido / Resolvido Re: Como personalizar meu chatbox com códigos personalizados?

Mensagem por Luiz em 30.01.18 13:56

Creio que seja uma opção padrão do script. :/
Não creio que possamos fazer muita coisa a respeito.

E não, não é necessário abrir outro tópico neste caso, tendo em vista que ainda estamos tratando do mesmo script. Feliz

o/
Luiz

Luiz
Principal contribuidor
Principal contribuidor

Masculino
Inscrito dia : 23/04/2016
Mensagens : 6626
Pontos Ativos : 7521

Ver perfil do usuário https://luizfelipe.dev

Atendido / Resolvido Re: Como personalizar meu chatbox com códigos personalizados?

Mensagem por Bruno Franks em 30.01.18 14:17

É que enquanto o valor da variável é "once" em
Código:
var default_when = 'once';
o som não é reproduzido enquanto estou com a janela com o chat aberta. De fato, ele o efeito só é aplicado quando estou em outra janela, ou aba.
Ao mudar o valor para "always" ele reproduz mesmo na janela do chat.
Não há nada que possa ser feito mesmo? Não seria alguma outra variável que necessitaria ser alterada?
Feliz
Bruno Franks

Bruno Franks
Nível 9

Masculino
Inscrito dia : 20/06/2012
Mensagens : 153
Pontos Ativos : 201

Ver perfil do usuário http://ams7.forumeiros.com/

Atendido / Resolvido Re: Como personalizar meu chatbox com códigos personalizados?

Mensagem por Luiz em 30.01.18 14:29

Creio que não, mas você pode testar com cada um dos valores e ver se resolve:
Código:
all
Código:
new
Código:
always
Código:
off
Código:
on
Código:
once
Código:
never
Código:
stop
Código:
pause
Código:
volume

o/
Luiz

Luiz
Principal contribuidor
Principal contribuidor

Masculino
Inscrito dia : 23/04/2016
Mensagens : 6626
Pontos Ativos : 7521

Ver perfil do usuário https://luizfelipe.dev

Atendido / Resolvido Re: Como personalizar meu chatbox com códigos personalizados?

Mensagem por Bruno Franks em 31.01.18 12:33

Olá! Testei alguns valores e realmente, não muda muita coisa...
Enfim, creio que uma solução será a futura adição de um botão "mute" para dar opção ao usuário de silenciar o chat (bom, espero que isso seja possível). Por enquanto, creio que o tópico pode ser fechado.Quero deixar aqui meus sinceros agradecimentos a @Luiz. Feliz
Bruno Franks

Bruno Franks
Nível 9

Masculino
Inscrito dia : 20/06/2012
Mensagens : 153
Pontos Ativos : 201

Ver perfil do usuário http://ams7.forumeiros.com/

Atendido / Resolvido Re: Como personalizar meu chatbox com códigos personalizados?

Mensagem por Luiz em 31.01.18 12:40

Às ordens. Feliz

Questão marcada como Resolvida ou o Autor solicitou que ela fosse arquivada.
Tópico marcado como Resolvido e movido para Questões resolvidas.
Luiz

Luiz
Principal contribuidor
Principal contribuidor

Masculino
Inscrito dia : 23/04/2016
Mensagens : 6626
Pontos Ativos : 7521

Ver perfil do usuário https://luizfelipe.dev

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


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