デジャブかもしれません
twitterを使ってみんなでアイデアを共有するサービス、ひらめいったーのはてなスターサイト上で、twitterユーザのアイコンが表示されるようにするグリモン書いた。
2008/01/31
タイピング激速グリモン書いた
んー。
こんな速度、人間じゃありえん!
ちなみにこのスクリプト、なんでこんな変な事しているかといいますと...
まずど頭で、「z+z+z+ ...」ってやってる部分は、あまりにタイプスピードが速すぎて、内部の配列がオーバーフローしてしまっているのでキャパを取り直しています。次にループ内で再度「t」を取り直しているのは、このSpeedtestがイカサマ防止の為にタイプ中にワードを増やす処理が入っており、それをハンドリングする為に入っています。
// ==UserScript==
// @name Speedtest Ikasama
// @namespace Speedtest.Ikasama
// @include http://speedtest.10-fast-fingers.com/
// ==/UserScript==
var w=document.getElementById('eingabe');
var v=document.getElementById('vorgabe');
var s = 0;
var z = unsafeWindow.pruefstring;
var f1 = unsafeWindow.welchedown;
var f2 = unsafeWindow.welcheup;
unsafeWindow.wort = (z+z+z+z+z).split(' ');
(function go() {
clearTimeout(s);
var t = v.innerHTML.replace(/<[^>]+>/g, '');
if (t){
var i=0;
while(true){
t = v.innerHTML.replace(/<[^>]+>/g, '');
var e = document.createEvent('KeyboardEvent');
e.initKeyEvent('keypress', true, true, window, false, false, false, false, 0, t.charCodeAt(i));
w.dispatchEvent(e);
f1(e);f2(e);
if (++i >= t.length) break;
}
}
s = setTimeout(go, 0);
})();
こんなの使っても
8位って事は、1位の人もHackingやん!www
こんな速度、人間じゃありえん!
speedtest.ikasama.user.js# 10-fast-fingers.com - Speedtest
ちなみにこのスクリプト、なんでこんな変な事しているかといいますと...
まずど頭で、「z+z+z+ ...」ってやってる部分は、あまりにタイプスピードが速すぎて、内部の配列がオーバーフローしてしまっているのでキャパを取り直しています。次にループ内で再度「t」を取り直しているのは、このSpeedtestがイカサマ防止の為にタイプ中にワードを増やす処理が入っており、それをハンドリングする為に入っています。
Minibuffer用のはてなブックマークコマンド書いた
Firefoxをshellの様に扱えるグリモン「Minibuffer ? Userscripts.org」で使える、はてなブックマークコマンド「hatena-bookmark」書いた。
Minibufferは、LDRizeと併用すると「pinned-link」や「pinned-node」というルートコマンド(フィルタコマンドではない)が追加される。
例えば、LDRizeでpinを付けたリンクをタブで開くには
この順番になるように、以下のスクリプト入れると、「hatena-bookmark」コマンドが追加される。
LDRizeを入れておくと、ブログ等の記事1つずつにpinが付けられるようになっていて、そのpinを付けたものに対してパイプ形式にコマンドを繋げられる。
例えば、pinをつけたリンクのGoogleキャッシュを開くには
※pinをつけるには「p」を押す。
「hatena-bookmark」の使い方は、何もpinしていない状態で「Alt-x」(ALTキーを押しながらx)を押して
なお
ちなみにソースはこんな感じ。
あ、あと記事とは無関係ですが、今日CodeReposのLDRize-SITEINFO書いときました。
追記1
bookmarkコマンドで、stdinを返すように修正した。
これで
追記2
申し訳ない。objがtypeofでstringとして戻るパターンとobjectとして戻るパターンがあるようです。修正しました。
例えば、LDRizeでpinを付けたリンクをタブで開くには
:pinned-link | open
とすれば良い。ここで注意しなければならないのがグリモンの設定で
- Minibuffer
- LDRize
- ...LDRizeプラグインもしくはMinubufferプラグイン...
この順番になるように、以下のスクリプト入れると、「hatena-bookmark」コマンドが追加される。
LDRizeを入れておくと、ブログ等の記事1つずつにpinが付けられるようになっていて、そのpinを付けたものに対してパイプ形式にコマンドを繋げられる。
例えば、pinをつけたリンクのGoogleキャッシュを開くには
:pinned-link | google-cache | open
とすればよい。※pinをつけるには「p」を押す。
「hatena-bookmark」の使い方は、何もpinしていない状態で「Alt-x」(ALTキーを押しながらx)を押して
:hatena-bookmark
とすると、現在見ているページのはてなブックマーク登録画面が立ち上がる。またpinを付けた状態で
:pinned-link | hatena-bookmark
とすると、pinが指すリンクのブックマーク登録画面が立ち上がる。なお
:pinned-node | hatena-bookmark
では、pinしているHTMLノードの先頭にあるリンクを使ってブックマーク登録画面を表示する。
ちなみにソースはこんな感じ。
// ==UserScript==
// @name Minibuffer Hatena Command
// @namespace Minibuffer.Hatena-Command
// @description add hatena-bookmark command to Minibuffer.
// @include http://*
// @include https://*
// ==/UserScript==
var SCRIPT_VERSION = 'Thu, 15 Nov 2007'
var Minibuffer_Hatena = new function() {
var self = this;
this._run_bookmark = function(u, t) {
var link;
if (t) link = 'http://b.hatena.ne.jp/add?mode=confirm&is_bm=1&title='+escape(t)+'&url='+escape(u);
else link = 'http://b.hatena.ne.jp/add?mode=confirm&is_bm=1&url='+escape(u);
setTimeout(function(){
window.open(link, '_blank', 'width=550,height=600,resizable=1,scrollbars=1');
}, 10);
}
this.bookmark = function ( stdin ) {
if (stdin.length == 0) {
self._run_bookmark(location.href, document.title);
} else {
stdin.forEach(function(obj){
if (typeof obj == 'string' && obj.match(/^https?:.*/)) self._run_bookmark(obj);
else if (typeof obj == 'object') {
try {
var links = obj.getElementsByTagName('a');
for(var n = 0; n < links.length; n++) {
if (links[n].href.match(/^https?:.*/)) {
self._run_bookmark(links[n].href);
break;
}
}
} catch(e) { }
}
});
}
};
this.condition = function() { return true; };
};
if (window.Minibuffer) {
Minibuffer.addCommand({
"hatena-bookmark": Minibuffer_Hatena.bookmark,
});
}
インストール:minibuffer.hatena.user.jsちなみに、ファイル名が「minibuffer.hatena.bookmark.user.js」になっていないのは、いずれ他のコマンドも作って行きたいから...。
あ、あと記事とは無関係ですが、今日CodeReposのLDRize-SITEINFO書いときました。
追記1
bookmarkコマンドで、stdinを返すように修正した。
これで
:pinned-link | hatena-bookmark | clear-pin
とか出来る様になった。追記2
申し訳ない。objがtypeofでstringとして戻るパターンとobjectとして戻るパターンがあるようです。修正しました。