*ImageViewURLReplace.dat ImageViewURLReplace.dat は、ビューアに送るURLを正規表現によって補正する機能です。 定められた書式で記述することでURLやリファラ等を補正できます。 直リンク防止用のリンクから画像URLを割り出して補正したり リファラを渡さないと表示できない画像に対応したりできます。 現行スレ ImageViewURLReplace.datスレ(view及びstyle・nida以外専用) 1 http://jane.s28.xrea.com/test/read.cgi/bbs/1226195154/ ---- *有志作成View用まとめ http://vamp.s9.xrea.com/updata2/3885.zip http://jane.s28.xrea.com/test/read.cgi/bbs/1226195154/578 578 名前:Jane使いの名無しさん[sage] 投稿日:2010/10/02(土) 12:22:10 ID:8HbuhvYX0 まとめ http://vamp.s9.xrea.com/updata2/3885.zip ---- #contents(page=ImageViewURLReplace dat) ---- *仕様 **基本書式 検索文字列[tab]補正文字列[tab]リファラ文字列[tab]動作制御パラメータ (リファラ文字列、動作制御パラメータは省略可) (例) http://www\.xxx\.xx\.jp/([^/]+/)((.+/)*)(.*)\.html[tab]http://www.xxx.xx.jp/$1$2$4.jpg[tab]http://www.xxx.xx.jp/$1$2$4.html ---- **ビューアの動作を制御するパラメータ(各記述の4番目のパラメータ) ・$EXTRACACHE ・正規表現にマッチするURLのキャッシュをビューアで開く。 ・キャッシュがなければ三番目のパラメータ(通常ならリファラのところ)でURLを置換して外部ブラウザで開く。 ビューア自身はサーバーへのアクセスを行わない ・全て開く系の動作では、画像拡張子と見なされる ・$VIEWER ・正規表現にマッチするURLを、拡張子とは無関係にビューアで開く ・全て開く系の動作では、画像拡張子と見なされる ・$BREAK ・その正規表現で置換を行い、ImageViewURLReplace.datの次行以降を無視する ※$BREAK$VIEWERのように複数併記が可能。 ただし、$EXTRACACHE$VIEWERと併記すると$EXTRACACHEが優先され$VEWERは無視される ・$VIEWNOIMAGE ・正規表現にマッチするURLを、拡張子とは無関係にビューアで開く ・全て開く系の動作では、実際の拡張子に従って画像や書庫なのか判断される ・$NOEXTCTRL ・置換が拡張子に影響を与える可能性があるかを明示する。 このオプションを設定すると、そのアイテムは一部の処理でスキップされてスレ表示が高速化される。 ただし非画像の拡張子から画像の拡張子に置換するアイテムに設定すると、 サムネイルや全て開く系の操作で画像と認識されなくなる (例:http://www\.hoge\.com/(.+)\.jpg\.html[tab]http:///www\.hoge\.com/$1.jpg) ※$VIEWER,$EXTRACACHE,$VIEWNOIMAGEを設定したアイテムではこの設定は無視される ・$EXTCTRL ・$NOEXTCTRLの逆。通常はデフォルトで$EXTCTRLが設定された状態。 デフォルト設定は後述の<$NOEXTCTRL>により変更可 ・$FLASH ・正規表現にマッチするURLを、拡張子とは無関係にビューアでFLASHファイルとして開く ・全て開く系の動作では、非画像のビューアファイルとして扱われる ・$NOBREAK ・該当のアイテムがマッチしても以降のアイテムのチェックを継続する(通常はこの状態) ・デフォルトで<$BREAK>を設定した場合に使用する ---- **オプションのデフォルト値を設定するパラメータ(先頭行に記述) ・<$NOEXTCTRL> ・デフォルトで各アイテムを$NOEXTCTRLに設定する事で高速化。 この設定をした場合、http://www\.hoge\.com/(.+)\.jpg\.html[tab]http:///www\.hoge\.com/$1.jpg のようなアイテムは明示的に$EXTCTRLを設定する必要がある ・<$EXACTMODE> ・ImageViewURLReplace.datの高速化処理を無効にする ごくまれに高速化処理により正しく働かなくなる正規表現があるので、そのような場合には<$EXACTMODE>で高速化を無効にする ※高速化をオフにした場合、置換処理にかかる時間は約10倍(昔の速度)になります ・併用する場合は、<$NOEXTCTRL><$EXACTMODE>と並べて書く ※一行目でもスペースを空けたりして"<"から始まらないと、通常のアイテムと見なされる ・<$BREAK> ・全てのアイテムに$BREAKを設定したのと同じ効果を持つ ---- **ImageViewURLReplace.dat高速化の効果を引き出すコツ (ImageViewURLReplace.datに特有の事柄で、正規表現一般には当てはまらない) ・極力特殊文字を使わない。特にファイルやホストのピリオドは必ずエスケープする。 http://www.hoge.jp/([^.]+).jpg ←遅い http://www\.hoge\.jp/([^.]+)\.jpg ←速い ・括弧はできるだけ使わない (http://www\.hoge\.jp)/cgi-bin/up\(d+)\.html[tab]$1・・・ のように置換で参照するためだけに固定文字列を括弧する書き方は速度を著しく下げる また、括弧を使って複数の文字列をまとめるとかえって遅くなる場合が多い http://www\.hoge\.jp/test/\d+\.(jpg|png|gif)\.htm は、 \.jpg\.htm, \.png\.htm, \.gif\.htmの三つに分けた方が高速 ・正規表現がURL全体にマッチするように書く www\hoge\.com/(.*)[tab]http://$0 ←遅い http://www\hoge\.com/(.*)[tab]$0 ←速い ---- **その他仕様 ・複数のサーバーがヒットする正規表現にはリファラを送らない ・ImageViewURLReplace.datに、検索用の正規表現だけで置換用の文字列を書かないと、 その表現にマッチするリンクはクリックしても開かない (トレースに警告を表示) ・ビューア設定で「よろし」を押したとき、必要なら自動で再読込する