By kuy
Has 19 other scripts.
// ==UserScript==
// @name LDR Feed Info
// @namespace http://endflow.net/
// @description Add feed information into toolbar.
// @include http://reader.livedoor.com/reader/
// ==/UserScript==
// @author Yuki KODAMA (Twitter: kuy)
// @version 0.1.3 [2008-03-24]
// @history [2008-03-20] 0.1.0 first version
// [2008-03-23] 0.1.1 improved: add position indicator
// [2008-03-23] 0.1.2 bugfixed: position indicator
// [2008-03-24] 0.1.3 improved: add LDR icon on initialize
(function(){
var w = this.unsafeWindow || window;
w.addEventListener('load', function(){with(w){
var updateCounter = function(){
var item = subs_item(get_active_feed().subscribe_id);
if(!item) return;
var count = get_active_feed().items.length;
$('cbul_count').innerHTML = (get_active_item() + 1) + '/' + count;
}
register_hook('AFTER_PRINTFEED', function(){
var feed = get_active_feed();
$('cbul_subs').innerHTML = feed.channel.subscribers_count;
$('cbul_count').innerHTML = '1/' + feed.items.length;
$x('//li[@id="cbul_rate"]/span')[0].innerHTML = subs_item(feed.subscribe_id).rate;
$x('//li[@id="cbul_rate"]/img')[0].src = '/img/rate/' + subs_item(feed.subscribe_id).rate + '.gif';
$('cbul_title').innerHTML = feed.channel.title;
$('cbul_title').style.backgroundImage = $x('//td[@id="channel_info"]/span[@class="widget widget_offset"]/span')[0].style.backgroundImage;
});
addAfter(Control, 'scroll_next_item', function(){
updateCounter();
});
addAfter(Control, 'scroll_prev_item', function(){
updateCounter();
});
add_button({id:'cbul_subs', innerHTML:'<span>0</span>', icon:'/img/icon/subscriber.gif'});
setStyle('cbul_subs', {textAlign:'right', width:'auto', paddingLeft:'24px'});
add_button({id:'cbul_count', innerHTML:'<span>0/0</span>', icon:'/img/icon/new.gif'});
setStyle('cbul_count', {textAlign:'right', width:'auto', paddingLeft:'24px'});
add_button({id:'cbul_rate', innerHTML:'<img src="/img/rate/0.gif" style="position:absolute;clip:rect(0px 13px 15px 0px);margin:2px 0px 0px -16px;" /><span>0</span>'});
setStyle('cbul_rate', {textAlign:'right', width:'auto', paddingLeft:'20px'});
add_button({id:'cbul_title', innerHTML:'<span>livedoor Reader</span>', icon:'http://clip.livedoor.com/img/icon/reader.gif'});
setStyle('cbul_title', {textAlign:'right', width:'auto', paddingLeft:'24px'});
}}, false);
// THX! addBefore (LDR - Signal: http://userscripts.org/scripts/review/12781) written by brasil
function addAfter(target, name, after) {
var original = target[name];
target[name] = function() {
var ret = original.apply(this, arguments);
after.apply(this, arguments);
return ret;
}
}
// THX! XPath util compressed version (original written by cho45 [http://lowreal.net/logs/2006/03/16/1])
function $x(b,c){if(!c)c=document;var d=function(a){var o=document.createNSResolver(c)(a);
return o?o:(document.contentType=="text/html")?"":"http://www.w3.org/1999/xhtml"}
var b=document.createExpression(b,d);var e=b.evaluate(c,XPathResult.ANY_TYPE,null);
switch(e.resultType){case XPathResult.STRING_TYPE:return e.stringValue;
case XPathResult.NUMBER_TYPE:return e.numberValue;case XPathResult.BOOLEAN_TYPE:return e.booleanValue;
case XPathResult.UNORDERED_NODE_ITERATOR_TYPE:{e=b.evaluate(c,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);
var f=[];for(var i=0,len=e.snapshotLength;i<len;i++){f.push(e.snapshotItem(i))}return f}}return null}
})();