Flickr の set なんかを流し見するための User JavaScript

デジタル一眼買った!

オリンパスE-410レンズセットでにーきゅっぱ!やっほー。ということはまぁここでは全然関係なく、撮ったものそのままを Flickr はストレージですかというくらいに上げまくるのがやはりデジタル一眼所有者の悦びの一つであろうということで、Pro にしてあげまくった。

で、寝室のノートやら会社やらでにたにた見るんですが、set の内容の写真を流し見る画面の HTML で Opera の fast forward が効かない。次の写真にロッカーで進めない。そりゃとくにソース中に Opera さん的なとっかかりが無いので不可能なのですが僕はロッカーモーションの鬼なので、ロッカーが使えないと絶望のあまり性風俗店に通ってしまうであろう。

それではいかん。ということで、User JavaScript を書きました。こんなの使う人いるのかね…、と思いながら一応ご参照までに…。ちなみに Opera 10 じゃないと動きません(SelectorAPI使ってるから)。それを早く言え。一瞬で書き換えられる箇所ですが。僕がメインもう Opera 10 にしてしまったので…。head 要素を拾うのにまで使っているところに浮かれ気分が出てきます。Opera 10 は良いブラウザです。

あ、そうそう、ファイル名*.user.jsで保存して Greasemonkey モードで使っています。なので DOMLoaded(に等しいと思われるタイミング)で実行されてます。

// ==UserScript==
// @include http://www.flickr.com/photos/*
// ==/UserScript==

(function() {
    var nextPrevImages = document.querySelectorAll('div.contextThumbsMoverDiv img.nextprev_thumb');
    if ( nextPrevImages.length != 2 ) return;

    var prevLink, nextLink;
    var head = document.querySelectorAll('head')[0];
    if ( !head ) return;

    var createLink = function(rel,href) {
        var link = document.createElement('link');
        link.setAttribute('rel',rel);
        link.setAttribute('href',href);
        head.appendChild(link);
    };

    prev = nextPrevImages[0].parentNode;
    createLink('prev',prev.href);

    next = nextPrevImages[1].parentNode;
    createLink('next',next.href);
})();

マウスジェスチャーの設定

Opera 9 まで Profile を延々引きずり回して使っていたのでいつからなのかわからないのですが、今回 Opera 10 にしてみたらマウスジェスチャーの設定の中の "FlipForwad"(左→右のロッカー)に、リンク要素を見るアクションが無くなってた。追加した。

FlipForwad    Go to link element, "next" | Forward | Fast forward

リンク要素の rel="next" の href を最初に見て、なければ進む、でヒストリの先も無ければ Fast Forward という順番。この順番大切。"FlipBack"(右→左のロッカー) は絶対に Back 一択で。

同じように無くなっていたキーボードの方の right ctrl shift と left ctrl shift にも Go to link element を設定。

Left ctrl shift    Go to link element, "prev"
Right ctrl shift    Go to link element, "next"

めでたしめでたし。良質 Flickr ライフ。スライドショーモードみたいなお仕着せの UI は嫌いだな。