Bem-vindo: Qua, 27 de Novembro 2024, 3:08 Pesquisa avançada

[Ajuda] Alerta Sonoro no Fogger

Tem um artigo interessante e importante para a comunidade? Quer apresentar um software que acabou de conhecer? Ou até um software ou script seu? Então veja nesta secção como o redigir corretamente para publicar artigos no Blog do Ubuntued!

[Ajuda] Alerta Sonoro no Fogger

Mensagempor Thiago » Sáb, 5 de Janeiro 2013, 8:41

Olá pessoal, eu ontem resolvi testar o Fogger com mais tempo e paciência e gostei muito, porém confesso que ainda faltam muitos recursos a serem adicionados, um deles é a opção de abrir em uma nova aba.

Enfim, consegui resolver o problema do flash nele, porém quando recebo mensagem, ele não reproduz aquele famoso som de alerta do facacebook.
[som de alerta de mensagem do facebook]
http://www.zedge.net/ringtone/1548508/? ... book&cep=0

Procurei um script que integrasse o facebook com o desktop, encontrei apenas esse, fiz algumas alterações, acrescentando alguns links e retirando outros.

Código: Selecionar todos
// Copyright 2012 Junaid Lone
// junaid7lone@gmail.com

(function() {
var desktop = new fogger.Fogger();


var notif = null;
    message = null;
    request = null;

var getUnreadCount = function() {

    var notifCount = parseInt(notif.innerText);
        messageCount = parseInt(message.innerText);
        requestCount = parseInt(request.innerText);

    if ((notifCount > 0) && (notifCount != parseInt(localStorage.notifCount))) {
        localStorage.notifCount = notifCount;
        if (notifCount > 1) {
            var notif_text = 'notifications.';
        } else {
            var notif_text = 'notification.'
        }
        desktop.notify('Notification', 'You have ' + notifCount + ' new ' + notif_text);
    }
   
    if ((messageCount > 0) && (messageCount != parseInt(localStorage.messageCount))) {
        localStorage.messageCount = messageCount;
        if (messageCount > 1) {
            var notif_text = 'messages.';
        } else {
            var notif_text = 'message.'
        }
        desktop.notify('Messages', 'You have ' + messageCount + ' unread ' + notif_text);
    }

    if ((requestCount > 0 ) && (requestCount != parseInt(localStorage.requestCount))) {
        localStorage.requestCount = requestCount;
        if (requestCount > 1) {
            var notif_text = 'requests.';
        } else {
            var notif_text = 'request.'
        }
        desktop.notify('Friend Request', 'You have ' + requestCount + ' new ' + notif_text);
    }

    return notifCount + messageCount + requestCount;   
};

var notify = function() {
   var notifs = getUnreadCount();
   //if (notifs != parseInt(localStorage.totalCount)) {
       if (notifs > 0) {
          desktop.setCount(notifs);
          desktop.setCountVisible(true);
          desktop.setUrgent(true);
       } else {
          desktop.setCountVisible(false);
          desktop.setUrgent(false);
       }
   //}   
   //localStorage.totalCount = notifs;
};


var setupDesktop = function(desktop) {
    // Create a new menu
    var navigate = desktop.newMenu('Shortcuts');

    var shortcuts = [
   {name: 'Home', url: '/'},
   {name: 'Perfil', url: '/me'},
   {name: 'Fotos', url: '/me/photos'},
        {name: 'Menssages', url: '/messages'},   
   {name: 'Registros de Atividade', url: '/me/allactivity'},
   {name: 'Minha Conta', url: '/editaccount.php?ref=mb&drop'},
       
    ]
       
   
    for (var i =0; i < shortcuts.length; i++) {
        var S = shortcuts[i];
        S.callback = (function(url) {
            return function() {
                window.location = url;
            };
        })(S.url);
        navigate.addItem(S);
        desktop.quicklist.addItem(S);
    }   
    notif = document.getElementById("notificationsCountValue");
    message = document.getElementById("mercurymessagesCountValue");
    request = document.getElementById("requestsCountValue");
   
    var jewels = document.getElementsByClassName('jewelButton');
    for (var i=0; i < jewels.length; i++) {
        jewels[i].onclick = function() {
            setTimeout(notify, 500);
        };
    }
    setInterval(notify, 3000); // check every 3 seconds
};


// Create a new object from the Fogger class
var waitForIt = function() {
    if (document.getElementById("notificationsCountValue") === null) {
        setTimeout(waitForIt, 1000)
    } else {
        setupDesktop(desktop);
    }
};

waitForIt();

})();


