Para resolver esse problema implementei um script no GreaseMonkey para remontar a página do GoogleReader com os links corretos. Para quem não sabe o GreaseMonkey é uma extensão do Firefox, o melhor navegador existente na atualidade, que permite ao usuário configurar scripts para serem rodados ao término do carregamento de uma determinada página. Eu falei brevemente dele no post em que falo sobre as extensões do Firefox essenciais para um desenvolvedor web, e agora com este exemplo ficará mais fácil entender como ele funciona.
O código do script encontra-se abaixo. O que ele faz é verificar a cada 3 segundos se houve alguma alteração de estado no GoogleReader. Para então mudar os links caso haja necessidade. Só há uma ressalva, ele não funciona para o modo de visualização de lista, só a visão expandida. O motivo é que não gosto da visualização em lista e portanto não me interessei em testar nela :P
// ==UserScript==
// @name GoogleReaderGM
// @namespace http://www.google.com/reader
// @include http://www.google.com/reader/*
// ==/UserScript==
function GoogleReaderGM() {}
GoogleReaderGM.prototype = {
isChanged: function() {
var e = document.getElementById("entries");
var ds = e.getElementsByTagName("div");
if( this._oldUrl != window.location.href ) {
this._oldUrl = window.location.href;
this._oldQtds = ds.length;
return true;
}
if( this._oldQtds != ds.length ) {
this._oldQtds = ds.length;
return true;
}
return false;
},
mudaLinksInfoBlogs: function() {
if( this.isChanged() ) {
var e = document.getElementById("entries");
var as = e.getElementsByTagName("a");
for( i=0; i<as.length; i++ ) {
var a = as[i];
if( a.className=="entry-title-link" && a.href.indexOf("www.infoblogs.com.br/view.action")!=-1 ) {
a.href = a.href.replace("view","redir/go");
}
}
}
}
}
var gr = new GoogleReaderGM();
setInterval(function() { gr.mudaLinksInfoBlogs(); }, 3000);
O interessante é que se você quiser pode utilizar esse código como template para executar outras funcionalidades no GoogleReader. Basta adicionar mais alguma função, e utilizando isChanged você fica sabendo se alguma entrada nova apareceu na área que exibe as entradas dos feeds. Isso é claro se você utilizar a visão expandida (Expanded view), pois o método isChanged só foi feito pra ela.
Boa garoto!
ResponderExcluirEnfrento o mesmo problema com o feed do monitorfinanceiro.net...
Vou re-implementar este script para a visão em lista (minha preferência) e posto aqui os resultados...
Valeu! Fico no aguardo!
ResponderExcluirVocê reparou que eles alteraram isso? Agora o redirect do Feed vai direto para o blog do usuário!
ResponderExcluirParabéns a equipe do infoblogs.
Opa, que beleza então heim!
ResponderExcluirAgora esse grease ficou inutil :)
Não é inútil!
ResponderExcluirEu "precisei" da mesma funcionalidade de correção de link, para os feeds de outro site. Sendo que gosto muito do modo List view. Então eu estudei seu script e um outro...
Criei isso aqui: http://userscripts.org/scripts/show/35526
Funciona para Expanded view e List view!
Pode ser adaptado facilmente. O código está fácil. Só alterar o procedimento do if da função changeLink(a).