KenntWas.de – Technische Tipps

Technische Informationen zu Linux, (Oracle-) Datenbanken und mehr

Google Reader: Show All feeds Bookmark

| 1 Comment

 

Show All Feeds für Google Reader
Irgendwie funktionierte mein Show All Feeds Button nicht mehr (404-Error), weil Google etwas geändert hat. Die URL hat sich etwas geändert.

Dieser Link behebt das Problem:

Einfach in die Bookmark-Leiste ziehen.

Update 23.6.2013:

Der Google Reader wurde leider eingestellt. Hier die Version für feedly und Owncloud user.

Der Link bietet dann alle Feeds einer Seite zur Auswahl im Google-Reader an. Durch einen Klick können die RSS – Feeds dann auf jeder Seite (Blog) im Google Reader abonniert werden.

Das sieht dann z.B. so aus:

Google Reader Show All Feeds Bookmark

Der Linktext ist:

javascript:var%20el=document.createElement('div');el.style.zIndex=10000;el.style.position='absolute';el.style.padding='2em';el.style.top=0;el.style.backgroundColor='#ffffcc';el.style.border='1px%20solid%20#008000';el.style.color='#000%20!important';el.style.fontFamily='Arial,%20sans-serif';el.style.textAlign='left';el.innerHTML='View%20the%20following%20feeds%20in%20Google%20Reader:';var%20found%20=%20false;var%20links%20=%20document.getElementsByTagName('link');for%20(var%20i%20=%200,%20link;%20link%20=%20links[i];%20i++)%20{%20var%20type%20=%20link.getAttribute('type');%20var%20rel%20=%20link.getAttribute('rel');%20var%20title%20=%20link.getAttribute('title');%20if%20(type%20&&%20(type%20==%20'application/rss+xml'%20||%20type%20==%20'application/atom+xml')%20&&%20rel%20&&%20rel%20==%20'alternate')%20{%20var%20href%20=%20link.getAttribute('href');%20if%20(!href.match(/^http/))%20{%20var%20path%20=%20(href.match(/^\//))%20?%20'/'%20:%20location.pathname;%20href='http://'%20+%20location.hostname%20+%20path%20+%20href;%20}%20var%20previewLink%20=%20document.createElement('a');%20previewLink.href%20=%20'%20http://google.com/reader/view/feed/'%20+%20href;%20previewLink.innerHTML%20=%20((title)%20?%20title%20:%20'')%20+%20'%20-%20'%20+%20href;%20previewLink.style.display='block';%20previewLink.style.color='#00c';previewLink.style.textDecoration='underline';%20el.appendChild(previewLink);%20found%20=%20true;}}%20var%20close=document.createElement('a');%20close.innerHTML='Hide%20this%20box';%20close.href='#';%20close.style.display='block';%20close.style.marginTop='2em';%20close.style.color='#00c';%20close.style.textDecoration='underline';%20close.onclick=function()%20{el.style.display='none';%20return%20false;};%20el.appendChild(close);%20function%20Google_AddFeedBox()%20{document.body.appendChild(el);y=window.scroll(0,%200);}%20if%20(!found)%20alert('Oops.%20Can\'t%20find%20any%20feeds%20for%20this%20page.');%20else%20void(z=Google_AddFeedBox());

Das Original-Script stammt aus dem Official Google Reader Blog. Dies ist die korrigierte Fassung (Ohne 404-Fehler).

Für JavaScript – Kenner hier das Script auch noch einmal ohne URL-Encoding.
Im Browser (als Bookmark / Lesezeichen) läuft das Script so nicht, aber man kann sehen, wie es funktioniert.

Eigentlich ganz einfach:
Zuerst wird dynamisch eine Dialog-Box (el) aufgebaut. Das aktuell im Browser geöffnete Dokument wird dann in einer Schleife auf Links untersucht. Wenn es sich um einen RSS oder ATOM-Link handelt, wird dieser für den Google Reader aufbereitet und angezeigt.

Ganz am Ende wird dann dynamisch noch ein Close-Link (“Hide this Box”) eingefügt.

javascript:var el=document.createElement('div');
el.style.zIndex=10000;
el.style.position='absolute';el.style.padding='2em';
el.style.top=0;
el.style.backgroundColor='#ffffcc';
el.style.border='1px solid #008000';
el.style.color='#000 !important';
el.style.fontFamily='Arial, sans-serif';
el.style.textAlign='left';
el.innerHTML='View the following feeds in Google Reader:';

/* are there any links to rss-feeds in current document? */
var found = false;
var links = document.getElementsByTagName('link');

/* loop over all links in corrent document */
for (var i = 0, link; link = links[i]; i++) {
    var type = link.getAttribute('type');
    var rel = link.getAttribute('rel');
    var title = link.getAttribute('title'); 

    if (type && (type == 'application/rss+xml' ||
                 type == 'application/atom+xml') &&
        rel && rel == 'alternate') {
        /* rss or atom - Link found ... */
        var href = link.getAttribute('href');
        if (!href.match(/^http/)) {
            var path = (href.match(/^\//)) ? '/' : location.pathname;
            href='http://' + location.hostname + path + href;
        }
        var previewLink = document.createElement('a');

        /*
        ** the URL to google reader recently changed:
        ** it used to be something like
        **  http://google.com/reader/view/*/feed/ 
        ** MN: changed this, because the above link only gives
        **     404-errors
        **
        */
        previewLink.href = ' http://google.com/reader/view/feed/' + href;
        previewLink.innerHTML = ((title) ? title : '') + ' - ' + href;
        previewLink.style.display='block';
        previewLink.style.color='#00c';
        previewLink.style.textDecoration='underline';
        el.appendChild(previewLink);
        found = true;
    }
}
var close=document.createElement('a');
close.innerHTML='Hide this box';
close.href='#';
close.style.display='block';
close.style.marginTop='2em';
close.style.color='#00c';
close.style.textDecoration='underline';
close.onclick=function() {
    el.style.display='none';
    return false;
};
el.appendChild(close); 

function Google_AddFeedBox() {
    /* build the dynamic window */
    document.body.appendChild(el);
    y=window.scroll(0, 0);
} 

if (!found)
    alert('Oops. Can\'t find any feeds for this page.');
else
    void(z=Google_AddFeedBox());

One Comment

  1. Hey, Danke für den Tipp!
    Jetzt funktioniert der Google Reader wieder.

Leave a Reply

Required fields are marked *.