Se alguém puder me ajudar, eu ficarei muito feliz :yeah:
Avatar do usuário
Thiago
 
Mensagens: 241
Registrado em: 05 Abril, 2012

Re: [Ajuda] Alerta Sonoro no Fogger

Mensagempor Claudio Novais » Ter, 15 de Janeiro 2013, 21:18

O que você conseguiu até agora e o que precisa mais especificamente Thiago?
Avatar do usuário
Claudio Novais
Editor do Ubuntued
 
Mensagens: 16869
Registrado em: 25 Maio, 2011

Re: [Ajuda] Alerta Sonoro no Fogger

Mensagempor Thiago » Qua, 16 de Janeiro 2013, 0:44

Claudio Novais (15-01-2013, 20:18) escreveu:O que você conseguiu até agora e o que precisa mais especificamente Thiago?


Eu consegui fazer o fogger ter mais integração com o desktop, notificando quando existe alguma notificação no facebook, porém, quando alguém manda alguma mensagem no chat, não da o alerta sonoro.

Mas em relação ao alerta sonoro, até agora eu não consegui nada :cry:
Avatar do usuário
Thiago
 
Mensagens: 241
Registrado em: 05 Abril, 2012

Re: [Ajuda] Alerta Sonoro no Fogger

Mensagempor Claudio Novais » Qua, 16 de Janeiro 2013, 0:46

Mas você faz alerta via notificação quando recebe mensagens? Como faz a notificação? Se fizer via comando do terminal, o alerta sonoro também poderá ser feito de maneira similar.




Apenas para ficar desde já guarda esta informação, para você chamar uma notificação normalmente faz algo assim (não usando bibliotecas de implementação):
notify-send "header" "secondary text" --category="transfer.complete" --urgency=low --icon=firefox


Para um som, equivalente à notificação, você usa o canberra-gtk-play. Por exemplo o som do Empathy das novas mensagens é produzido da seguinte maneira:
canberra-gtk-play --id="message-new-instant"


Que tipo de sons pode pôr? Bem, pode dar uma vista de olhos nesta pasta e pode ser o nome de qualquer um desses ficheiros, sem a extensão:
  • /usr/share/sounds/

Avatar do usuário
Claudio Novais
Editor do Ubuntued
 
Mensagens: 16869
Registrado em: 25 Maio, 2011

Re: [Ajuda] Alerta Sonoro no Fogger

Mensagempor Thiago » Qua, 16 de Janeiro 2013, 5:03

Cara, achei interessante as informações que me deu, porém, por conta de eu não saber programar, eu não sei onde coloco para que funcione o que eu quero.

Tentei fuçar empiricamente aqui no código, mas foi sem sucesso /=
Avatar do usuário
Thiago
 
Mensagens: 241
Registrado em: 05 Abril, 2012

Re: [Ajuda] Alerta Sonoro no Fogger

Mensagempor Claudio Novais » Qua, 16 de Janeiro 2013, 5:23

Tive a investigar e na verdade o Fogger só utiliza a API do Unity, ou seja, faz o mesmo que um browser normal com a API do Unity que acho que só funciona em Ubuntus posteriores ao Ubuntu 12.10, inclusive.

Ora posto isto, creio que para produzir sons você terá de executar algo via Javascript simplesmente. Neste momento não posso perder tempo nisto, mas qualquer uma destas soluções em princípio funciona:
http://stackoverflow.com/questions/4500 ... javascript
Avatar do usuário
Claudio Novais
Editor do Ubuntued
 
Mensagens: 16869
Registrado em: 25 Maio, 2011

Re: [Ajuda] Alerta Sonoro no Fogger

Mensagempor Thiago » Qua, 16 de Janeiro 2013, 5:36

Eu estava tentando colocar no java script mesmo, implementando no código que postei acima.
Porém sem sucesso :'(
Avatar do usuário
Thiago
 
Mensagens: 241
Registrado em: 05 Abril, 2012

Re: [Ajuda] Alerta Sonoro no Fogger

Mensagempor Claudio Novais » Qua, 16 de Janeiro 2013, 21:11

Neste link tem um exemplo de como executar sons:
http://jsfiddle.net/lachlanhardy/cNyaw/1/

À primeira vista, eu diria que adicionar aquilo à zona onde cria a notificação deve ser suficiente, portanto seria algo deste género (sem testar):

Código: Selecionar todos
// Copyright 2012 Junaid Lone
// junaid7lone@gmail.com

