2009年1月29日木曜日

LDRとLDC登録画面の星を動かすUserScript

このエントリーをはてなブックマークに追加

一つ前の未完成スクリプトを更新。
LivedooReaderとLivedoorClip登録画面の星を動かすUserScript書きました。
LDCは全画面編集の場合も動作します。

使い方は、"q"キーでレート-1、"w"キーでレート+1。
これで気持ち良くキーボードから操作できるので、キーボードマニアは幸せを感じるはず。

Firefox3とOpera10で動作確認済。多分変なJavascriptは使っていないので、その他のブラウザでも動くと思います。
qとかwじゃなんかキモイという人は、addKeyBindの所を適当に変えてみてください。
(hとlに割り当てるとかね)

以下、コード

// ==UserScript==
// @name ldc_and_ldr_regist_rate
// @namespace http://looxu.blogspot.com/
// @include http://reader.livedoor.com/subscribe/*
// @include http://clip.livedoor.com/clip/add*
// @include http://clip.livedoor.com/clip/edit*
// ==/UserScript==
(function(){

var rate_change = function(arg){
if( location.href.match(/clip.livedoor.com/)){
rate = rate_parse(document.getElementById('rate').value,arg);
var el = document.getElementById('rate_img');
if(!el.getAttribute('orig_src')){
el.setAttribute('orig_src',el.src);
}
el.src = '/img/rate/pad/' + rate + '.gif';
document.getElementById('rate').value = rate;
}else if( location.href.match(/reader.livedoor.com/) ){
var tar = document.getElementsByName('rate');
rate = rate_parse(tar[0].value,arg);
var el = document.getElementsByTagName('img');
for( var i=0; i<el.length; i++ ){
if( el[i].src.match(/img\/rate\/pad/) ){
el[i].src = '/img/rate/pad/' + rate + '.gif'
break;
}
}
tar[0].value = rate;
}
};

var rate_parse = function(rate, diff){
var ret = parseInt(rate) + parseInt(diff);
if( ret < 0 ) ret = 0;
if( ret > 5 ) ret = 5;
return ret;
}

var addKeyBind = function( keyChar, func, eve ){
var t=eve.target;
var n=t.tagName.toLowerCase();
if( t.nodeType != 1 || n == 'input' || n == 'textarea' ){
return;
}
var pressKey = eve.which;
keyChar = keyChar.charCodeAt(keyChar);
if( pressKey == keyChar ){
eve.preventDefault(); //Stop Default Event
func.apply();
}
}

window.addEventListener( 'keypress', function(e){
addKeyBind( 'q', function(){ rate_change(-1); }, e);
addKeyBind( 'w', function(){ rate_change(1);}, e);
},false );

})();


後、お約束の後悔公開場所

GitHub
http://github.com/ArcCosine/userscript/tree/master

CodeRepos
http://coderepos.org/share/browser/lang/javascript/userscripts/ldc_and_ldr_regist_rate.user.js
1/31追記
CodeReposの方ですが、drryさんが名称変更されましたので、そっちのURLを記載します。
http://coderepos.org/share/browser/lang/javascript/userscripts/ldc_and_ldr_register_rate.user.js


お好きなようにやっちゃって下さい。

0 件のコメント :

コメントを投稿