1 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/07/10(月) 06:09:39 ID:8aujFXYU0] このスレは作成依頼されたフィルタを 有志により作るスレッドPart4です 煽り、荒しは放置してください 【関連サイト】 Proxomitron-J ttp://www.pluto.dti.ne.jp/~tengu/proxomitron/ 日本語訳ヘルプ ttp://www.pluto.dti.ne.jp/~tengu/proxomitron/help/Contents.html 本体(N4.5May)とその日本語化パッチ、OpenSSLライブラリのダウンロード ttp://www.pluto.dti.ne.jp/~tengu/proxomitron/download.html アップローダー ttp://wind.prohosting.com/proxmine/cgi-bin/uploader/ 4.5June+shift_jis誤爆回避日本語化+RWIN32768回避+バイパス赤icon+有難屋icon な本体 wind.prohosting.com/proxmine/cgi-bin/uploader/download.cgi?PmU_0338.zip IE用必須設定(高速化)・過去ログ・FAQ・ime.nu消し・関連リンク ttp://www2.wbs.ne.jp/~go-to/prx/faq.html 【関連スレ】 Proxomitron Part25 ttp://pc8.2ch.net/test/read.cgi/win/1115110149/ ■■■■Proxomitron入門スレッド■■■■5 ttp://pc8.2ch.net/test/read.cgi/pcqa/1107577736/ ブラクラにProxomitronで対抗するスレPart5 ttp://pc8.2ch.net/test/read.cgi/software/1060792740/ 【過去スレ】 Proxomitron フィルタ作成スレッド ttp://pc5.2ch.net/test/read.cgi/software/1083337210/ Proxomitron フィルター作成スレッド Part2 ttp://pc8.2ch.net/test/read.cgi/software/1100052614/
855 名前:816 mailto:sage [2006/10/24(火) 03:02:33 ID:96jgfWU+0] >>850-851 乙です。 なるほど、こういう方法もありましたか。 置換に必要な場所にだけマッチさせる方法があったとは..。 それぞれのフィルターの速度を3万文字の数字で比較してみました。 計測には差が出やすいようにスーパーπ104万桁10分台の遅いマシンを使用。 --------------------------------------------------------------------- (1) (2) (3) (4) (5) 000.....0 000.....09 199.....9 999.....9 999....90 ( 対象文字列 ) >>824 43.319444 43.409722 49.640625 49.437500 46.897059 ( ミリ秒 ) >>843 48.953125 100.375000 70.340909 70.238636 33.804348 >>851 59.951923 60.000000 33.820652 25.366667 計測不能(応答なし) --------------------------------------------------------------------- >>851 のフィルターは 99999.. の後ろが 9 以外の数字で終わる場合に極端に時間がかかるようです。 実用的には問題無いと思われますがちょっと気になります。 先読みで数字の末尾を確認する 処理を入れたほうが良いかも..。 (3)、(4) の速さがすごいですね、高速化済みの>>843 の3倍も速いとは...w >>824 は対象がどんな数字でも安定してることが分かります。 >>843 は対象の末尾が 9 の場合をイレギュラーと考え、この場合の速度を無視した書き方なので 9 で終わる場合は遅いですね。
856 名前:816 mailto:sage [2006/10/24(火) 03:42:20 ID:96jgfWU+0] >>846 〜/00581.jpg 〜/00582.jpg 〜/00583.jpg みたいな連番の画像ファイルを見るときにブラウザをリロードするだけで次々に見れるようになります。 他にも応用次第で色々なことに使えるはず。 >>848 慣れればそのうち書けるようになるはず。 >>849 JSでは出来ないことにも使えるはず。 HTTPヘッダの置換等。 >>852 >わざわざグローバル変数を使ってまで 今まではグローバル変数を使うとすごく遅くなるという固定観念を持ってましたが >>824 を見るとそうでもなさそうなんですよね。 遠慮せずにもっと使うべきものなのかも。 >>854 >相対URLを絶対URLにするフィルタ それらしきフィルターをどこかで見た。
857 名前:816 mailto:sage [2006/10/24(火) 06:48:23 ID:96jgfWU+0] あれ、>>824 は対象文字列が3文字などの短い場合は他のよりかなり遅い。 グローバル変数のせいだろうか。 グローバル変数は動的な生成とその解放をするときに時間がかかるが、 代入や取り出しにかかる時間はローカル変数と変わらない...ってことかな? >>855 に書いた 999... の末尾が 9 以外の場合に遅くなるという件は "#" の回数制限の100文字程度なら プロファイルでも全然問題なく動作しますね。 3万文字の場合でもプロファイルでなく普通にテストする分には 正常に動作するから修正の必要は無いか。
858 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/24(火) 07:40:31 ID:iS+1bFGh0] >>853 abc.s65.xrea.com/prox/wiki/%A5%D5%A5%A3%A5%EB%A5%BF%A1%A2%A5%EA%A5%B9%A5%C8%B8%F8%B3%AB/Image%20Popup/
859 名前:816 mailto:sage [2006/10/24(火) 08:14:51 ID:96jgfWU+0] 応答なしの問題を回避するために>>851 に手を入れてみました。 変更点↓ ・ 9999.. の末尾の先読み判定を前に移動。 ・ (^[0-9]) を (^[0-8]) に修正。 ・ (^(^ 〜 )) から && に代えてみました。 タイム比較用。 [Patterns] Name = "number +1 (2006-10-24) beta4" Active = FALSE Limit = 32767 Match = "([0-8]9+(^[0-8])&&$LST(Num-plus)(9$SET(#=0))+)|" "(9+{1,*}(^[0-8])&&$SET(#=1)(9$SET(#=0))+)" Replace = "\@" // (^(^9))9$SET(#=0) は (^(^9))?$SET(#=0) より速いんですね、これも意外..。
860 名前:816 mailto:sage [2006/10/24(火) 08:30:32 ID:96jgfWU+0] タイム比較の結果は (^(^ 〜 )) >>> && でした。 以上。
861 名前:816 mailto:sage [2006/10/24(火) 08:32:00 ID:96jgfWU+0] ※ (^(^〜))[速い] >>> &&[遅い] です。
862 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/24(火) 10:18:39 ID:PwmdsW1B0] www.so-net.ne.jp/tv/bangumi/tvprgm/1_29_0.html の >テレビ王国 > 10月24日(火)の番組表 [地上波/奈良/ 5-12時] から上を消すフィルタお願いします。 >商号変更のおしらせ 「ソネットエンタテインメント株式会社」へ [PDF] >[テレビ王国ランキング!レポート全国版] 10/16〜10/22分リリース!! >テレビも動画も!あなたの好みに合わせてオススメ! >ドラマ情報続々!この秋スタートドラマを事前にチェック。 など >テレビ王国 > 10月24日(火)の番組表 [地上波/奈良/ 5-12時] より上すべて消したいです。
863 名前:816 mailto:sage [2006/10/24(火) 16:29:32 ID:96jgfWU+0] うわ〜! >>824 のlimitが256のままだった。 これでテストすれば早いのは当たり前..。 再テストしたら比較にならないほど遅かった、>>824 はボツ決定です..。(^^;A 次にグローバル変数とローカル変数の比較。 test1がグローバル変数を使ったフィルター、test2がローカル変数を使ったフィルターです。 [Patterns] Name = "test1" Active = FALSE Limit = 32767 Match = "0$SET(A=1)" Replace = "$GET(A)$SET(A=)" Name = "test2" Active = FALSE Limit = 32767 Match = "0$SET(0=1)" Replace = "\0" (対象文字列を100文字の "000...0" にしてテスト) 結果: test1 → 0.172000 (milliseconds)、 test2 → 0.000000 (milliseconds) (対象文字列を3万文字の "000...0" にしてテスト) 結果: test1 → 51.825000 (milliseconds)、 test2 → 4.156000 (milliseconds) 100文字のテストに比べると3万文字ではだいぶタイムの倍率は下がったが、それでも10倍以上遅い。 グローバル変数はなるべく避けたほうが良いでFAですね...。
864 名前:think ◆MM0nnAOCiQ mailto:sage [2006/10/24(火) 22:42:54 ID:vquh73VO0] >>855 > 99999.. の後ろが 9 以外の数字で終わる場合に極端に時間がかかるようです。 こんな限定された状況に、よく気がつきましたね! 原因は仰るように、\#の100回制限だと思います。 > 3万文字の場合でもプロファイルでなく普通にテストする分には正常に動作する 私の環境では、Webページ上でも期待通りに動作しない(100桁に制限された数値が出力される)ようですが、うーん…。 "999..." に>859のフィルタをマッチさせると、複数回マッチして、"10000..." が幾つも出力されてしまいます。 100回以上 $SET(#=) されるのが問題なので、$SETの繰り返し回数を100回以内に収まるようにしてみました。 [Patterns] Name = "incremented by one [Match ver] [2006/10/24] beta1.3" Active = TRUE Limit = 32767 Match = "(^(^[0-8]9+(^[0-9])))($LST(Num-plus))+(^[0-9])|" "(^(^9))$SET(#=1)((^(^9))$LST(Num-plus))+(^[0-9])" Replace = "\@" $LST(Num-plus) は>>827 に以下を追加します。 # 9 -- 512桁 9999999999...$SET(#=0000000000...) # 9 -- 32桁 (NOT関数の桁数は 512 - 32 = 480桁) 99999999999999999999999999999999(^9999999999...)$SET(#=00000000000000000000000000000000) # 9 -- 1桁 (NOT関数の桁数は 32 - 1 = 31桁) 9(^9999999999999999999999999999999)$SET(#=0)
865 名前:think ◆MM0nnAOCiQ mailto:sage [2006/10/24(火) 22:48:12 ID:vquh73VO0] >864のフィルタはProxomitronのLimitの上限(32767)を考慮に入れて、繰り返し回数が百回を超えることがないように作成してあります。 この方式だと「999....90」のテキストに対して [プロファイル] では落ちますが、[テスト] では落ちません。 Webページ上でも落ちなかったので、問題ないと思われます。 >>856 > それらしきフィルターをどこかで見た。 私のサイトで配布している "Kill without <a>" (汎用Webフィルタ集の一つ) がそれです。 2chでアドバイスを受けて作成したフィルタでして、アドバイスして頂いた方がアプロダに派生系(Link to Full Path) をUPされています。 ttp://wind.prohosting.com/proxmine/cgi-bin/uploader/index.cgi?search=Link+to+Full+Path&sstart=0001&send=9999&extlist=&size_min=0&size_max=256 直接の関係はありませんが、Wikiでも同種のフィルタが公開されています。 ttp://abc.s65.xrea.com/prox/wiki/%A5%D5%A5%A3%A5%EB%A5%BF%A1%A2%A5%EA%A5%B9%A5%C8%B8%F8%B3%AB/19/
866 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/25(水) 02:29:53 ID:Gpa2YWWh0] 今思いついたけど、+1するフィルタを使えばJSなしでdat converter作れるね。 どっちが速いかはワカランけど。 どうやって計測すればいいんだろう。
867 名前:853 mailto:sage [2006/10/25(水) 02:38:09 ID:4LLBDAGk0] 自分で作ってみた lightbox_plusベースです [Patterns] Name = "lightbox part1" Active = TRUE Limit = 256 Match = "</head>" Replace = "<script type="text/javascript" src="Local.ptron/lightbox/spica.js"></script>\r\n" "<script type="text/javascript" src="Local.ptron/lightbox/lightbox_plus.js"></script>\r\n" "\r\n" "</head>" Name = "lightbox part2" Active = TRUE Limit = 256 Match = "([^>]++href=)\0$AV((([^/]+//)\1|)(\2).(jpg|gif|bmp|png)\3(.html+|)\4)" Replace = "\0"\1\2.\3\4" rel="lightbox" " 作った後でレスに気付いた・・・orz
868 名前:816 mailto:sage [2006/10/25(水) 05:37:11 ID:ptucl50B0] >>864 > 99999.. の後ろが 9 以外の数字で終わる場合 なるほど、\# の制限に引っかかってたのが原因でしたか、ありがとうございます。 >正常に動作する すみません、誤解しやすい書き方でした。 これは "応答なしにならない" という意味でした。 \# の制限に引っかかるので期待した結果は返ってこないです。 >"999..." に>859のフィルタをマッチさせると、複数回マッチ \# の制限に引っかかるとマッチングがそこで止まってしまう場合がありますね。 発生条件は分かりませんが100回を越えた時点で想定外なので調べる必要は無さそう。 >$SETの繰り返し回数を100回以内に収まるようにしてみました。 そうきましたか、すごい力技だw これで対応出来る数字の桁数が一気に上がると。 9の繰り返しが100個以上連続するHTMLソースは見たことがないので、実用的にはこの対策は 必要無いかも知れませんね。 対策しておきたい人もいるかも知れないので好みの問題かな。 >>865 ありがとうございます、たぶんWikiで見たんだと思います。 あとサイトの更新お疲れ様でした、HTMLソースをちらっと見たんですが綺麗なソースですね。 thinkさん謹製のフィルターもありがたく使わせて頂きます。
869 名前:816 mailto:sage [2006/10/25(水) 05:46:05 ID:ptucl50B0] >>863 の補足。 test1のReplaceから $SET(A=) を削除したらタイムが2/3倍になった。 グローバル変数をこまめに解放するとかえって遅くなる。 >>867 ∧_∧ ( ´・ω・) ・・・・・ドンマイ。 ( つ旦O と_)_)
870 名前:816 mailto:sage [2006/10/25(水) 10:47:42 ID:vE/VYVdH0] > 99999.. の後ろが 9 以外の数字で終わる場合 これよく考えると \# は関係ないですね。 対象文字列が 9999....90 の場合はオミトロンのマッチングが1バイト進むごとに 999...90 の末尾までのテストを繰り返すから遅くなるようです。 他のフィルターが検索表現が 999...90 の場合でも数字の先頭から一度でマッチしまずが、 このフィルターはマッチしないので何度も数字の末尾までを行ったりきたりしてしまう。 1999...90 の場合も極端に遅くなるし間違いなさそう。( 50文字でテストし確認 ) 数字の中に9を見つけたらそれ以降の数字が必ずマッチする書き方に変えたほうがいいのかな、 999... の末尾が 9 である確率は 1/10 だし、>>843 と融合させる手も。
871 名前:816 mailto:sage [2006/10/25(水) 10:53:30 ID:vE/VYVdH0] × 他のフィルターが ○ 他のフィルターは でした。
872 名前:853 mailto:sage [2006/10/25(水) 12:19:52 ID:4LLBDAGk0] 悔しいので改良してみた。 横の□を押すと別ウィンドウで開く。 [Patterns] Name = "lightbox_plus part1" Active = TRUE URL = "$TYPE(htm)" Limit = 256 Match = "</head>$STOP()" Replace = "<script type="text/javascript" src="Local.ptron/lightbox/spica.js"></script>\r\n" "<script type="text/javascript" src="Local.ptron/lightbox/lightbox_plus.js"></script>\r\n" "\r\n" "</head>" Name = "lightbox_plus part2" Active = TRUE URL = "$TYPE(htm)" Bounds = "$NEST(<a\s*>,</a>)" Limit = 1024 Match = "([^>]++href=)\0$AV((([^/]+//)\1|)(\2).(jpg|gif|bmp|png)\3(.html+|)\4(target="_blank"|)\5)\6" Replace = "\0"\1\2.\3\4" rel="lightbox" \5\6\0"\1\2.\3\4" target="_blank">□</a>"
873 名前:862 mailto:sage [2006/10/25(水) 16:10:20 ID:TjL9pAss0] フィルターお願いします。
874 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/25(水) 16:47:46 ID:Gpa2YWWh0] Match = "$NEST($NEST(<div\s,*class=$AV(infomation)*,>),</div)\k" Replyace = "<!--kill-->" クラス属性って一回しか使えない(使わない)んだっけ? class="information"にマッチする部分を全て消すフィルタだから誤動作しても責任は持たん。 あとは自分で条件を絞って消したくないところを消さないように改良することだな。
875 名前:862 mailto:sage [2006/10/25(水) 17:27:09 ID:jr+Gvhks0] >>874 レスありがとうございます。 初心者なので [Patterns] Name = Active = URL = Limit = Match = "$NEST($NEST(<div\s,*class=$AV(infomation)*,>),</div)\k" Replace = "<!--kill-->" 後の項目もお願いします。
876 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/25(水) 18:22:52 ID:aCwuBKGn0] >>874 classは何回でも使える。 IDは1回だけ。
877 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/25(水) 18:24:01 ID:ls2H3Cmj0] >>874 は荒らし
878 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/25(水) 18:45:32 ID:Gpa2YWWh0] 初心者かどうかなんて理由にならん。 どれだけ自分で挑戦したのか、調べたのかを書いた上で数点質問を書くのが筋じゃないのか。 実用するに当たっての情報はすでに与えられているはずなのだが。
879 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/25(水) 18:49:01 ID:VKanZiVl0] >>862 おまえさん、以前もTV王国でフィルタうpして貰っていないか? もしそうなら、それを元に自分で改良してみる努力をしたらどうだろう。 スレの流れを切って作業を丸投げ、うpが遅いと乞い、 同一人物のイタズラのような気がしてしまうのだが。 そうでないならスレ内を検索すれば簡単に見つかる。
880 名前:think ◆MM0nnAOCiQ mailto:sage [2006/10/25(水) 19:21:48 ID:5FqRZ3c50] 流れを断ち切るようですが…。 >>868 > ...発生条件は分かりませんが100回を越えた時点で想定外なので調べる必要は無さそう。 すみません。再度、試してみたら、1000... が一つだけ出力されました。 試すフィルタを取り違えていたのかもしれません(汗) > すごい力技だw ははw 実は、他に100桁以上の数値はマッチしないフィルタも作ってみたんですが、どうにもシンプルに仕上がらなかったので、結果的にあの形に収まりました。 副次効果として、32桁以上の 999.... の処理が著しく高速化します。 必要ない人は、ブロックリストの一部をコメントアウトすればいいので、管理も楽だと思います。 >>870 > マッチングが1バイト進むごとに、999...90 の末尾までのテストを繰り返すから遅くなる あ…、確かに、 Match = "9+{1,*}(^[0-9])" だけでも、[プロファイル] でProxomitronが落ちますね。そうすると、対処法はこんな感じかな。 [Patterns] Name = "incremented by one [Match ver] [2006/10/25] beta2" Active = TRUE Limit = 32767 Match = "(^(^[0-8]9+(^[0-9])))($LST(Num-plus))+(^[0-9])|" "(^(^9))(^$TST(Numflag=1))$SET(#=1)((^(^9))$LST(Num-plus))+" "((^[0-9])|$SET(Numflag=1)$TST(Numflag=0))" Replace = "$SET(Numflag=)\@" ようやく、熟成してきた気がします。 いかがでしょう?
881 名前:think ◆MM0nnAOCiQ mailto:sage [2006/10/25(水) 19:24:36 ID:5FqRZ3c50] ところで、話題のグローバル変数ですが、フラグを立てる(ある条件に合致したら、フラグを立て、以降フラグが立っている場合はマッチさせない)目的で使うと、高速化できることがあります。 >880のフィルタはその典型ですね。 "Charset: Set global variable", "Replace character: 2byte -> 1byte" でも使った手法で、実際これらが実用的なレベルの速度で動作するのはグローバル変数の効果が大きいと思います。 正直なところ、当初は「『全角文字 → 半角文字』の変換は1文字ずつ置換するわけだから、遅くて使いものにならないだろう」と悲観的だったのですが、これほど実用的になるとは思ってもいませんでした。 フィルタを作成依頼した人に感謝感謝です。 >>853 ,867,872 フィルタ作成お疲れ様です。ちょっと見てみましたが、まだ改善の余地があると思います。 ---- lightbox_plus part1 </head> → (^(^</head>)) 実質的な動作は変わらないのですが、$STOP() を使うなら消費しなくても良いかなと。 ---- lightbox_plus part2 > Bounds = "$NEST(<a\s*>,</a>)" $NEST と * を組み合わせると不具合が生じることがあるので、Bounds = "$NEST(<a\s[^>]+>,</a>)" にした方がよいかと思います。 > Match = "([^>]++href=)\0$AV((([^/]+//)\1|)(\2).(jpg|gif|bmp|png)\3(.html+|)\4(target="_blank"|)\5)\6" ・(target="_blank"|)\5 の場所が明らかにおかしい (属性値に入ってます) ・(\2) は括弧が要りません (正規表現とは違いますので…) ・グループ化の場所を変えれば、変数の数をもう少し減らせるかも > Replace = "\0"\1\2.\3\4" rel="lightbox" \5\6\0"\1\2.\3\4" target="_blank">□</a>" □などの全角文字はそのままの状態で記入すると、Shift_JISのWebページでしか作用せず、Shift_JIS以外のWebページでは文字化けを引き起こしてしまいます。 なので、ここは半角文字にするか、実体参照を用いて記述してください。 ttp://abc.s65.xrea.com/prox/wiki/TIPS/#n22f5801
882 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/25(水) 20:17:29 ID:6PSb8kEs0] >874について訂正。 \kと$STOP()を逆に覚えていたようで、ちょうど別のフィルタを作成中にそれに気がついたので訂正。 \kではなくて$STOP()が正しい。 Match = "$NEST($NEST(<div\s,*class=$AV(infomation)*,>),</div)$STOP()" Replyace = "<!--kill-->" ちなみにというほどでもないが、$AV()の中身をOR関数で二つ指定してやることで>862の望む動作をすることになる。 更に、件のウェブページにこのフィルタをOR関数を使うことで二回以上呼び出すことを試みる場合には $STOP()を発動する条件として何らかのフラグ判定が必要になるだろう。 例えばこうだ。 マッチする毎に$SET(TV=0$GET(TV))としてやる。 こうするとTV変数に詰まっている0の数から過去に何度呼び出されたかを知ることができる。 このフィルタが二度だけ呼び出されると分かっているなら($TST(TV=00)$SET(TV=)$STOP()|)とすることで 二度マッチして以降はこのフィルタをOFFにすることができる。
883 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/25(水) 20:55:25 ID:6PSb8kEs0] 相対リンク→絶対リンクに関するアイデアがある程度形になったので書き込みます。 アイデアは以下の構成。 1:現在のURLの階層を数える $URL([^:]+:[^/]+/$SET(\0=1)([^./]+/$LST(increment)+) \0には現在の階層数の値が入る 2:../の数を数える ((../)$LST(decrement))+ ../を発見するたびに\0内の数を-1する 以上より(../)+の示す階層の深さを知ることができる 3:もう一度URLを下から辿りながら該当する階層まで上がる $URL( ([^:]+:)\# ([^/]+/)\#$LST(decrement)$TST(\0=[^0]) (([^./]+/)\#$LST(decrement)$TST(\0=[^0]))+ ) 階層を上がるたびに\0内の値を1ずつ減らし、その値が0になった時点でスタックに入っているURLが (../)+の示す階層。 なおincrementリストとdecrementリストはそれぞれ\0に入っている一桁の数字の値を1だけ増やす又は減らすリストです。
884 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/25(水) 20:59:52 ID:6PSb8kEs0] 例) 現在のURLは vird2002.s8.xrea.com/proxomitron/about_proxomitron.html とします。 またhref="../download"なる相対リンクに飛びたい、という場合を考えます。 現在のURLの階層数は2です。 飛びたい先の相対リンクは../のグループを1つだけ持つので、 相対リンクの示す階層は2マイナス1から一階層目であることが分かります。 よって vird2002.s8.xrea.com/ が../の示す階層になりますので、 downloadを付け加えて vird2002.s8.xrea.com/download がこの場合の相対リンクの示す絶対リンクです。
885 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/25(水) 21:03:10 ID:6PSb8kEs0] 訂正。 incrementリスト/decrementリストは必ずしも一桁の数字を対象にはしません。 このリストを構成するに当たっては↑で議論されているフィルタを利用させていただくことになると思います。
886 名前:think ◆MM0nnAOCiQ mailto:sage [2006/10/25(水) 23:05:08 ID:5FqRZ3c50] ふぅ…、出来ました。フィルタ作りとは全く関係ないところで躓いていましたw [Patterns] Name = "ImagePopup lightbox_plus.js (1/2) [2006/10/25]" Active = TRUE URL = "$TYPE(htm)" Limit = 8 Match = "(^(^</head>))$STOP()" Replace = "\t<link href='local.ptron/lightbox_plus/lightbox.css ' charset='utf-8' type='text/css'>\r\n" "\t<script type="text/javascript" charset="utf-8" src="local.ptron/lightbox_plus/spica.js"></script>\r\n" "\t<script type="text/javascript" charset="utf-8" src="local.ptron/lightbox_plus/lightbox_plus.js"></script>\r\n" Name = "ImagePopup lightbox_plus.js (2/2) [2006/10/25]" Active = TRUE URL = "$TYPE(htm)" Bounds = "$NEST(<a\s,</a>)" Limit = 1024 Match = "([^>]++(\shref=$AV([^?#]++.(jpeg|jp[eg]|gif|png|bmp|ico|j2k)([?#]*|)))\1((^target=$AV(_blank))[^>])+)\#" "(target=$AV(_blank)([^>]+)\#|) \0" Replace = "\@ rel="lightbox"\0 <a\1><img></a>" 多分、これで>853氏の要望は全て満たせると思います。(少し私の好みが入っているので、気に入らない点は適宜改変してください。) 作ってから気がついたんですが、target="_blank" を消さなくても lightbox_plus は動作するんですね。(Wikiには target="_blank" が存在すると動作しないとありました) アクセシビリティの観点から、target="_blank" を敬遠する方もいると思いますので、とりあえずはこれで良しとします。
887 名前:think ◆MM0nnAOCiQ mailto:sage [2006/10/25(水) 23:11:51 ID:5FqRZ3c50] >886のフィルタについて。 lightbox_plus.js で指定されている画像ファイルのパスを書き直さなければならない点に注意して下さい。 該当箇所は "Event.register(window,"load",function() {" 以下にある記述です。 # 例) 'loading.gif' を 'local.ptron/lightbox_plus/loading.gif ' にする。 これに気がつくのに、ずいぶんと時間を消費しました…。 (^(^</head>)) を使用したのは、消費しない事による高速化の狙いもありますが、</head> に複数のフィルタがマッチできるようにするためでもあります。 「消費しない」ということは何度でもマッチできるということですので、もう一度、他のフィルタで </head> にマッチさせることが出来ます。 Multiを使用せずに、同様の効果を得られるのが利点です。 (実は、私の作ったフィルタで </head> にマッチするものがあるので、消費すると個人的に拙いのです…。) >>883-885 考察お疲れ様です。 > ../を発見するたびに\0内の数を-1する 私も同じ事を考えていました。インクリメント(+1) と デクリメント(-1) が必要ですよね。 一つ気になったのは置換スタックを使用している点です。 もし、>880ベースのフィルタを使うとしたら、既に使用されている置換スタックは使えません。 # 816氏のフィルタベースならバッティングしませんが、遅いとのことなので…。 どちらかのフィルタの置換スタックをグローバル変数に代替えするか、置換スタックを使わないアルゴリズムを考える必要がありますね。 >883は単純にグループ化して、ローカル変数に格納すれば良いような気もしますが、未検証のため自信なし…。
888 名前:think ◆MM0nnAOCiQ mailto:sage [2006/10/25(水) 23:20:54 ID:5FqRZ3c50] ごめんなさい。>886で少しミスしました。 2chで実体参照が有効なのを忘れて、そのまま投稿してしまいました。 下記が修正版になります。 お手数ですが、>886を適用された方は (2/2) だけ↓を取り込んでください。 # (1/2) は変わりありません。 [Patterns] Name = "ImagePopup lightbox_plus.js (1/2) [2006/10/25]" Active = TRUE URL = "$TYPE(htm)" Limit = 8 Match = "(^(^</head>))$STOP()" Replace = "\t<link href='local.ptron/lightbox_plus/lightbox.css ' charset='utf-8' type='text/css'>\r\n" "\t<script type="text/javascript" charset="utf-8" src="local.ptron/lightbox_plus/spica.js"></script>\r\n" "\t<script type="text/javascript" charset="utf-8" src="local.ptron/lightbox_plus/lightbox_plus.js"></script>\r\n" Name = "ImagePopup lightbox_plus.js (2/2) [2006/10/25] fixed" Active = TRUE URL = "$TYPE(htm)" Bounds = "$NEST(<a\s,</a>)" Limit = 1024 Match = "([^>]++(\shref=$AV([^?#]++.(jpeg|jp[eg]|gif|png|bmp|ico|j2k)([?#]*|)))\1((^target=$AV(_blank))[^>])+)\#" "(target=$AV(_blank)([^>]+)\#|) \0" Replace = "\@ rel="lightbox"\0 <a\1><img></a>"
889 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/26(木) 00:03:47 ID:4hgUqkpN0] 3:もう一度URLを下から辿りながら該当する階層まで上がる $URL( ([^:]+:)\# ([^/]+/)\#$LST(decrement)$TST(\0=[^0]) (([^./]+/)\#$LST(decrement)$TST(\0=[^0]))+ ) を置換スタックを用いないアルゴリズに修正するのは非常に簡単です。 むしろシンプルさの点でこちらのほうを先に考慮するべきでした。 $URL( ( ([^:]+:) ([^/]+/)$LST(decrement)$TST(\0=[^0]) (([^./]+/)$LST(decrement)$TST(\0=[^0]))+ )\1 ) $TSTとグループ化については検証しました。 マッチ欄 = "(((?)\0$TST(\0=[^0]))+)\1" 1文字読む毎にその文字が0でないかどうかをTESTし、最後の0までを\1に収めます。
890 名前:883 mailto:sage [2006/10/26(木) 00:05:45 ID:4hgUqkpN0] IDが頻繁に変わりますが>883-885です。
891 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/26(木) 02:31:16 ID:VSM6AvXD0] 改良ありがとうございます。 というか全面的に書いて頂いちゃいましたね。 自分で書いたものを直してもらうと勉強になります。
892 名前:816 mailto:sage [2006/10/26(木) 06:45:53 ID:XApi7DgO0] >>880-881 乙です。 フラグを使って二回目以降のマッチングをキャンセルさせたんですね、早速プロファイルで テストしたらバッチリでした。 グローバル変数を使うことで若干の速度低下はありますが安心して 使えるのでこちらのほうがいいですね、GJ。 自分も何通りかの回避策を考えていたんですが今までに出たフィルターより酷いものしか思い付かず 全部ボツになりました。 一番有力だったのが>>851 のフィルターに分岐をもう1つ付けた↓の案です。 (^(^[0-8]9+(^[0-9])))$LST(Num-plus)(9$SET(#=0))+ | (^(^9))$SET(#=1)(9$SET(#=0))+(^[0-9]) | (9+{1,*})\0 マッチングが3つ目の分岐に来る時は対象の数字が "999....9[0-8]" (←0〜8のどれか) ...のはずなので、 "999..." の部分を単独で消費させ、次のマッチングテストを [0-8] のところから再開させようという狙いでした。 しかしマッチ回数が増えると返って遅くなったりデバックモードが見づらくなるなどの副作用が激しい上に \0 か \@ のどちらを出力するかのフラグも必要になるので諦めました。 >全角文字 → 半角文字 グローバル変数も使い方次第ですね、とても参考になりました。 >>883 乙。
893 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/26(木) 20:53:13 ID:uv9TRhoo0] >796を参考にして 巨大な image/gif を読み込まないようにするものを書いてみたのですが、 いまのところ動作しません。 In = TRUE Out = FALSE Key = "Content-Length: large gif rejecter (in) (2006.10.26)" URL = "$IHDR(Content-Type: image/gif)" Match = "([#102400:*])\1" Replace = "\k" \kや$IHDRなどほとんど使わないので自信がないのですが、 何が間違っているのでしょうか。 一応、100KB以上のファイルを\kするようにしたつもりです。 テストしたURLでは、どちらのヘッダも送られてきています。 動作が確認されたら$LOGを追加してみようかと思っています。
894 名前:>>862>>875 mailto:sage [2006/10/26(木) 21:29:51 ID:J2Mj+u6C0] フィルタお願いします。
895 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/26(木) 21:48:29 ID:4hgUqkpN0] >894 もう誰もこれ以上教える気はないようだからそろそろ去ったらどうだ? 何も期待できないと思うぞ。
896 名前:think ◆MM0nnAOCiQ mailto:sage [2006/10/26(木) 21:55:09 ID:38SjBeFP0] インクリメントが一区切り付いたので、デクリメントも作成してみました。 [Patterns] Name = "decremented by one [Match ver] [2006/10/26] beta1" Active = TRUE Limit = 32767 Match = "(^(^[1-9](^[0-9])))$LST(Num-minus)(^[0-9])|" "(^(^0+(^[0-9])))((^(^0))$LST(Num-minus))+(^[0-9])" Replace = "\@" # $LST(Num-minus) 0$SET(#=9) 1$SET(#=0) 2$SET(#=1) 3$SET(#=2) 4$SET(#=3) 5$SET(#=4) 6$SET(#=5) 7$SET(#=6) 8$SET(#=7) 9$SET(#=8) 仕組みは>864とほぼ同じです。 # ブロックリストの長文(000...)とグローバル変数は、これで未知の問題がないことを確認してから取り入れていきます。 # シンプルなフィルタから作り始めないと、問題点を特定できないことが多いので。
897 名前:think ◆MM0nnAOCiQ mailto:sage [2006/10/26(木) 22:04:30 ID:38SjBeFP0] >>889 お疲れ様です。 ハードルはほぼ乗り越えた感じですね。 後は基礎からじっくりと固めていけば、「相対URL→絶対URL」の新しいフィルタが出来そうです。 >>892 テスト有り難うございます。 良かったら、デクリメントもテストしていただけると嬉しいです。 正直、デクリメントの方が簡単にできてしまって、拍子抜けしてますw >>891 画像のポップアップは私も興味ある機能でしたので、こちらこそ良い勉強になりました。 問題があったら、報告下さいね。 私のところでは、機能的には問題ありませんでしたが、少しWebページの読み込みが遅くなった気がします。 CSSで画像をロールオーバーさせるフィルタも作ってみたので、どちらが良いか比較中です。
898 名前:think ◆MM0nnAOCiQ mailto:sage [2006/10/26(木) 22:24:12 ID:38SjBeFP0] >>893 流してしまってすみません。 > \kや$IHDRなどほとんど使わないので自信がないのですが、何が間違っているのでしょうか。 \k は間違いないと思いますが、$IHDR の場所が変かもしれません $IHDR を検索表現に置いてみてはどうでしょう? 私の環境では、それで動作しました。 # 「検索表現, 置換テキスト」に適用できるマッチングコマンドでも、URLマッチに指定できるとは限らないようです。 # URLマッチで動作しなかったら、検索表現へ移してみてください。
899 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/27(金) 00:29:26 ID:bF00szPi0] >852 すでにこの段階で既出だったんですね。 スレを追ってなかったので読み落してました。 でフィルタですが、実はインクレメントリストをまだ作っていないので現段階で完成はできませんが、それ以外は完成したと思います。 Name = "URL" Active = FALSE URL = "$TYPE(htm)" Limit = 256 Match = "$NEST(<a\s,\1href=$AV(((../)+)\2(*)\3)(*)\4,>)" "$URL([^:]+://[^/]+/$LST(increment)([^./]+/$LST(increment))+)" "$TST(\2=(../$LST(decrement))+)" "$URL(([^:]+://[^/]+/$LST(decrement)$TST(\0=[^0])([^./]+/$LST(decrement)$TST(\0=[^0]))+)\5)" Replace = "<a \1href="\5\3"\4>" ../を発見することがこのフィルタの発動条件なので、手順は以前のものとは少し変わります。
900 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/27(金) 00:32:14 ID:bF00szPi0] 解説 $NEST(<a\s, \1 href=$AV(((../)+)\2(*)\3) (*)\4 ,>) \1と\4にはhref="hogehoge"の以前の部分と以降の部分がそれぞれ入る。 \2には(../)+が入る。 \3には../ループより後ろの残りのURLが入る。 $URL( [^:]+:// [^/]+/$LST(increment) ([^./]+/$LST(increment))+ ) 現在のURLの階層の深さを測る。 階層情報は\0に保存するとする。
901 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/27(金) 00:32:46 ID:bF00szPi0] $TST(\2=(../$LST(decrement))+) \2に入っている../ループの数だけ引き算する。 $URL( ( [^:]+:// [^/]+/$LST(decrement)$TST(\0=[^0]) ([^./]+/$LST(decrement)$TST(\0=[^0]))+ )\5 ) 階層を1つ下りるごとに\0をー1しながら \0が0になるまで階層を下りていく。
902 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/27(金) 00:41:37 ID:bF00szPi0] 追加ですが、相対リンクを使うようなページの場合はほかのリンクも相対リンクである確率が高いので、 現在居る階層の深さ情報はグローバル変数に蓄えたて再利用できます。 すでに深さが既知の場合にはいくらか処理がシンプルになります。 そこで深さを測る処理に手を加えます。 ( $TST(SWITCH=1) $SET(\0=URL) | $URL([^:]+://[^/]+/$LST(increment)([^./]+/$LST(increment))+) $SET(URL=\0)$SET(SWITCH=1) ) とします。 グローバル変数は他のURLに飛んだ時点でリセットされると記憶しています…。 この場合はSWITCH変数とURL変数はURLが変わったときにリセットされる必要があります。
903 名前:893 mailto:sage [2006/10/27(金) 00:57:45 ID:euP+G8PW0] >898 どうもありがとうございます。 $IHDRの場所も疑ってはいたのですが、 検索表現であればどこに使ってもよいのだろうと思ってそのままにしていました。 ヘッダの URL: ○○ あたりと連携させないとだめなのかと思っていたところですが、 Match = "$IHDR(Content-Type: image/gif)([#102400:*])\1" これであっさり動作しました。場所が重要だったとは……。 Server: Proxomitron というヘッダもついてきます。
904 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/27(金) 14:58:28 ID:yTsXlKfw0] 内容の濃いスレになったね。 落ちないうちに保存しておこうっと。
905 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/27(金) 15:33:23 ID:cpcnkQie0] 昨日、寝る前にベッドの中で思いついたアイデアを今思い出したので、書き残しておきます。 hrefの中で../を発見することが相対リンク→絶対リンクの発動条件ですが、これを肯定先読みを使うことで よりスマートに、より複雑に、より分かりづらいフィルタに(w)することができます。 href=$AV((^(^../)) この段階でフィルタの発動条件を満たします。 この直後に現在いる階層の深さを測ります。(>902をそのまま利用) ($TST(SWITCH=1)$SET(\0=URL)| $URL([^:]+://[^/]+/$LST(increment)([^./]+/$LST(increment))+)$SET(URL=\0)$SET(SWITCH=1)) そしてhref内の../を数え上げて、decrementによって引き算します。 (../$LST(decrement))+(*)\3 最後に>900をそのまま利用します。 以上より Match = "$NEST(<a\s,\1href=$AV((^(^../))($TST(SWITCH=1)$SET(\0=URL)|" "$URL([^:]+://[^/]+/$LST(increment)([^./]+/$LST(increment))+)$SET(URL=\0)$SET(SWITCH=1))(../$LST(decrement))+(*)\3)(*)\4,>)" "$URL(([^:]+://[^/]+/$LST(decrement)$TST(\0=[^0])([^./]+/$LST(decrement)$TST(\0=[^0]))+)\5)" Replace = "<a \1href="\5\3"\4>" href=$AV()の中に詰め込んだだけで、それ以外は何も変わりません。
906 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/27(金) 16:26:44 ID:cpcnkQie0] ウェブ上での動作確認版 Name = "URL" Active = TRUE URL = "$TYPE(htm)" Limit = 256 Match = "$NEST(<a\s,\1href=$AV((^(^../))($TST(SWITCH=1)$SET(NUM=$GET(URL))|" "$URL([^:]+://[^/]+/$SET(NUM=1)([^./]+/$LST(increment))+)$SET(SWITCH=1)$SET(URL=$GET(NUM)))(../$LST(decrement))+(*)\3)(*)\4,>)" "$URL(([^:]+://[^/]+/$LST(decrement)$TST(NUM=[^0])([^./]+/$LST(decrement)$TST(NUM=[^0]))+)\5)" Replace = "<a \1href="\5\3"\4>" incrementリストの中身 *********************************************** $TST(NUM=1)$SET(NUM=2) $TST(NUM=2)$SET(NUM=3) $TST(NUM=3)$SET(NUM=4) $TST(NUM=4)$SET(NUM=5) $TST(NUM=5)$SET(NUM=6) $TST(NUM=6)$SET(NUM=7) $TST(NUM=7)$SET(NUM=8) $TST(NUM=8)$SET(NUM=9) $TST(NUM=9)$SET(NUM=A) $TST(NUM=0)$SET(NUM=1) ************************************************
907 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/28(土) 02:01:34 ID:K8mTgtv60] 韓国とか朝鮮という言葉を一切目にしたくありません。そういうフィルターをお願いします。
908 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/28(土) 02:05:21 ID:KHlbWOOD0] &の基本的な使い方がまだよくわかっていないようで、つまずいています。 Bounds = "<textarea\s*>" Limit = 128 Match = "*(*cols=$AV([#51:*])\1)&(*rows=$AV(\2))" Replace = "<textarea cols="50" rows="\2" title="large textarea resized - \1">" textarea の cols が大きいと横スクロールバーが発生するので、 それを防ぐためのものです。 上のMatchだと、\2の中身が数字にとどまらず、余計なものまで入れてしまうようです。 $AVを使うことで属性値を正しく解釈してくれるものと期待したのですが、 うまくいっていないようです。 textarea は空要素ですが、空要素でないものでは、 上記のような方法で望み通りの結果が出ています。 テスト用サンプル <textarea rows="20" id="sample" cols="100"> <textarea cols="100" rows="20" id="sample">
909 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/28(土) 02:29:52 ID:z3Kpim4u0] textareaの中のcols属性の値が50を超える場合は50にして、それ以外は変更しない、というフィルタでOK? こんな感じになると思う。 マッチ欄だけね。Boundsは使わない。 $NEST(<textarea\s,*cols=$AV([#51:*])*,>) NESTをこのように使うと","と","の間には以下のような文字列がはまる。 <textarea rows="20" id="sample" cols="100">なら rows="20" id="sample" cols="100" <textarea cols="100" rows="20" id="sample">なら cols="100" rows="20" id="sample" そしてアスタリスクサンドイッチによって*cols=$AV(hogehoge)*としてやると cols属性の前部分と後ろ部分は*(アスタリスク)によって消費する。 俺の場合はNESTとアスタリスクサンドイッチは、一つの属性だけに着目するときに常用する常套手段だね。 他の人だったらまた別の手法を常用しているのは↑のフィルタ例を見れば分かる通りで、唯一の解はない。 あとはアスタリスクで消費される部分をローカル変数に収めてやればよい。 \1cols=$AV(hogehoge)(*)\2 このようにね。 このローカル変数をそのまま利用するのであればReplace欄は以下になる。 <textare \1cols="50"\2> 以上より Match = "$NEST(<textarea\s,\1cols=$AV([#51:*])(*)\2,>)" Replace = "<textare \1cols="50"\2>" がお望みのフィルタとなると思う。 &は使ったことがないので、もし&の使い方を勉強がしたかったのなら力になれずスマソ。 人によって書き方って全然違うからね・・・。
910 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/28(土) 02:32:49 ID:z3Kpim4u0] 書き忘れたけどNEST+アスタリスクサンドイッチの書き方はかなわずこうでなきゃいけないので注意。 $NEST(tagname\s,*hogehoge=$AV(foobar)*,>)
911 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/28(土) 09:46:21 ID:9IGS2CbP0] memo : ([^?#/]+/)\#+{1,*}
912 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/29(日) 20:48:09 ID:Y14y3roy0] 久々にイメージ検索をした時に気づいたんだけど、 google image (060810_kai) +js+がたまに悪さをして、 イメージ部分が表示されない時があるみたい。 なんでだろう。 あと以前のgoogle imageは、画像をクリックするとオリジナルのサイズの画像で表示されたけど、 これだと画像サイズが固定された状態に拡大縮小されてしまってるかも。 もし良かったら修正お願いしマッス。
913 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/30(月) 22:25:46 ID:4HUAuLcP0] こんばんは。 もしご存知の方がいれば教えて頂きたいのですが、よろしいでしょうか? >>160 さんの回答で出てくると同じオンラインゲーム「Livly Island」の 「技」のなかで特定の物を表示できなくしたいのですが、できるのでしょうか。 もし、技swfをシャットアウトしてしまう方法をご存知の方がいらっしゃいましたら、 よろしくお願いいたします。 (アクションスクリプトかどうかはわかりません。Flashやったことないもので…)
914 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/31(火) 17:55:19 ID:8orGPcrc0] 既出なので今更と思うかも知れないが、 Livly Island 関係のフィルタはゲームのモラルやポリシーに関わるものが多い。 このスレでは扱わない方がいいだろうと思うんだ。 基礎さえ知っていれば難しいことじゃないし、 あちらの専用スレでも自力でできることが前提だと言われていたしな。
915 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/31(火) 18:42:34 ID:8orGPcrc0] >>913 確認してきたらマルチじゃないか。 向こうで追っ払われたからってこちらに来ないでくれよ。
916 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/01(水) 17:03:39 ID:lqgq8ohV0] 特許庁のIPDL公報テキスト検索 www7.ipdl.ncipi.go.jp/Tokujitu/tjkta.ipdl?N0000=108 の検索結果を新しいタブ(ウインドウ)で開きたい。 下のような、フィルタではうまく行かなかった。 submitの値をreturnしてwindow.openと組み合わせればできそうなんだけど。。 [Patterns] Name = "IPDL new tab opener" Active = TRUE Limit = 256 Match = "HREF="JavaScript:ListSubmit" Replace = "HREF="JavaScript:window.open"
917 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/01(水) 20:40:48 ID:egiE4oOy0] >>151 = >>913 の可能性がドロリ濃厚な件。
918 名前:think ◆MM0nnAOCiQ mailto:sage [2006/11/03(金) 00:42:38 ID:508VMIZd0] >>905-906 遅レスで申し訳ありません。 あれから、他のフィルタに夢中になってしまいまして、デクリメントから遠ざかっていました。(汗) そちらは一区切り付いたので、またデクリメントに挑戦してみようと思います。 で、改めてみて気がついたのですが、検索表現で$TSTする都合上、グローバル変数を使わざるを得ないのですね。 そういう意味で、\#に拘ったのは無意味だったかもしれません。 >>908 まだ見ていますか…? とりあえず、& は使わなくて良い気がします。 title属性で格納したい対象がよく判りませんが、私なら以下のように書きます。 Match = "(<textarea\s[^>]++cols=)\0$AV(([#51:*])\1)" Replace = "\0"50" title="resized cols \1 -> 50"" >>909 お疲れ様です。 細かなことですけど、(*)\2 は \2 にして大丈夫です。 $AVの括弧はグループ化ではありませんので、\2はアスタリスクと同じように働き、消費されます。
919 名前:823 mailto:sage [2006/11/03(金) 00:59:24 ID:c1M+0JK70] >>823 のヘッポコmixiフィルタを書いたものです。 ちょっぴり訂正 |(<(table|td)\s[^>]++width=)\2$AV(710)([^>]+>)\3 の下に、 $URL(^mixi.jp/view_bbs.pl ) が必要だす。 高度な内容が並ぶなか、お恥ずかしい。 $NEST恐怖症を解消して綺麗なフィルタ書きを目指したいな。
920 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/03(金) 01:23:21 ID:zp3j1wvA0] goooooogleimageが効かねー。誰か作り直し頼んだ
921 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/03(金) 11:37:12 ID:wGQAznhc0] [Patterns] Name = "Google image redirector [061103]" Active = TRUE URL = "images.google." Limit = 1024 Match = "var\ e=\"/imgres\?imgurl=\"\+\0\+\"\&imgrefurl=\"\+\1\+[^;]+;c\+=\"<a href=[^>]+>$STOP()" "$SET(9=c+="<a href="+unescape(\1.match(/^[^&]+/))+" target=_blank>Link</a><a target=_blank href="+unescape(\0)+">)" "|" "<a href=/imgres\?imgurl=\0\&imgrefurl=\1\&h=*>" "$SET(9=<a href=$UESC(\1) target=_blank>Link</a><a href=$UESC(\0) target=_blank>)" Replace = "\9"
922 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/03(金) 11:38:48 ID:wGQAznhc0] [Patterns] Name = "google image (061103) +js+" Active = TRUE URL = "images.google.co(.jp|m)/" Limit = 1024 Match = "var\ e=\"/imgres\?imgurl=\"\+\0\+\"\&imgrefurl=\"\+\1\+[^;]+;c\+=[^;]+;[^;]+;[^;]+;$STOP()" "$SET(9=var e=unescape(\1.match(/^[^&]+/));var proxvar=\0;" "c+="<a href="+e+" target=_blank>imgref</a> / <a target=_blank href="+unescape(proxvar)+">img</a><br>" "<img ondblclick='this.src="+'"";this.style.display="none"'" "+"' onclick='if(this.a){this.src=this.a;this.a=0}else{this.a=this.src;this.src="+'"http://'+unescape(proxvar)+'"}'" "+"' src=/images?q=tbn:"+b.d+proxvar+">";)" "|" "<a href=/imgres\?imgurl=[^&]+\&imgrefurl=([^&]+)\0[^>]+> <img[^>]++(src=/images\?q\=tbn:[^:]+:([^ >]+)\2)\1*</a>" "$SET(9=<a href="$UESC(\0)" target="_blank">imgref</a> / <a href="\2" target="_blank">img</a><br>" "<img ondblclick="this.src='';this.style.display='none'" onclick="if(this.a){this.src=this.a;this.a=0}else{this.a=this.src;this.src='\2'}"\1</a>)" Replace = "\9"
923 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/03(金) 12:33:11 ID:P23w4aje0] >>921 ありがとうございました。
924 名前:908 mailto:sage [2006/11/04(土) 17:53:30 ID:BDG40CNw0] 遅くなりましたが、どうもありがとうございます。 望むフィルタを書くことができました。 >909 $NESTを使いこなすといろいろ便利そうですね。 テクニックのひとつとして覚えておきます。 >918 Boundsを積極的に使おうという風に頭が働いてしまうので、 そのように考えることができませんでした。 必要ならばBoundsを使わないようにするということも頭に入れておきます。 私はフィルタ作成時にtitle属性をよく使いますが、 フィルタがマッチする前にどう書かれていたのかをわかりやすくするために利用しています。 >908の場合だと、本来HTMLを書いた人がcols=$AV([#51:*])\1としたかったのを 書き換えるわけで、書き換える前のcolsの値がすぐにわかります。 >908でtitle属性で格納したい対象は、colsの値です。 書き換えたことが一目でわかるとアクセス性の向上などにつながると思いますし、 デバッグの際にも役立ちます。
925 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/04(土) 19:49:29 ID:BDG40CNw0] Bounds = "<pre*<pre>" Limit = 1024 Match = "(\#(\r\n|\r|\n)+{5,*})+" Replace = "\@" pre要素の中に改行が連続していると縦にページが長くなるため、 改行が5つ以上あった場合<br>と見なして削除するフィルタです。 (こういう場合は論理目的でpre要素を使っていないものと判断します) \#と\@の練習も兼ねています。 改行コードだけ削除してくれればよいのですが、いまのところ動作しないようです。 たぶんMatchがまずいのだろうと思うのですが、何が間違っているのでしょうか?
926 名前:think ◆MM0nnAOCiQ mailto:sage [2006/11/04(土) 21:14:59 ID:qgIOVES+0] またやってしまいました…。 >918を取り込んでいたら、以下に差し替えてください。 Replace = "\0"50" title="resized cols \1 -> 50"" >>924 > デバッグの際にも役立ちます。 確かに便利ですよね。置換内容がすぐに判る仕組みを作っておくと早期バグ発見に貢献すると思います。 >>925 目の付け所はよいと思いますが、ケアレスミスで失敗しているようです。 1. Boundsの終了タグを </pre> にする 2. 検索表現の最後に \# を加える 3. (\r\n|\r|\n) を (\r\n|[\r\n]) にする (どっちでも良いのですけど、文字クラス化した方がすっきりします) これで、期待通りに動作すると思います。 特に、2. が躓きやすいところかもしれません。 (...)+ で再帰的に処理させる場合は、その表現でどこまで消費されるかをシミュレーションしてください。 この場合、「5回以上の改行」まで消費されますが、そのままでは </pre> が残るためマッチしない、ということになります。
927 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/04(土) 22:56:39 ID:BDG40CNw0] >926 どうもありがとうございます。ものすごいケアレスミスをしていますね……。 \#を使う前に*あたりで実験してもみたのですが、 preの閉じ忘れに気づかなかったことで全部台無しです。
928 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/04(土) 23:06:57 ID:wS+Fn6Tk0] >>925 のが動かないときはまず Bounds = "<pre*<pre>" Limit = 1024 Match = "*" Replace = "Match!" みたいに簡単なフィルターを書いて試すといいよ、これは動かないのでこの中に原因があると分かる。
929 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/05(日) 16:53:08 ID:H3/sRPVo0] MyYahooのFLASHと[PR]を消してください・・・ my.yahoo.co.jp/
930 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/05(日) 21:50:02 ID:OFSGT4Qa0] >>929 アプロダにあるKoukoku Eraserっつうのに入ってるフィルタで消えるよ [Patterns] Name = "Yahoo AD Killer" Active = TRUE URL = "(^serch|blogs)[^/]++.yahoo.co.jp/" Limit = 5000 Match = "$NEST(<!-- (-|) (Ad(Space|\ [^>]++ (^(^(-|)-->)))\1|YBB( module|_UnderBanner)|// AD\([a-z/]+\)|SPECIAL CONTENTS MODULE START)" ",<!-- (-|) (/(Ad$TST(\1)|YBB( module|_UnderBanner)) [a-z]+|(//|) /AD\([a-z/]+\)|SPECIAL CONTENTS MODULE END) (-|)-->)|" "$NEST(<div align=$AV(center)>,</div>)" "( <img src="[^.]+.yimg.jp/images/clear.gif" width=1 height=6 border=0><br>|(^(^<script language=javascript> if\(window.yzq_d==null\))))|" "<table\s[^>]+> <tr(\s[^>]+|)><td\s[^>]+>(<[^>]+>|)" "<b>([%C3][%ED][%CC][%DC][%A4][%CE][%BE][%F0][%CA][%F3]|(\ |)PR)</b>($INEST(<table,</table>)|*)</table>|" "(\[PR\] |)$NEST(<a\s[^>]++href=$AV(ard.yahoo.co.jp/ (M|SIG)=*),</a>)|" "$NEST(<script,*://ard.yahoo.co.jp/M=*,</script>)|" "<img\s[^>]++src=$AV(ai.yimg.jp/* )*>"
931 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/07(火) 21:07:58 ID:zk6RxHlg0] 忍者ツールズが最近サーバを増やしたらしく、チェックから漏れまくり。 <!--shinobi でマッチさせると、(あえて?)コメント入れてない所があったりするし サーバ名でマッチさせると、数が多くてちと記述が長くなる なんかいい方法無いもんかな。
932 名前:think ◆MM0nnAOCiQ mailto:sage [2006/11/07(火) 21:10:42 ID:QfZmH8E30] >>931 マッチしづらいURLを幾つか挙げていただければ、見てみます。
933 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/07(火) 23:25:18 ID://YtqP3v0] >>931 忍者ツールズは170種類のセカンドレベルドメインを所有してる。 www.shinobi.jp/hp/ このページのドメイン一覧を見てブロックリスト作ればだいぶマシになると思うよ。 全部網羅してるわけじゃないみたいだけどね。 たとえばninja-systems.comはこの一覧には載ってない。
934 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/08(水) 00:49:38 ID:1qPMa+PR0] >>932-933 今んところアク解等で利用されたのはこんだけ (ninja-systems|hattori|shinobi|gokenin|tsuchigumo|tuzikaze|hatagashira) tsuchigumo以降は、つい最近ブラウザ上部で手裏剣が回っていたので気が付いて追加した。 これは外部ファイルでも使ったほうが綺麗に書けるのかな。
935 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/08(水) 01:31:49 ID:aLwjqkcq0] hanamizake
936 名前:think ◆MM0nnAOCiQ mailto:sage [2006/11/08(水) 20:48:55 ID:yZYXSmjO0] >>934 > (ninja-systems|hattori|shinobi|gokenin|tsuchigumo|tuzikaze|hatagashira) これはURLの一部なんでしょうか? おそらく幾つかのマッチ方法があると思われるので、実際に広告が置かれているWebページのURLを紹介していただけると有り難いです。 どんな広告が挿入されるか実際に見てみるのと判りやすいので…。 例えば、以下のURLの場合は ttp://www.ninja-systems.com/ ttp://faccia0soldi.hanamizake.com/ <!--shinobi1-->〜<!--shinobi2--> の範囲に広告があるので、URLを意識せずともコメントにマッチさせれば広告を除去できます。 これで取り逃がした分をURLでマッチさせるのがスマートかなと思っています。
937 名前:think ◆MM0nnAOCiQ mailto:sage [2006/11/08(水) 20:50:37 ID:yZYXSmjO0] 以下、私が shinobi の広告を除去している方法です。 コメントは "Kill nest ad [2006/03/27]" より、 # shinobi shinobi(ct|ctrl|)\21$SET(Nest1=shinobi\22) URLは "Kill href/src ad [2006/06/04]" より、 # shinobi x0.shinobi.jp/ x1.shinobi.jp/ x2.shinobi.jp/ x3.shinobi.jp/ x4.shinobi.jp/ x5.shinobi.jp/ x6.shinobi.jp/ x7.shinobi.jp/ x8.shinobi.jp/ x9.shinobi.jp/ nad2a.shinobi.jp/ shinobi.jp/
938 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/08(水) 23:25:54 ID:a+JIC0sP0] やわらか戦車おもすれ〜
939 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/09(木) 04:59:38 ID:9d1Hg5u/0] ちょいとみなさん。 googleで検索するときって""やら|やらsite:やらを駆使すると思うんですが、 手でこれを打つのも面倒だしフォームがごちゃごちゃになって見辛いですよね。 そこでproxomitronをつかって独自拡張してみようと思うのですが何か良いアイディアはありませんか? ベースとしては独自拡張した手法でフォームから送信するとproxoimitronがそれをキャッチして googleの認識できる形に整形してリダイレクトして、 検索フォームに表示する文字列はグローバル変数で保存しておいたものを表示するという感じです。 例えばよくあるのは"hogehoge"|"hoge hoge"|"hoge-hoge"のように表記ユレに対応するやり方ですね。 これはとてもよく使うのですがやたらに幅を取る場合があるのでどうにかして短くしてしまいたい。 また、site:google.comもs:google.comのほうが少しだけ短くてお得感があります。 他にも色々とあるかと思うので是非みなさんのアイディアを参考にさせて頂きたく書き込みます。
940 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/09(木) 05:15:47 ID:dCfrqCLd0] >939 おもしろそう。 site: は実現可能かもしれないけど、""は難しいんでないのかな。 個人的には site: の検索がもう少し楽になればそれで満足かな。 site:URL の形式で入力しても検索結果がゼロになることがよくあって、 正しく入力したのか不安になることがよくある。 ただ、自分は Firefox の検索バーをよく使っているから、 仮にフィルタが完成したとしても、 フィルタが有効になるページに一度移動しなければならない。 それを面倒だと感じないほど便利なフィルタでなければ意味がないかもしれない。
941 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/09(木) 15:53:32 ID:XnVq1cu90] - - - - - - - - - - - - - INCS.txt - - - - - - - - - - - - # NoAddURL ([0-9]++)\7 ([0-8])\9 (^[0-9]) $TST(\9=$LST(INC)) | 9(^[0-9])$SET(7=)$SET(vinc=10) | ([0-9]++)\7 ([0-9])\9 (9+{1,*})\8 (^[0-9]) $TST(\9=$LST(INC)) $TST(\8=(9$SET(vinc=$GET(vinc)0))+) & $SET(vinc=\7$GET(vinc)) - - - - - - - - - - - - - INCS.txt - - - - - - - - - - - - - - - - - - - - - - - - - INC.txt - - - - - - - - - - - - # NoAddURL 0$SET(vinc=1) 1$SET(vinc=2) 2$SET(vinc=3) 3$SET(vinc=4) 4$SET(vinc=5) 5$SET(vinc=6) 6$SET(vinc=7) 7$SET(vinc=8) 8$SET(vinc=9) 9$SET(vinc=10) - - - - - - - - - - - - - INC.txt - - - - - - - - - - - -
942 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/09(木) 16:19:04 ID:XnVq1cu90] テスト用フィルター。 テストウインドウに "数字_数字_数字" という書式でテキストを書いてテスト。 例、 10_19_9 [Patterns] Name = "INCS" Active = TRUE Limit = 256 Match = "$LST(INCS)$SET(A=$GET(vinc))_" "$LST(INCS)$SET(B=$GET(vinc))_" "$LST(INCS)$SET(C=$GET(vinc))" Replace = "<--[$GET(A)] [$GET(B)] [$GET(C)]-->" vinc … 変数を表すv + inc、グローバル変数。 INCリスト … 1桁の数字を+1する場合に使用。 結果はvincに代入される。 INCSリスト … 1桁以上の数字を+1する場合に使用。 結果はvincに代入される。 内部でINCリストを使う。 vincに代入された値を取り出すときは基本的に上のフィルターのように別のグローバル変数を用意して代入する。 1マッチで1回しか+1処理をしないフィルターの場合はローカル変数への代入も可。
943 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/09(木) 16:52:26 ID:XnVq1cu90] 1つ書き忘れた。 INCSリストを使うと \7、\8、\9 は使えなくなるので \0〜\6 を使ってフィルターを書くこと。
944 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/09(木) 21:26:01 ID:XnVq1cu90] INCSリストは3行に分けるべきだけど開発用のため1行のままにしてます、念のため。
945 名前:think ◆MM0nnAOCiQ mailto:sage [2006/11/09(木) 21:55:17 ID:sbCt8m4S0] >>939 個人的には現状で満足してますが、アイデアとしては面白そうですね。 > 検索フォームに表示する文字列はグローバル変数で保存しておいたものを表示するという感じです。 いやいやいや。せっかくですが、それでは期待通りに動作しません…。 Googleは検索フォームの文字を見てるのではなくて、URLで渡された文字を見てるんです。 何より、Proxomitronでフォームの文字を置換したとしても、それはブラウザの見た目上、内容が書き換えられただけで検索結果に影響はありません。 > ベースとしては独自拡張した手法でフォームから送信するとproxoimitronがそれをキャッチして んーと、少し考えただけなので穴があるかもしれませんが。 私なら、URLをチェックして加工してしまいます。 加工したい文字をパーセントエンコードし、条件に符合する場合にだけ加工後のURLにリダイレクトさせる…と。 問題点として、ie=shift_jis への対応が難しいことが挙げられます。 Shift_JISは漢字とASCII文字のコードがバッティングするため、s にマッチさせるつもりで漢字にマッチしてしまうことも考えられます。 ie=shift_jis に対応させるか否かが一つの鍵になると思います。 文字コードについて ttp://ash.jp/code/code.htm でも、自分専用にするなら、ie=utf8 を挿入して、仮のクエリ(&p_extension=on とか)を付けるだけで良いかもしれません。 それがユニークなクエリなら、自分専用の検索とわかりますし、検索バーからも使えるため、汎用性も高いと思います。
946 名前:think ◆MM0nnAOCiQ mailto:sage [2006/11/09(木) 21:56:34 ID:sbCt8m4S0] > 例えばよくあるのは"hogehoge"|"hoge hoge"|"hoge-hoge"のように表記ユレに対応するやり方ですね。 これは検索語を hoge:hoge とするだけで全てに対応できる気がします。 Googleでは、"hoge hoge" と "hoge-hoge" は同一として解釈されます。 Googleは一部の記号文字を解釈せず、空白と同じとして扱うためです。 ですので、":", "%", "@" は全て「空白と同じ」です。 更に、「空白がない場合」も考慮します。 # 例外的に、ハイフンは "-" として扱われる場合があります。 # CD-R はちゃんと単語として解釈されますが、"Windows-Media-Player" のハイフンは空白と同一です。 これは "Google: High Light" の備考にも書いたテクニックですが、Windows:XPで「WindowsXP」と「Windows XP」の両方に対応して検索できます。 先ほどの記号文字を解釈しない事を利用したテクニックです。 Google検索: Windows:XP ttp://www.google.co.jp/search?lr=lang_ja&q=Windows%3aXP
947 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/10(金) 20:23:27 ID:6TNHIzJl0] youtubeのファイル直リンクのアドレス作成方法が変わってるね。 だれか修正ぷりーず。
948 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/10(金) 20:34:55 ID:ewoqr5K40] >>947 普通に保存出来た。
949 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/10(金) 21:45:42 ID:fTuWWJDL0] 普通に保存できるな
950 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/10(金) 21:53:43 ID:4jcy+3Ai0] 普通にはできないか
951 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/10(金) 21:59:26 ID:YYErhcXR0] 普通に保存できる
952 名前:think ◆MM0nnAOCiQ mailto:sage [2006/11/10(金) 22:46:37 ID:x7d7RZv/0] 長らく放置していたインクリメント,デクリメントのフィルタが完成しました。 $LSTを使ったモジュール化も終わり、相対URLを絶対URLにするフィルタ("Kill without <a>")との組み合わせも正常動作しています。 説明が非常に長くなるので、興味のある方は私のサイトからDLして下さい。 ttp://vird2002.s8.xrea.com/download/#filter_web >>941-944 フィルタ作成お疲れ様です。 インクリメントは反響の大きな課題でしたね。 拝見しましたが、>941氏のフィルタと私のフィルタのアルゴリズムは大きく違うようです。 発展すれば別の形として完成しそうですね。 >>947 いつ頃と比べたのか判りませんけど、私が見た頃と比べれば変わってないみたいです。 ttp://www.youtube.com/get_video?video_id=****&... というURLで行けます。 私のサイトにあるフィルタ("YouTube: add download link")は一応有効です。 確か、Noriyaさん(パソコン遊戯)も同じようなフィルタを作っていたと思います。
953 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/10(金) 23:22:43 ID:6TNHIzJl0] うそーん。 ちなみにここね。 ttp://www.youtube.com/watch?v=Gzj723LkRJY [Patterns] Name = "YouTube Add Download Link [060505]" Active = TRUE URL = "$TYPE(htm)(www.|)youtube.com/watch\?(|*\&)v=" Bounds = "$NEST(<script,</script>)" Limit = 512 Match = "(*new\sSWFObject\(\"/player[0-9]+.swf\?(video_id=[^"]+)\0\"*)\1($KEYCHK(Y)" "$SET(2=<meta http-equiv="Refresh" content="0;URL=youtube.com/get_video.php?\0">\k )|$SET(2=\1))" Replace = "\2\n<div style="font-size: 20px; font-weight: bold; text-align: center;padding-bottom: 10px;">\n" "<a href="youtube.com/get_video.php?\0">[[[ Download ]]]</a>\n</div>\n$STOP()" で、DLツールで出力したアドレスはこれ。 ttp://v21.youtube.com/get_video.php/Ruby%20on%20Rails%20demo.flv?video_id=Gzj723LkRJY 他のフィルタが悪さしてるのかなぁ。
954 名前:think ◆MM0nnAOCiQ mailto:sage [2006/11/10(金) 23:45:57 ID:x7d7RZv/0] >>953 大きなファイルですねぇ。 WebブラウザでDLを試行すると、なかなかダウンロードダイアログが出てこないので、Proxomitronで生成したURLをダウンローダに渡したらDL→再生できました。 紹介された「ダウンローダで抜き出したURL」からも何とかダウンローダでDLできました。 ただ単に「DLに時間がかかっているだけ」ということはありませんか?
955 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/11(土) 00:08:53 ID:czo44a500] >953 ttp://video.qooqle.jp/dl/ YouTubeはあまり利用していないから、個人的にはここを使っている。 Video URLのところにURLを貼り付けるだけで目的のURIがでてくる。 これじゃだめ?
956 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/11(土) 00:46:36 ID:EzBmzQMj0] >>953 保存できたよ
957 名前:941 mailto:sage [2006/11/11(土) 00:48:45 ID:6TJk6D750] >>952 乙カレちゃん。 あちきも今からDECを書くところです。 構想は仕上げてあるからあとはフィルターという形に具現化するだけの状態。 まだthink氏がうpされたものを拝見してはおりませぬが動作的には細かな所で 違う動作をするものになると思います。 あと本スレでは失礼しました。
958 名前:941 mailto:sage [2006/11/11(土) 01:21:55 ID:6TJk6D750] 一桁の数字を-1する時に使うリスト。 対象が 0 の場合は 0 のままとし、ログウインドウにエラーを表示する。 - - - - - - - - - - - - - DEC.txt - - - - - - - - - - - - # NoAddURL 9$SET(vdec=8) 8$SET(vdec=7) 7$SET(vdec=6) 6$SET(vdec=5) 5$SET(vdec=4) 4$SET(vdec=3) 3$SET(vdec=2) 2$SET(vdec=1) 1$SET(vdec=0) 0$SET(vdec=0)$LOG(R[DEC LIST] Erorr : Under Zero) - - - - - - - - - - - - - DEC.txt - - - - - - - - - - - -
959 名前:941 mailto:sage [2006/11/11(土) 01:29:21 ID:6TJk6D750] 1桁以上の数字を-1するときに使うリスト。 上のリストに同じく 0 は 0 のまま返し、ログウインドウにエラーを表示。 - - - - - - - - - - - - - DECS.txt - - - - - - - - - - - - # NoAddURL ([0-9]++)\7 ([1-9])\9 (^[0-9]) $TST(\9=$LST(DEC)) | 0(0+)\7(^[0-9]) $SET(vdec=0) $LOG(R[DEC LIST] Erorr : Under Zero) | ([0-9]++)\7 ([1-9])\9 (0+{1,*})\8 (^[0-9]) $TST(\9=$LST(DEC)) $TST(\8=(0$SET(vdec=$GET(vdec)9))+) & $SET(vdec=\7$GET(vdec)) - - - - - - - - - - - - - DECS.txt - - - - - - - - - - - - 010 を -1 すると 09 にはならず 009 となる。( 十の位の 0 がそのまま残る ) 10 は 09 となるので 9 のみを取り出したい場合は 0 を取り除く処理を自前で用意する必要がある。 グローバル変数 vdec は vinc と同じ名前にしても競合しないので1つにまとめる予定。
960 名前:941 mailto:sage [2006/11/11(土) 01:37:07 ID:6TJk6D750] INCSとDECSの2つを使えば 0 をまたいだ+-処理も簡単に出来る。 8進数や16進数への対応もリストの少しの書き換えで出来るので色を変えるフィルターなどに応用出来る。 そこらへんは必要性を感じた人が作ればいいと思うので自分はここまでとする。
961 名前:941 mailto:sage [2006/11/11(土) 01:40:14 ID:6TJk6D750] テスト用フィルター。 テストウインドウに "数字_数字_数字" という書式でテキストを書いてテスト。 例、 10_010_0 [Patterns] Name = "DECS" Active = TRUE Limit = 256 Match = "$LST(DECS)$SET(A=$GET(vdec))_" "$LST(DECS)$SET(B=$GET(vdec))_" "$LST(DECS)$SET(C=$GET(vdec))" Replace = "<--[$GET(A)] [$GET(B)] [$GET(C)]-->"
962 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/11(土) 09:42:37 ID:gxa2hPZC0] >>953 ワシはこうしてる。 [Patterns] Name = "YouTube Dounload by VideoDownloader" Active = TRUE URL = "www.youtube.com/" Limit = 256 Match = "</table> " "</form> " "</div> " "<!-- end vidFacetsDiv -->" Replace = "$STOP()" "<tr><td class="label">File</td>\r\n" "<td class="tags"><span id="vidTagsBegin"><a href="videodownloader.net/get/?url=$ESC (\u)" target="_blank">VideoDownloader</a></span></td>\r\n" "</table>\r\n" "</form>\r\n" "</div>\r\n" "<!-- end vidFacetsDiv -->\r\n" VideoDownloader(javimoya.com/blog/youtube_jp.php )へのリンクを作るフィルタ。 ワンクッション入るけど、保存とかあんまりしないからこれで十分。
963 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/11(土) 13:21:00 ID:6TJk6D750] >>953 youtubeは動画ページを開いてから時間が経つと動画をダウンロード出来なくする規制を入れてたはず。 一旦リロードしてからダウンロードリンクをクリックすればまたダウンロード出来るようになるはず。 今でもこの規制がそのままなのかは確認していない。
964 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/11(土) 14:23:43 ID:Zpwvpacy0] 地図サイトのマピオンで例えば下のURLを表示すると 上にフラッシュの大きな広告が出ますが、これを消す方法を教えてください よろしくお願いします www.mapion.co.jp/c/f?uc=1&nl=35/39/55.432&el=139/44/46.010&grp=all&coco=35/39/55.432,139/44/46.010&icon=mark_loc,0,,,,&
965 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/11(土) 14:35:39 ID:JWM0LDoz0] そろそろスレも終わりですが スレに出ているものの中で とりあえず初心者が入れておくといいというものはどれでしょうか? 余計な公告やウインドウが出なくなるもので無難なものを教えてください。
966 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/11(土) 14:43:32 ID:fTDnRBe30] このソフトほど人任せできないものはない
967 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/11(土) 14:44:36 ID:gFztkiap0] >>965 よさそうな物を入れときなさい。
968 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/11(土) 14:46:22 ID:6TJk6D750] >>964 ADLISTに www.mapion.co.jp/js/ad_ を追加。 >>965 mixiの広告が全部消えるフィルターとかは?
969 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/11(土) 15:13:26 ID:Zpwvpacy0] >>968 お返事ありがとうございます さっそくListsのフォルダにAdList.txtを作って www.mapion.co.jp/js/ad_ とだけ記入してみたのですが何も変わらずでした Naoko 4.5 "June" に>>1 の誤爆回避日本語化+RWIN32768回避を上書きして 設定はインスコから全く触っていないデフォの状態です なにかこちらが根本的に勘違いをしてるのでしょうが、ご指摘いただけたらと思います
970 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/11(土) 15:25:16 ID:gFztkiap0] >>969 ブロックファイルの編集→ADListがあるじゃんか。
971 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/11(土) 15:32:16 ID:Zpwvpacy0] >>970 ああっ、出来ました そこから設定出来るんですね、何も知らずにお恥ずかしいかぎりです ありがとうございました!
972 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/11(土) 16:22:32 ID:bpU+zWWr0] ttp://music.yahoo.co.jp/shop/p/52/274552/41/3/1/0/0/ の歌詞表示がグレーになってクリックできないのですが どのフィルターが引っかかってるのでしょうか? ログウインドのMatchを貼れば教えてもらえるでしょうか?
973 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/11(土) 19:59:42 ID:Xp1rNJD10] >>972 IE使ってないとか言うオチでは無かろうな? 万が一それならユーザーエージェント書き換えで行ける。
974 名前:think ◆MM0nnAOCiQ mailto:sage [2006/11/12(日) 00:22:29 ID:n6YJfvU90] >>959 > 010 を -1 すると 09 にはならず 009 となる。( 十の位の 0 がそのまま残る ) 綺麗な処理にしたいときには、ゼロサプレスにも気を遣いますね。 959氏の書き込みを見て、私のフィルタのデクリメントに致命的な不具合があることに気がつきました。(汗) 取り急ぎ、修正しました。 ttp://vird2002.s8.xrea.com/download/#filter_web
975 名前:972 mailto:sage [2006/11/12(日) 09:49:57 ID:pKw2ixkf0] >>973 おっしゃる通りでございます。 ありがとうございました。<m(__)m>
976 名前:941 mailto:sage [2006/11/12(日) 20:41:51 ID:1F4773u60] 自分もINC、DECリストをまとめてうpしました。 数字を +1、-1 するリスト群 : K-SAN ttp://proxo.hp.infoseek.co.jp/cgi-bin/sn_uploader/src/pr0048.zip >>974 乙、うっかりはいくら注意してもあるから困りますね。
977 名前:953 mailto:sage [2006/11/12(日) 21:09:46 ID:eYOhvuLO0] 色々動作がおかしいフィルタが出始めてたので、これを機に一気にちぇっくしてみた。 レス遅れて申し訳ない。 結論はヘッダフィルタの方のが誤爆してたみたい。 つか、完全にそっちのこと失念してたよ・・・ と言う訳でチェックしてくれた方、手間かけさせてしまって申し訳ない。 これだけじゃなんなので、バグ報告。 >>922 "+'"http://'+unescape(proxvar)+'"}'" を "+'"'+unescape(proxvar)+'"}'" にするべし。 ちなみに、このフィルタとttpをhttpにするフィルタも相性良くないので注意。 内の環境だと、イメージ検索の中央の検索結果部分だけが すっぽり表示されなくなる場合があるみたい。
978 名前:941 mailto:sage [2006/11/12(日) 23:54:29 ID:1F4773u60] 説明テキストの +20 の例が未完成のままだったので後で修正します。 >>977 乙彼summer。
979 名前:941 mailto:sage [2006/11/13(月) 00:23:48 ID:Vc2PoI1Z0] 修正しました。 数字を +1、-1 するリスト群 : K-SAN ttp://proxo.hp.infoseek.co.jp/cgi-bin/sn_uploader/src/pr0049.zip
980 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/13(月) 10:26:17 ID:QEwcUTUw0] ttp://proxo.hp.infoseek.co.jp/cgi-bin/sn_uploader/src/pr0046.txt を使っているのですが 歌詞表示がUTF-8にならずに文字化けするのですが私だけでしょうか? 仕様が変わったのだったら 偉い人 修正お願いします。
981 名前:941 mailto:sage [2006/11/13(月) 15:58:43 ID:Vc2PoI1Z0] う〜む、モジュール化という点でthink氏のリストに大きく劣っているようだ。 $TST型にすることは簡単出来るけど \7、 \8 が使えないままだし作るメリットが無い。 ユーザー視点から見ても同じ動作をするモジュールが複数あるとややこしい事態に なりそうなのでthink氏のリストで一本化しようと思います。 アリゴリズム自体は初心者、中級者のみなさんにとってはとっつきやすさの点で 優れていると思うので何らかの形で残そうと思います。 >>980 これでどうかな? [HTTP headers] In = TRUE Out = FALSE Key = "Content-type: Yahoo! Music swf -> txt part2 (2006_11_13)" URL = "music.yimg.jp/bin/sendlyricstext\?" Replace = "text/html; charset=UTF-8" 歌詞ページ ttp://music.yimg.jp/bin/sendlyricstext?ArtistId=18086&Id=Y009419
982 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/13(月) 16:01:40 ID:Vc2PoI1Z0] ×アリゴ ○アルゴ
983 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/13(月) 16:54:11 ID:QEwcUTUw0] >>981 ありがとうございます。 うまくいきました!!
984 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/13(月) 16:59:06 ID:oCAoIukD0] スレ立ててきます
985 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/13(月) 17:05:27 ID:QEwcUTUw0] >>981 しかし ttp://music.yahoo.co.jp/ 等が全てUTF-8になって文字化けするようになりました。 文字化けする所は Bypass List に入れたほうが簡単なのかなぁ? もし 修正できるのなら宜しくお願いします。
986 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/13(月) 17:07:03 ID:oCAoIukD0] どうぞ Proxomitron フィルター作成スレッド Part6 pc7.2ch.net/test/read.cgi/software/1163404832/
987 名前:941 mailto:sage [2006/11/13(月) 17:16:44 ID:Vc2PoI1Z0] >>985 んん? >>981 のフィルターではURL限定しているのでそんなことにはならないはずなんですが・・。 ”ブラウザのエンコード設定が自動選択になっていない” ということはありませんか? 確認お願いします。 ちなみにこちらではフィルターを修正する前から文字化けは起きていませんでした。 >>986 乙。 HNがミスターサタン並にカックイイ..。
988 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/13(月) 17:22:18 ID:QEwcUTUw0] >>987 どうもunDonut使っているので 自動選択にならないのです。 設定を見直してみます。 お騒がせしました。 941さんありがとうございました。
989 名前:941 mailto:sage [2006/11/13(月) 17:31:32 ID:Vc2PoI1Z0] >>988 なるほど、unDonutのエンコードはIEから設定しないと反映されない場合があるみたいですね。 確認どもでした。
990 名前:941 mailto:sage [2006/11/13(月) 17:45:04 ID:Vc2PoI1Z0] 埋め think氏は先読みを使って直接リストにマッチさせたのか、なるほど。 この方法ならこちらのリストでも \7、\8 を使わないで書く事は出来そう。 アルゴリズムだけが違う同じ動作のリストが作れそうw (作りませんが)
991 名前:think ◆MM0nnAOCiQ mailto:sage [2006/11/13(月) 18:03:01 ID:w72sMec60] >>977 > ちなみに、このフィルタとttpをhttpにするフィルタも相性良くないので注意。 > 家の環境だと、イメージ検索の中央の検索結果部分だけがすっぽり表示されなくなる場合があるみたい。 不具合報告有り難うございます。「http Text to Link」の作者です。 恥ずかしい凡ミスでしたので、修正しておきました。m(_ _)m # [2006/11/07] 以降のバグでした。 >>979 お疲れ様です。 後ほど、見てみますね。 >>988 検証していませんが、以下で直るかもしれません。 [IE5]日本語Webページが文字化けする場合(エンコードの推奨設定) ttp://support.microsoft.com/kb/413582/ja
992 名前:941 mailto:sage [2006/11/13(月) 18:17:05 ID:Vc2PoI1Z0] >>991 乙。 こちらがうpしたリストは使用例として提示したフィルターにも無駄な箇所が 複数見つかるなど、全体的にまだまだ改良の余地がありそうです。 ついでにunDonutのエンコードに関する話が載ってるページを貼っておきます。 ttp://y3kz.cocolog-nifty.com/chewing/2006/05/mao_f251.html
993 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/13(月) 18:41:17 ID:bSdezmVN0] >>976 >>991 乙華麗!
994 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/13(月) 21:17:13 ID:ToF05dbI0] ( ・∀・)
995 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/14(火) 12:07:15 ID:89JuPRle0] ttp://auctions.yahoo.co.jp/jp/ のページが白紙になるのですが 何をうpすれば解決策を見つけてもらえるでしょうか? ちなみに Bypass List.txt に "*.auctions.yahoo.co.jp/*" "auctions.yahoo.co.jp/*" を 追加しても白紙のままです。偉い人解決策を教えてください。
996 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/14(火) 12:24:09 ID:89JuPRle0] >>955 です 何回も戻るをしたり進むをしたりすると 表示されたりされなかったりです。 もう私にはどうする事もできません。 宜しくお願いします。
997 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/14(火) 12:24:51 ID:89JuPRle0] >>955 です × >>995 です ○
998 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/14(火) 12:32:23 ID:o/zavw2M0] >>995 たぶんオミトロンのバグのせいじゃないかな。 オミトロンには、 > ブラウザから届いた接続要求を問答無用でカットしてしまう というバグがあります。 このバグは毎回起きるものでなく何十回かに一度くらいの割合で起きます。 このせいでブラウザはサーバからWEBページをもらえず、真っ白のページが表示されるわけです。 今のところ、解決方法はブラウザをリロードしてもう一度接続要求を出す以外にありません。(^^;A)
999 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/14(火) 12:58:49 ID:89JuPRle0] >>998 マジですか! この間まで普通に見れてたのに残念です。 ありがとうございます。
1000 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/14(火) 13:00:34 ID:9CNP2CSV0] 千
1001 名前:1001 [Over 1000 Thread] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。