やっていることは単純で「マウスで数字を選択してから Shift+Ctrl+クリックまたは Shift+右クリックすると千夜千冊の該当ページが開く」というもの。テキストの数字をダブルクリックすると数字部分だけ選択出来るので、そのまま Shift+Ctrl+クリックすればOK。前後に余計なものが入ってもmatch(/¥d+/)で取り除いているので選択はある程度大雑把でもいけるはず。全角半角処理やゼロ詰処理は車輪の再発明ぽいけど、まぁ書初めということで良しとしましょう。ちなみにaddEventListener('contextmenu')なので、Windowsでは Shift+右クリになるかと思われ。あと、ポップアップブロックをしていると最初の呼び出し(window.open)時に警告が出るので、許可してやればその後は出なくなります。
GitHubに上げましたので人柱上等な方はどうぞ。opensenya.user.js
// ==UserScript==
// @name opensenya
// @description 「1337夜」等の数字を選択して Shift+Ctrl+クリックまたは Shift+右クリックすると千夜千冊の該当ページが開きます。
// @include http://www.honza.jp/senya/1/matsuoka_seigow/*
// @version 0.0.5
// @author outZider
// ==/UserScript==
(function() {
function fz(num, digit) {
var s = String(num);
for (var i = 0; i < digit - String(num).length; i++) s = "0" + s;
return s;
}
window.addEventListener(
'contextmenu',
function(e) {
if (e.shiftKey) {
var selection = window.getSelection();
if (selection.rangeCount) {
var s = String(selection.getRangeAt(0)).replace(/[0-9]/g,
function (w) {
var z = "0123456789", h = "0123456789"; return h[z.indexOf(w)];
}).match(/\d+/);
if (s && (parseInt(s) != 0)) {
if (s < 1330)
window.open("http://www.isis.ne.jp/mnn/senya/senya" + fz(s, 4) + ".html"); // 放埒・遊蕩篇
else
window.open("http://www.honza.jp/senya/1/matsuoka_seigow/" + fz(s, 4)); // 連環篇
}
e.preventDefault();
}
}
},
true);
})();
2010/01/07 追記:
コンテクストメニューが使えなくなっていたので Shift+Ctrl+クリック または Shift+右クリックで開くように修正しました。上のリンク先は修正済みのもの(version 0.0.5)になってます。
ちなみに年明けの1339夜は最初からリンクが張られていますね。1338夜はまだリンクが張られていないところを見ると、年末進行で編集作業が忘れられていたと言うだけのことなのかな。
0 件のコメント:
コメントを投稿