Como descobrir o "esquema" de busca do letras.mus.br para usar no gmusicbrowser?

Iniciado por vinicius_aleao, 17 de Agosto de 2010, 13:14

tópico anterior - próximo tópico

vinicius_aleao

Olá todo mundo.

O gmusicbrowser possibilita a personalização das abas de contexto, de modo que você pode incluir o site que você quiser. Por exemplo, uma das abas que você pode adicionar (já previamente configuradas) é a do google, cujo url é esse: letras.mus.br que já pesquisasse e mostrasse a letra automaticamente, porque esse site encontra praticamente qualquer letra. Por mais que exista a aba "Lyrics", com uma boa quantidade de plugins disponíveis, nem sempre se acha tudo. Tem jeito de descobrir isso?

Obrigado por qualquer ajuda.

EDIT:

Comecei bem. Eu já tinha tentado imitar o esquema do google mas não tinha dado certo porque eu estava utilizando "letras.mus.br", quando na verdade era pra utilizar "letras.terra.com.br". Deu praticamente certo, porque ele já faz a pesquisa certinho. A questão é que ele não entra na música, mostra apenas o resultado da pesquisa. Será que tem como ele entrar no link da letra automaticamente?

Obrigado de novo.

cesargcomp

Vi em algum tópico você comentar sobre esse maravilhoso player. Só uso o gmusicbrowser agora. Acabei de atualizá-lo para o 1.1.5 e descobri como deixar o ícone transparente.

Para ter transparência no ícone no gnome-panel, abra o arquivo /usr/bin/gmusicbrowser.
$ sudo gedit /usr/bin/gmusicbrowser
Use a Codificação de caracteres Ocidental (ISO-8859-15)
Descomente a linha igual o texto abaixo:
#Layout::Window::make_transparent($TrayIcon) if $CairoOK;

Agora uso as letras do liricwiki. Acha boa parte mas não acha tudo.

Como você fez para alterar as opções sem ser as que já existem na caixa? Abriu esse mesmo arquivo?
Gostaria de ajudar. Se me der o caminho das pedras, posso tentar ajudar.
Use Ubuntu. Segurança, facilidade e gratuidade em suas mãos.

vinicius_aleao

Opa, muito obrigado pela dica do ícone, ficou perfeito!

Quanto às letras, não mexi nesse arquivo não. Na verdade, utilizei o próprio plugin "Contexto da web" para adicionar uma aba para o letras.mus.br. Não mostra a letra diretamente, mas já faz a pesquisa dentro do site de modo que basta um clique para ter acesso a ela (à letra).

Acesse Principal > Definições > Plugins > Contexto da web, clique em "Novo" e cole a seguinte url: letras.mus.br (da maneira como eu criei) por causa da codificação de caracteres. Se, por exemplo, houver um "Ú" no título da música o site já vai ter problemas em pesquisar. Se também der pra descobrir um contorno...

cesargcomp

Nem agradeça. Estamos aqui para nos ajudar.

Consegui alguma coisa aqui.

Abri o arquivo lyrics.pm em /usr/share/gmusicbrowser/plugins.

Após a linha do google, acrescentei o seguinte:
########################################################################
   letras   =>   ['letras','http://letras.terra.com.br/winamp.php?musica=%s&artista=%a&cx=partner-pub-9911820215479768:27n8sq6qzwx&cof=FORID:9&ie=ISO-8859-1',undef,
      sub { my $no= $_[0]=~m/href="envie_artista.php"/s; $_[0]=~s/^.*class="avt">(.*?)id="logo".*$/$1/s && !$no; }],
########################################################################

Abra o menu de contexto (Lyrics) e selecione a opção letras.

Feito.......... Funciona................
Só tem um porém, aquele problema continua: (mas já é uma evolução, não é?)
Citação de: vinicius_aleao online 18 de Agosto de 2010, 23:44
Esqueci de dizer: às vezes dá um probleminha na busca do letras.mus.br (da maneira como eu criei) por causa da codificação de caracteres. Se, por exemplo, houver um "Ú" no título da música o site já vai ter problemas em pesquisar. Se também der pra descobrir um contorno...
Testa ai e me fala se funcionou.
Use Ubuntu. Segurança, facilidade e gratuidade em suas mãos.

vinicius_aleao

Cara, você é um verdadeiro ninja, e dos pretos!  ;D

Eu não sei se vai ajudar, mas eu me lembro perfeitamente que o lyricsplugin (quando funcionava) sempre exibia os caracteres de forma correta. Talvez seja o caso de olhar a parte do código responsável por esse plugin. A aba do google também pesquisa corretamente, reconhecendo os acentos e tal. Tanto é que se você escutar "Além do que se vê" (Los Hermanos), a letra não é encontrada nesse plugin que você criou; mas se for na aba do google, aparecem todos os acentos corretamente e o primeiro link mostrado é justamente o do letras.terra.com.br. Talvez dê pra achar alguma diferença que resolva o problema.

Eu juro que se a gente descobrir como resolver isso, eu faço um tutorial bem completinho explicando como deixar o gmusicbrowser perfeito! E, obviamente, todos os créditos serão seus.  ;)

