2009年9月19日土曜日

Livedoor Clipを素早くする(Opera限定)

このエントリーをはてなブックマークに追加
Opera限定です。
下記のUserScriptを導入するとLDC生活がますます快適に!!
LDCのクリップ画面ってめっちゃ重いじゃないですか。
って事でそれよりかは早くpost出来るのを作ったという超うそ臭いコード仕様になっています。
postkeyが必要なのですが、それはLDCのユーザ画面に行って、そこからpostkeyを取得してください。

取得するためのBookmarklet
これを実行

あー説明面倒ー。
こっちにもうpしたので、詳細な説明はそちらをご覧ください。
#本家が適当それがACクオリティ!!
http://userscripts.org/scripts/show/58048


// ==UserScript==
// @name fast ldc
// @namespace http://looxu.blogspot.com/
// @description Fast post to livedoor clip
// @include http://*
// @author Arc Cosine
// @version 1.0
// ==/UserScript==
// License : Public Domain
// Get Post key bookmarklet;
// javascript:(function(){ var n=document.getElementsByTagName('input');var p;for( var i=0,l=n.length; i<l; i++ ){ if(n[i].name.match(/postkey/)){ p=n[i].value;break;}}window.prompt('Your postkey',p);})();
(function(){
var LDC = {
/* config ここから */
postkey : 'Your Post Key',
firekey : 'c', //クリップを動かすショートカットキー。使用できるのは0-9a-zA-Zだと思う。A-ZはShift+a-zと解釈される
pub : 'on', //公開|非公開の設定。公開の場合はon 非公開の場合はoff
/* config ここまで*/
init : function(){
window.addEventListener( 'keypress', function(e){
LDC.addKeyBind( LDC.firekey , function(){ LDC.postBox() }, e );
LDC.addKeyBind( 'q', function(){ LDC.rate_change(-1); }, e);
LDC.addKeyBind( 'w', function(){ LDC.rate_change(1);}, e);
},false );
},
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();
}
},
rate : 0,
rate_change : function(arg){
LDC.rate = parseInt(document.getElementById('rate').value) + arg;
if( LDC.rate < 0 ) LDC.rate = 0;
if( LDC.rate > 5 ) LDC.rate = 5;
var el = document.getElementById('rate_img');
el.src = 'http://clip.livedoor.com/img/rate/pad/' + LDC.rate + '.gif';
document.getElementById('rate').value = LDC.rate;
},
postBox : function(){
var t_div = document.getElementById('t_div');
if( !t_div ){
t_div = document.createElement('div');
t_div.id = 't_div';
t_div.style.position = 'absolute';
t_div.style.top = (window.pageYOffset || window.scrollY)+ 20 + 'px';
t_div.style.left = '20px';
t_div.style.width = '400px';
t_div.style.height = '160px';
t_div.style.padding = '10px';
t_div.style.border = '3px solid #aaaaaa';
t_div.style.textAlign = 'center';
t_div.style.backgroundColor = '#ffffff';
var myForm = document.createElement('form');
myForm.style.fontSize = '12px';
var url = 'http://clip.livedoor.com/clip/add';
myForm.method = 'POST';
myForm.target = 'crossIframe';
myForm.innerHTML = 'LDC Fast Clip<dl><dt><label style="width: 4.2em; float:left; display: block;">レート</label><img id="rate_img" src="http://clip.livedoor.com/img/rate/pad/0.gif">  w key:rate up,q key:rate down</dt><dt><label style="width: 4.2em; float:left; display: block;">タグ</label><input style="border: 1px solid #aaaaaa; width:300px;" tabindex=1 type="text" id="tagArea" value=""></dt><dt><label style="width: 4.2em; float:left; display: block;">コメント</label><textarea tabindex=2 style="border:1px solid #aaaaaa; width:300px; height: 50px;" id="clipTextNote"></textarea></dt></dl><input tabindex=3 type="submit" value="送信"><input type="hidden" name="link" value="' + location.href +'"><input type="hidden" name="rate" id="rate" value="0">';
t_div.appendChild(myForm);
document.body.appendChild(t_div);

var crossIframe= document.createElement('iframe');
crossIframe.name = 'crossIframe';
crossIframe.id = 'crossIframe';
crossIframe.src = 'about:blank';
crossIframe.style.display = 'none';

myForm.onsubmit = function(){
var text = encodeURIComponent(document.getElementById('clipTextNote').value);
var tags = encodeURIComponent(document.getElementById('tagArea').value);
myForm.action = url + '?title=' + encodeURIComponent(document.title) + '¬es=' + text + '&tags=' + tags + '&public=' + LDC.pub + '&postkey=' + LDC.postkey;
crossIframe.onload = function(){
crossIframe.parentNode.removeChild(crossIframe);
t_div.parentNode.removeChild(t_div);
}
}
document.body.appendChild(crossIframe);

close_div = document.createElement('div');
close_div.style.backgroundColor = '#dee3ea';
close_div.style.position = 'absolute';
close_div.style.top = '5px';
close_div.style.right='10px';
close_div.style.width = '60px';
close_div.style.height = '16px';
close_div.style.border = '1px solid #0f0f0f';
close_div.innerHTML='閉じる';
close_div.onclick = function(){
crossIframe.parentNode.removeChild(crossIframe);
t_div.parentNode.removeChild(t_div);
}
t_div.appendChild(close_div);

}else{
var crossIframe = document.getElementById('crossIframe');
crossIframe.parentNode.removeChild(crossIframe);
t_div.parentNode.removeChild(t_div);
}
}
};
LDC.init();
})();

0 件のコメント :

コメントを投稿