Wednesday, 5. March 2008, 12:50:46
ソーシャルブックマークへの投稿をいかに速くするかというのはブラウジング速度を速める上で大きな課題です。なにせ何度も読み込みますからね。
2008年3月19日版にて、下記のUser JavaScriptによる通信はセキュリティ上の問題によりOpera側で通信がブロックされるように仕様が変更となりました。つきまして、紹介しておりますUser JavaScriptは現行のOpera 9.5 Snapshotでは動作いたしません。以下、歴史的資料として残しておきます。
で、
minibufferbookmarkcommandを発見した次第です。早速
minibufferと併せてて導入してみました。しばらくUserJSは減らす一方でしたので、久しぶりです。これを入れるとminibufferを利用してソーシャルブックマークへの投稿が可能になります。
minibufferはご存じの方も多いと思いますし、vimを使っている方でしたらなじみもあるかと思いますが、":"を押すと画面下に入力欄が現れ、コマンドを入力することができる、というもの。"|"を使って(Unixのように)左側の内容を右側へ流し込むことができます。たとえば、
location | bookmark -d "--tag=Opera UserJS"
とすると、
- 現在開いているタブの(location)を"|"の右側に渡す
- 渡されたもの(location)をソーシャルブックマークに投げる(bookmark)
- ソーシャルブックマークにはdel.icio.usを使う(-d)
- タグは"Opera"と"UserJS"を付ける("--tag=Opera UserJS")
となります。
タグの補完が効くというのが素晴らしいですね。
ちなみにminibufferbookmarkcommandはArrayオブジェクトを勝手に拡張するなど、あまり行儀の良いスクリプトではありません。tumblrの投稿時やdel.icio.usのタグ補完など、幾つかの箇所で問題が発生しますので覚悟の上でご利用ください。やっつけでブラックリストを書いていますが、きりがありません。はい。きっと他にも影響するでしょう。
// ==UserScript==
(中略)
// @include *
// @exclude http://*.tumblr.com/*
// @exclude http://del.icio.us/Kuruma?url=* // <- たびたび間違ってブックマークレットを起動するので、その辺りをごまかしてます
// ==/UserScript==
CodeReposなので誰かが依存を無くしてくれる気もします。というか自分やれよという話ですね、はい。とりあえずアカウントを申請しましたよ。
……なんて思っていたらショートカットキーも追加されるようで。とりあえず私にとっては押しにくく誤爆も多いキーですので、こんな具合に書き換えています。
window.Minibuffer.addShortcutkey({
key: 'M', // ショートカットキーをBからMに変更
description: 'Bookmark with comment', // 要約も気分的にちょっとだけ変更
command: function(){
var target_cmd = getTargetCommand();
window.Minibuffer.execute(target_cmd + ' | bookmark ' + SBM + ' --tag --comment');
}});
// タグだけでブックマークするショートカットキーを追加
window.Minibuffer.addShortcutkey({
key: 'M',
description: 'Bookmark without comment',
command: function(){
var target_cmd = getTargetCommand();
window.Minibuffer.execute(target_cmd + ' | bookmark ' + SBM + ' --tag');
}});
タグ無しでブックマークするということはあり得ませんので、"N"でコメント無し、"M"でコメント付きのブックマークを行うようにしてあります。
@mattnありがとう!
んー、しかし、僕の場合ショートカットキーの部分だけ抽出すれば事足りる気がしてきた。
一応Arrayオブジェクトを拡張しないように修正したりとか自分好みにカスタマイズし終えたUserJSファイルを転がしておきます。
minibufferbookmarkcommand.js