Vou fuçar aqui também pra ver se acho alguma coisa. Abraço!

EDIT:

Descobri uma coisa bem legal. Se você clicar com o direito do mouse sobre qualquer aba do contexto e acessar "Open context text", você pode adicionar outra aba Lyrics, que possui um menu dropdown com os plugins de busca. O padrão é google, mas o lyricsplugin está lá e funciona perfeitamente! Vai entender... A diferença é que nessa outra aba Lyrics não se permite editar e salvar a letra.

Mas continua valendo nosso esforço. Prefiro a primeira aba Lyrics exatamente por causa da edição e salvamento. De qualquer forma, já é uma melhora.

cesargcomp

Fiz a tradução completa do gmusicbrowser e encaminhei o arquivo para o desenvolvedor.

Se quiser adicionar o arquivo é só colocá-lo na pasta /usr/share/locale/pt/LC_MESSAGES.
Faça a copia como root (sudo su):
# cp "local onde ele se encontra" /usr/share/locale/pt/LC_MESSAGES

Pronto! É só abrir que o gmusicbrowser estará todo em Português.

PS.: Recomendo sempre fazer um backup.
# cp /usr/share/locale/pt/LC_MESSAGES/gmusicbrowser.mo /usr/share/locale/pt/LC_MESSAGES/gmusicbrowser.mo.old
Na dúvida é só voltar o antigo.

Link do arquivo traduzido: http://rapidshare.com/files/415166448/gmusicbrowser.mo

Obs: Sobre o problema da codificação no site "letras.com.br", espero uma resposta do desenvolvedor. O problema eu sei qual é mas ainda não sei a solução. Esse site usa codificação iso-8859-1 enquanto o plugin lyrics usa utf-8. Isso gera erros nos carcateres. Mas e daí? Como solucionar? Ainda não sei.
Use Ubuntu. Segurança, facilidade e gratuidade em suas mãos.

vinicius_aleao

Cara, pelo jeito você se apaixonou mesmo pelo programa... Mas pudera: só em descobrir as diversas opções de estilo, você se abestalha mesmo!   ;D

Mais uma vez, não apenas eu agradeço sua colaboração, mas o parabenizo pela iniciativa. Se o programa era muito bom, agora está um luxo! Só falta o lestras.mus.br funcionar para ficar perfeito! Não entenda como uma cobrança -- até porque o lyricsplugin está funcionando na segunda aba letras e você já fez mais do que o necessário.

Só uma pequena indicação: na tradução, acho que você engoliu uma sílaba no diálogo Principal > Definições > Estilos: em "Estilo da janela de dica" saiu "Estilo da nela de dica".  ;)

De novo, muitíssimo obrigado pela colaboração.

cesargcomp

Citação de: vinicius_aleao online 26 de Agosto de 2010, 21:58
Cara, pelo jeito você se apaixonou mesmo pelo programa... Mas pudera: só em descobrir as diversas opções de estilo, você se abestalha mesmo!   ;D

Mais uma vez, não apenas eu agradeço sua colaboração, mas o parabenizo pela iniciativa. Se o programa era muito bom, agora está um luxo! Só falta o lestras.mus.br funcionar para ficar perfeito! Não entenda como uma cobrança -- até porque o lyricsplugin está funcionando na segunda aba letras e você já fez mais do que o necessário.

Só uma pequena indicação: na tradução, acho que você engoliu uma sílaba no diálogo Principal > Definições > Estilos: em "Estilo da janela de dica" saiu "Estilo da nela de dica".  ;)

