日本語フォーラムの新着書き込みを新しいウィンドウで

Ubuntu 日本語フォーラムの書き込みですが、私は RSS リーダなどは使わずブラウザで開いています。ログインしたら*1 "前回訪問以降の投稿を表示する" をクリックして表示されるトピックを手動で開いていたりしたわけですが、非常にめんどくさいわけですよ。新着を全て新しいタブで開く機能があったらいいなーと思いつつ、かれこれ数年手作業をしていました。Firefox アドオン作るのが面倒だったわけです。
ですが、Greasemonkey スクリプトを書けば数行であっさり解決するんじゃね? と思いついたのが先日*2。あっさり解決しました orz

// ==UserScript==
// @name           Open new tab for Ubuntu Japanese Forum
// @namespace      https://forums.ubuntulinux.jp/
// @description    Newly post is opened in a new tab.
// @include        https://forums.ubuntulinux.jp/search.php?action=show_new
// ==/UserScript==
(function() {
    var lines = document.evaluate('/html/body/div[2]/div/div/div/div/div[4]/div/div/div[4]/div/div/table/tbody',
        document, null, 7, null ).snapshotItem(0).childElementCount;

    if(confirm(lines + '個のウィンドウを開きます')){
        for (var i = 1; i <= lines; i++) {
            var xpath;
            if (i == 1) {
                xpath = '/html/body/div[2]/div/div/div/div/div[4]/div/div/div[4]/div/div/table/tbody/tr/td[4]/a';
            } else {
                xpath = '/html/body/div[2]/div/div/div/div/div[4]/div/div/div[4]/div/div/table/tbody/tr[' + i + ']/td[4]/a';
            }
            var url = document.evaluate(xpath, document, null, 7, null ).snapshotItem(0);
            window.open(url);
        }
    }
})();


"前回訪問以降の投稿を表示する" をクリックすると、こんな感じになります。Firefox はポップアップを許可していても、デフォルトでは 20 個以上のポップアップは禁止される設定になっていますので、about:config で dom.popup_maximum を増やしておく必要があるかも。

*1:ログインしっぱなしだけど

*2:気づくの遅いだろ orz