(function() {
var desktop = new fogger.Fogger();


var notif = null;
    message = null;
    request = null;

var getUnreadCount = function() {

    var notifCount = parseInt(notif.innerText);
    messageCount = parseInt(message.innerText);
    requestCount = parseInt(request.innerText);
    var file = "http://railscampteev7.toolmantim.com/sounds/success.mp3";
    if (!document.createElement('audio').canPlayType('audio/mpeg')) {
        file = "http://railscampteev7.toolmantim.com/sounds/success.ogg";
    }
    var audio = new Audio(file);
   

    if ((notifCount > 0) && (notifCount != parseInt(localStorage.notifCount))) {
        localStorage.notifCount = notifCount;
        if (notifCount > 1) {
            var notif_text = 'notifications.';
        } else {
            var notif_text = 'notification.'
        }
        desktop.notify('Notification', 'You have ' + notifCount + ' new ' + notif_text);
        audio.play();
    }
   
    if ((messageCount > 0) && (messageCount != parseInt(localStorage.messageCount))) {
        localStorage.messageCount = messageCount;
        if (messageCount > 1) {
            var notif_text = 'messages.';
        } else {
            var notif_text = 'message.'
        }
        desktop.notify('Messages', 'You have ' + messageCount + ' unread ' + notif_text);
        audio.play();
    }

    if ((requestCount > 0 ) && (requestCount != parseInt(localStorage.requestCount))) {
        localStorage.requestCount = requestCount;
        if (requestCount > 1) {
            var notif_text = 'requests.';
        } else {
            var notif_text = 'request.'
        }
        desktop.notify('Friend Request', 'You have ' + requestCount + ' new ' + notif_text);
        audio.play();
    }

    return notifCount + messageCount + requestCount;   
};

var notify = function() {
   var notifs = getUnreadCount();
   //if (notifs != parseInt(localStorage.totalCount)) {
       if (notifs > 0) {
          desktop.setCount(notifs);
          desktop.setCountVisible(true);
          desktop.setUrgent(true);
       } else {
          desktop.setCountVisible(false);
          desktop.setUrgent(false);
       }
   //}   
   //localStorage.totalCount = notifs;
};


var setupDesktop = function(desktop) {
    // Create a new menu
    var navigate = desktop.newMenu('Shortcuts');

    var shortcuts = [
   {name: 'Home', url: '/'},
   {name: 'Perfil', url: '/me'},
   {name: 'Fotos', url: '/me/photos'},
        {name: 'Menssages', url: '/messages'},   
   {name: 'Registros de Atividade', url: '/me/allactivity'},
   {name: 'Minha Conta', url: '/editaccount.php?ref=mb&drop'},
       
    ]
       
   
    for (var i =0; i < shortcuts.length; i++) {
        var S = shortcuts[i];
        S.callback = (function(url) {
            return function() {
                window.location = url;
            };
        })(S.url);
        navigate.addItem(S);
        desktop.quicklist.addItem(S);
    }   
    notif = document.getElementById("notificationsCountValue");
    message = document.getElementById("mercurymessagesCountValue");
    request = document.getElementById("requestsCountValue");
   
    var jewels = document.getElementsByClassName('jewelButton');
    for (var i=0; i < jewels.length; i++) {
        jewels[i].onclick = function() {
            setTimeout(notify, 500);
        };
    }
    setInterval(notify, 3000); // check every 3 seconds
};


// Create a new object from the Fogger class
var waitForIt = function() {
    if (document.getElementById("notificationsCountValue") === null) {
        setTimeout(waitForIt, 1000)
    } else {
        setupDesktop(desktop);
    }
};

waitForIt();

})();
Avatar do usuário
Claudio Novais
Editor do Ubuntued
 
Mensagens: 16869
Registrado em: 25 Maio, 2011

Re: [Ajuda] Alerta Sonoro no Fogger

Mensagempor Thiago » Qua, 16 de Janeiro 2013, 22:08

Testei aqui, porém não deu certo /=
Eu vou pedir ajuda de algum amigo meu que saiba programar em javascript, porque eu estou te enchendo o saco e você deve ter muita coisa pra fazer e está perdendo tempo comigo e minhas bobagens :s

[eu só preciso achar quem saiba programar com java script primeiro] rsrs
Avatar do usuário
Thiago
 
Mensagens: 241
Registrado em: 05 Abril, 2012

Re: [Ajuda] Alerta Sonoro no Fogger

Mensagempor Claudio Novais » Qua, 16 de Janeiro 2013, 22:14

As notificações estão a funcionar?
Avatar do usuário
Claudio Novais
Editor do Ubuntued
 
Mensagens: 16869
Registrado em: 25 Maio, 2011

Próximo

Voltar para Publique artigos no Blog Ubuntued!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes

cron