いろいろ悪戦苦闘して作ってみたので公開。下記のホストはproxyを経由させないようにしています。

  • ch.nicovideo.jp チャンネル&コミュニティ
  • dic.nicovideo.jp ニコニコ大百科
  • help.nicovideo.jp ニコニコ動画 ヘルプ
  • help.nicovideo.jp ニコニコ動画 ヘルプ
  • ichiba.nicovideo.jp ニコニコ市場
  • icon.nicovideo.jp ニコニコ動画 アイコン
  • res.nicovideo.jp ニコニコ動画 スクリプト類

環境に応じて、useNicoProxy内のlocalhostやポート番号を変えてください。

CODE:
  1. function FindProxyForURL(url,host)
  2. {
  3.     //PROXY Setting
  4.     var useNicoProxy = "PROXY localhost:8080";
  5.  
  6.     //Nicovideo
  7.     if(shExpMatch(host, "*.nicovideo.jp")) {
  8.         if( shExpMatch(host,"ch.nicovideo.jp")   ||           //チャンネル&コミュニティ
  9.             shExpMatch(host,"dic.nicovideo.jp") ||              //ニコニコ大百科
  10.             shExpMatch(host,"help.nicovideo.jp") ||           //ニコニコ動画 ヘルプ
  11.             shExpMatch(host,"help.nicovideo.jp") ||           //ニコニコ動画 ヘルプ
  12.             shExpMatch(host,"ichiba.nicovideo.jp") ||     //ニコニコ市場
  13.             shExpMatch(host,"icon.nicovideo.jp") ||           //ニコニコ動画 アイコン
  14.             shExpMatch(host,"res.nicovideo.jp") ||              //ニコニコ動画 スクリプト類
  15.             shExpMatch(host,"ext.nicovideo.jp") ||              //
  16.             shExpMatch(url,"http://www.nicovideo.jp/my")){    //ニコニコ動画 マイページ
  17.             return "DIRECT";
  18.         }
  19.         if( shExpMatch(host,"urc.live.nicovideo.jp") ||         //ニコニコ生放送関連
  20.             shExpMatch(url,"http://live.nicovideo.jp/img/*") ||
  21.             shExpMatch(url,"http://live.nicovideo.jp/js/*") ||
  22.             shExpMatch(url,"http://live.nicovideo.jp/recent") ||
  23.             shExpMatch(url,"http://live.nicovideo.jp/thumb/*") ||
  24.             shExpMatch(url,"http://watch.live.nicovideo.jp/api/*")){
  25.             return "DIRECT";
  26.         }
  27.         return useNicoProxy;
  28.     }
  29.  
  30.     return "DIRECT";
  31. }

Leave a Reply