Operaで2chスレをJaneで開く方法

最近2ちゃんねるニュース(http://www.2nn.jp/)というのを知って、
便利だなーとか中身どーなってんだろーとか思ってたんだけど、
Janeに慣れてるとスレッドをブラウザで見るのはなかなか不便。
これ自動でJaneで開けるようにすればもっと便利?と思ってみた!
operaの場合、menu.iniに独自コンテキストメニューを追加して、
execute programでも良いんだが、それじゃあ面白くないので(何がだ?)
最近触発されたsenaさんの記事(http://my.opera.com/sena__/blog/show.dml/1179548)
のuser.jsを元につくってみた。

■要件はこんな感じ

  1. opera2chスレのurlを左クリックすると、Jane等がそのスレを開く

■実装

  1. Greasemonkey2ch向けのurlのhttpの部分を任意のプロトコル(今回はjane:)に書き換え
  2. jane:プロトコルに対応するプログラムをoperaに登録

 ツール→設定→詳細設定→プログラムから追加
 ちなみに私はJaneStyle派。。

■user.jsのソース
senaさんの記事にあるMailtoComposeInGMail.user.jsのほぼパクリ。。。

(function() {

    var processURLLinks = function() {
        var xpath = "//a[contains(@href,'.2ch.net/')]";
        var res = document.evaluate(xpath, document, null,
                                    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
                                    
        var linkIndex, link;
        //alert(res.snapshotLength);
        for (linkIndex = 0; linkIndex < res.snapshotLength; linkIndex++) { 
            link = res.snapshotItem(linkIndex);
            //alert(link.href);
            
            var m = link.href;
            var matches = m.match(/^http:\/\/([^\.]+\.2ch\.net\/.*)/);
            if (matches){
              link.href = "jane://" + matches[1];
              link.target = "_self"; //_blankだと新規タブが残る
            }
        }
    }
    
    //document.addEventListener("load", processURLLinks, false);
    processURLLinks();
    
})();

FireFoxでもurl書き換えは動くんだけど、独自プロトコルの追加方法がわからなかった!

んで最後に思ったのが、これProxomitronでやれよとorz

備忘録:MSXMLでXPath

Sub test()
    Dim objDOM As New DOMDocument
    Dim rtResult As Boolean
    Dim nodeList As IXMLDOMNodeList
    Dim obj As IXMLDOMNode
    rtResult = objDOM.Load("C:\sample-1.xml")
'    rtResult = objDOM.Load("C:\work.xml")
    If rtResult = True Then
        objDOM.setProperty "SelectionLanguage", "XPath"
        objDOM.setProperty "SelectionNamespaces", "xmlns:w='http://schemas.microsoft.com/office/word/2003/wordml'"
        Set nodeList = objDOM.documentElement.selectNodes("/manyosyu/volume/poem/mkana[@a='2']")
'        Set nodeList = objDOM.documentElement.selectNodes("/w:wordDocument//w:t[position()<=2]")
'        Set nodeList = objDOM.documentElement.selectNodes("/w:wordDocument/w:fonts/w:font[position()<=2]")
        For Each obj In nodeList
            MsgBox obj.nodeName & " : " & obj.Text
        Next
    End If
    Set objDOM = Nothing

End Sub

??

Windowsコマンドプロンプト上で出来る別ユーザによる実行についての調査

・タスクスケジューラに別ユーザを設定し、コマンドよりタスクを起動
SCHTASKS /Run /TN task_name

・cmdkeyの使用
事前にcmdkey /add サイト名 /user ユーザ名 /pass パスワードで登録。
登録したサイト名にアクセスした場合に、登録したユーザ資格情報が適用される。
登録時にログオンしているユーザが、別サーバにアクセスする場合に便利。
シングルサインオン

井の頭公園駅前のセレスティーヌ