There are 10 previous versions of this script.
// ==UserScript==
// @name Google Reader - Open all unread button
// @namespace http://pas-bien.net/
// @include http://www.google.tld/reader/view/*
// @include https://www.google.tld/reader/view/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js
// ==/UserScript==
/*
Change log :
--------------
v0.1.1: Fix bad insert after google reader's update (13/08/2009)
v0.1.0: Support of expanded view. Now if all items can't be seen, you must confirm before opening.
v0.0.5: Fix security issue (include http*) and rewrite with jQuery
v0.0.4: Update for new version
v0.0.3: Button text based on top level domain and fix line return
v0.0.2: Works now for all google domains
v0.0.1: Added https URLs
v0.0.0: First release.
*/
function oau_fireClick(id)
{
button = document.getElementById(id);
evt = document.createEvent('MouseEvents');
evt.initEvent( 'click', true, true );
button.dispatchEvent(evt);
}
function oau_openall ()
{
// Check if in good state
if($('#view-list').hasClass('link-selected'))
selector = 'div.entry:not(.read) a.entry-original';
else if($('#view-cards').hasClass('link-selected'))
selector = 'div.entry:not(.read) a.entry-title-link';
else
{
alert('Open All Unread : Only "Expanded" or "List" views are supported. Sorry...');
return;
}
// All items loaded ?
text = $('#show-new').text()
totalItems = parseInt((/(\d+)/.exec(text))[1],10);
if($(selector).size() != totalItems)
{
if(confirm('Open All Unread : All unreaded items can\'t be seen. Do you want to stop ?\n - Cancel : only the visible items will be opened.\n - Confirm : scroll down to load all items or try to refresh with the refresh button.\n\n Stop now ?'))
return;
}
// Open in tabs
$(selector).each(function(index, domElement){
window.open($(domElement).attr('href'));
});
// Mark as read
oau_fireClick('mark-all-as-read');
}
function oau_process()
{
// loaded ?
if($('body').hasClass('loaded'))
{
// Constants
oau_text_p1 = '<div id="open-all-unread" class="goog-button goog-button-base unselectable goog-inline-block goog-button-float-left goog-button-tight scour-disabled viewer-buttons" tabindex="0" role="wairole:button"><div class="goog-button-base-outer-box goog-inline-block"><div class="goog-button-base-inner-box goog-inline-block"><div class="goog-button-base-pos"><div class="goog-button-base-top-shadow"> </div><div class="goog-button-base-content"><div class="goog-button-body">';
oau_text_p2 = '</div></div></div></div></div></div>';
// Internationalisation
var eregTLD = /^https?:\/\/(www\.)?google.([a-z\.]+)\/reader\/view\/.*$/i;
if(eregTLD.test(document.location.href))
{
switch(eregTLD.exec(document.location.href)[2])
{
case "fr": oau_text = 'Ouvrir les non lus'; break;
case "de": oau_text = 'Öffnen Sie alle ungelesenen'; break;
case "it": oau_text = 'Aperto tutto da leggere'; break;
case "es": oau_text = 'Abrir no leídos'; break;
case "ro": oau_text = 'Deschideti toate necitite'; break;
default: oau_text = 'Open all unread'; break;
}
}
$('#viewer-refresh').before(oau_text_p1 + oau_text + oau_text_p2);
$('#open-all-unread').click(oau_openall);
}
else
{
// not loaded try later
setTimeout(oau_process,100);
}
}
oau_process();