De novo, muitíssimo obrigado pela colaboração.
hehehehehe... Me apaixonei mesmo... O programa além de leve é "porreta"...
Eu é que agradeço a você por ter me apresentado a esse player. Resolvi fazer a tradução pois achei que o gmusicbrowser merecia estar completo. Sobre o plugin lyrics recebi ontem uma mensagem no fórum do programa (http://forum.gmusicbrowser.org/index.php?topic=164.msg664#msg664). Ele não detectou nenhum problema. Talvez porque ele seja francês e não se atentou aos acentos. Vou mandar alguns exemplos pra ele.

Cara, valeu mesmo. Eu não tinha visto esse erro... Engoli letras... hehehhe
Sabe o que é, usou o gedit nessa tradução e de segundos em segundos (não sei quanto tempo) ele salva automaticamente aqui. Se eu estiver digitando, come letras.  :-\
Se achar mais algum problema na tradução me avisa que acerto e coloco aqui.

Link da tradução corrigida: http://rapidshare.com/files/415727782/gmusicbrowser.mo
Link do fórum do gmusicbrowser: http://forum.gmusicbrowser.org/index.php
Link do git do gmusicbrowser: http://github.com/ochosi/gmusicbrowser
Use Ubuntu. Segurança, facilidade e gratuidade em suas mãos.

cesargcomp

Consegui... Usando o Google. Um redirecionamento para o site do letras.terra.com.br.

Coloque as linhas abaixo no arquivo lyrics.pm:
   google   =>   ['google','http://www.google.com/search?btnI=I%27m+Feeling+Lucky&hl=pt-BR&ie=UTF-8&sourceid=navclient&gfns=1&q=%s+%a+site%3Aletras.terra.com.br',undef,
             sub { my $no= $_[0]=~m/site:letras.terra.com.br/s; $_[0]=~s!^.*.id="main_cnt">(.*?)id="pub_9">.*$!$1!s && !$no; }],

Testa ai e me fala se funcionou.

Use Ubuntu. Segurança, facilidade e gratuidade em suas mãos.

vinicius_aleao

Citação de: cesargcomp online 30 de Agosto de 2010, 00:23
Consegui... Usando o Google. Um redirecionamento para o site do letras.terra.com.br.

Coloque as linhas abaixo no arquivo lyrics.pm:
   google   =>   ['google','http://www.google.com/search?btnI=I%27m+Feeling+Lucky&hl=pt-BR&ie=UTF-8&sourceid=navclient&gfns=1&q=%s+%a+site%3Aletras.terra.com.br',undef,
             sub { my $no= $_[0]=~m/site:letras.terra.com.br/s; $_[0]=~s!^.*.id="main_cnt">(.*?)id="pub_9">.*$!$1!s && !$no; }],

Testa ai e me fala se funcionou.



Funcionou com algumas letras, com a maioria não. Será que eu fiz alguma coisa de errado?

Agora fiquei ansioso!   ;D

cesargcomp

Testei com umas 30 músicas e umas 2 não funcionaram. Acabei desistindo por enquanto de fazer. Pra mim o lyricwiki tá funcionando mais ou menos mas já ajuda. Segundo o desenvolvedor realmente existe este problema e por enquanto ele não vai mudar em nada. Apesar de que na atualização de hoje já veio no lyrics-songs com uma modificação usando o site do letras.terra.com.br. Com os mesmos erros. Quem sabe pra frente muda.  :-\
Use Ubuntu. Segurança, facilidade e gratuidade em suas mãos.

vinicius_aleao

Por enquanto estou usando o lyricsplugin na outra aba Letras, que não salva a letra da música (nela o lyricsplugin está perfeito). Mas já está excelente assim, especialmente com a sua tradução.

Muito obrigado pela ajuda.

vinicius_aleao

cesargcomp, descobri duas coisas: (1) naquela modificação que você sugeriu no lyrics.pm, se trocarmos o "%s" por "%t", o sucesso aumenta consideravelmente ('letras','http://letras.terra.com.br/winamp.php?musica=%s&artista=%a&cx=partner- etc...); (2) se você editar suas tags e retirar os caracteres especiais (por exemplo, "Aguas de Marco"), toda letra é encontrada. Será que não haveria uma maneira de forçar o programa a considerar "á"="a", "ç"="c", "ô"=o etc.?

Grande abraço.

cesargcomp

Citação de: vinicius_aleao online 24 de Novembro de 2010, 00:39
cesargcomp, descobri duas coisas: (1) naquela modificação que você sugeriu no lyrics.pm, se trocarmos o "%s" por "%t", o sucesso aumenta consideravelmente ('letras','http://letras.terra.com.br/winamp.php?musica=%s&artista=%a&cx=partner- etc...); (2) se você editar suas tags e retirar os caracteres especiais (por exemplo, "Aguas de Marco"), toda letra é encontrada. Será que não haveria uma maneira de forçar o programa a considerar "á"="a", "ç"="c", "ô"=o etc.?

Grande abraço.

Com o %t não consegui nada aqui. A parte de modificar a tag ainda não fiz mas realmente deve funcionar.
Consegui algo aqui. O criador do programa me mandou uma linha em relação ao letras.
letras   =>   ['letras','http://letras.terra.com.br/winamp.php?musica=%s&artista=%a&cx=partner-pub-9911820215479768:27n8sq6qzwx&cof=FORID:9&&ie=UTF-8',undef,
sub { my $l=html_extract($_[0],div=>'letra'); my $ref=\$_[0]; $$ref=$l ? $l : $notfound; return !!$l }],


Funciona em parte. A parte das letras com acento ainda fica com problemas :(.
Tentei usar o google pra isso e consegui criar um código que funcionou pra mim. Algumas músicas em inglês que tem letras com tradução aparecerão com um pequeno cabeçalho (que não me atrapalha em nada). Tenta ae.
Cole o código abaixo lá no arquivo.

google => ['google','http://www.google.com/search?btnI=I%27m+Feeling+Lucky&ie=UTF-8&oe=UTF-8&q=%s+%a+site%3Aletras.terra.com.br&sourceid=navclient',undef,
      sub { my $no= $_[0]=~m/site:letras.terra.com.br/s; $_[0]=~s!^.*.class=cor_2>(.*?)id="pub_9">.*$!$1!s && !$no; }],
Use Ubuntu. Segurança, facilidade e gratuidade em suas mãos.

Xterminator

Já pensaram em dar uma olhada no código fonte do plugin do listen?
acho que basta adaptar o código, pois o listen é feito em python.
baixa o tarball e dá uma conferida no código fonte que está em /src/plugins/
https://www.listen-project.org/downloads/
Aqui o plugin em funcionamento.
http://img256.imageshack.us/img256/9942/listen06.png