1 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/03(火) 19:34:53 ID:nyXPxVmz0] Proxomitron-J www.pluto.dti.ne.jp/~tengu/proxomitron/ 日本語訳ヘルプ www.pluto.dti.ne.jp/~tengu/proxomitron/help/Contents.html Proxomitron等に関するWiki abc.s65.xrea.com/prox/wiki/ Thinking Archive(仮) vird2002.s8.xrea.com/ Proxomitron専用Uploader ( Upパス=Naoko ) proxo.hp.infoseek.co.jp/ 4.5June+7 + 有難屋アイコン + バイパス赤アイコン な本体 ttp://proxo.hp.infoseek.co.jp/cgi-bin/sn_uploader/src/pr0165.zip 【前スレ】Proxomitron フィルター作成スレッド Part10 pc11.2ch.net/test/read.cgi/software/1223923192/ ---- 関連スレ ---- Proxomitron Part 30 pc11.2ch.net/test/read.cgi/win/1218905098/ ■■■■Proxomitron入門スレッド■■■■6 pc11.2ch.net/test/read.cgi/pcqa/1201242934/ ニコニコ動画専用オミトロンソフト板 Part21 pc11.2ch.net/test/read.cgi/software/1232248443/ 【オミトロン】ニコニコ動画RC2専用オミトロン part12【.js】 pc11.2ch.net/test/read.cgi/streaming/1221869500/
682 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/02(土) 20:28:46 ID:JWy/pgwo0] Name = "Test" Active = TRUE Multi = TRUE Limit = 1024 Match = ">(([^<>]++)\#test$SET(\#=<span style="color:red">test</span>))+{1,*}" Replace = ">\@" こうかな?
683 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/02(土) 21:14:17 ID:An6hhHTyP] [Patterns] Name = "New HTML filter" Active = TRUE Multi = TRUE Match = "(>)\#(^[^<]++</span\s>)(([^<]++)\#(^(^test1|test2|...))$SET(#=<span style="color:red">)(test1|test2|...)\#$SET(#=</span >))+{1,*}" Replace = "\@"
684 名前:think ◆MM0nnAOCiQ mailto:sage [2009/05/03(日) 01:24:57 ID:DtTYu7KV0] 活気があっていいなあ。 >>677 既に>681-682さんが回答されているので私からはほとんど言うことはないのですけど、あえて補足すると 2バイト文字へのマッチも厳密にする前提なら、ReplaceStrフィルタも参考になると思います。 単純な文字列置換なら、ReplaceStr一つで対応できます。 vird2002.s8.xrea.com/download/download.php?type=proxomitron&file=filter_Type_Web > 先頭に[^>]+とやると固まってしまいます 先頭にワイルドカードを使うと、パフォーマンスが極端に悪くなります。 (ワイルドカードというのは * や [^>] のような複数の文字を示す文字です。) 逆に「先頭を1文字にする」と、スピーディにマッチできます。 まず、先頭の1文字を決めてから後続の文字列をどうマッチさせるか、考えるようにすると良いと思います。
685 名前:683 mailto:sage [2009/05/03(日) 10:20:43 ID:7mQLk+ZLP] 修正してみた [Patterns] Name = "New HTML filter" Active = TRUE Multi = TRUE URL = "$TYPE(htm)" Limit = 256 Match = "(>)\#(^$TST(f=1))([^<]++)\#(test1|test2|...)\0(^</span\s)$SET(#=<span style="color:red">\0</span >)" "|(<)\#(^(^(script|style|...)\0(^$TST(f=1))$SET(f=1)$SET(tag=\0)|/$TST(tag)$SET(f=)))" Replace = "\@"
686 名前:think ◆MM0nnAOCiQ mailto:sage [2009/05/04(月) 12:05:05 ID:+FvH03oe0] >485のcontenteditableは印刷するページに対して適用すると、不要部分削除、メモ書きが出来て便利ですね。 Googleマップの「メモ」が思いの外便利だったので、他の印刷用ページにも適用したくなってきました。 [Patterns] Name = "ekitan.com: PrintPage Editable [2009/05/04] test1" Active = TRUE URL = "search.ekitan.com/norikae/PrintServlet(^?)$TYPE(htm)" Limit = 8 Match = "(^(^</body>))$STOP()" Replace = "<script type='text/javascript'>" "document.body.contentEditable = 'true';" "document.designMode='on';" "</script>" 駅探 ekitan.com/ の印刷ページを編集可能にします。 contentEditableとdesignModeの違いはまだ検証していませんので、とりあえず両方付けました。 mozilla-remix.seesaa.net/article/103202489.html のブックマークレットを参考にしました。
687 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/04(月) 15:31:06 ID:s5+oi36U0] ソフトアンテナ ttp://www.softantenna.com/ の左側のライブラリがFirefoxだと中央の更新ソフトウェアに 食い込んで見づらいので、どなたかフィルターを作ってくださいませ。 よろしくお願いします。
688 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/05(火) 10:38:05 ID:kqebwuPm0] >>687 FIREFOX3.0.10だが食い込まないよ (NOSCRIPT等でスクリプトの許可をしていない場合は食い込むはず) なんでスクリプト関連のフィルタの見直しをした方が良いかも めんどうなら、ヘッダと左のライブラリしか見てないが↓でもいいはず [Patterns] Name = "softantenna" Active = TRUE URL = "www.softantenna.com/" Limit = 256 Match = "<link rel="stylesheet" href="js/jquery.treeview.css" />" "|<script src="js/jquery.js" type="text/javascript"></script>" "|<script src="js/jquery.treeview.js" type="text/javascript"></script>" "|<ul id="tv" class="filetree">"
689 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/05(火) 15:41:00 ID:d7t2edRg0] >>688 おっしゃるとおり、NoScriptを使っています。スクリプトは許可したくないので フィルタを使わせていただきます。ありがとうございました。
690 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/05(火) 23:58:04 ID:2cwK8RYd0] www.softama.com/rss/reader.html ここって自動ログオンするのとか出来るの? それから、下の広告も出来るなら消してほしい・・・・ なんか消すと2ch掲示板見るときに、元スレ二トンでしまう。
691 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/06(水) 12:39:55 ID:tjQQH4lj0] 爆裂ブロック崩しの球のスピードを遅くするフィルタをお願いします ブロック崩しとかの脱衣Webゲーム Part13 yomi.bbspink.com/test/read.cgi/ascii2d/1235197381/13 ソースの <param name="wait" value="*"> ここの部分がスピードだからProxomitronで ↓ <param name="wait" value="30"> ぐらいにしておけば出来るよ ちなみに数字を下げるとスピードアップする
692 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/06(水) 12:51:59 ID:RlFV5c0m0] そこまで分ってるんなら自分でやれよ
693 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/06(水) 12:57:07 ID:lOejGG4vP] >>691 単純に下みたいにしてurlとかlimitとか設定しとけばok Match = "<param name="wait" value="*">" Replace = "<param name="wait" value="30">"
694 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/06(水) 13:21:16 ID:Z0SJgiT10] むしろご褒美画像に直接飛ぶフィルタを書くべきじゃないのか
695 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/06(水) 13:29:57 ID:tjQQH4lj0] >>693 動作しました。ありがとうございます
696 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/07(木) 05:06:51 ID:Mm7e+duD0] 広告チェックのために 同ドメインのものはスルーして、他のものは<a>リンク化したいです。 たとえば Host: www1.example.com にアクセスするとして <iframe src="www.example.com/... " <iframe src="example.com/... " <iframe src="www.www3.example.com/... " は同ドメインのためスルーして、 <iframe src="bad.ad.com/... " は <a href="bad.ad.com/.. ">[ad]</a> みたいにしたいのですが 上手いマッチングの書き方が思いつきません。お知恵を拝借できればと思います。 ここではiframeの例を出しましたが、imgなどにも適用したいです。
697 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/07(木) 06:49:47 ID:iyPe/bDR0] >>696 外部iframeをリンク化は自分はこんな感じ $URLのドメイン部分を\1に取り込んでsrcと一致しない事を$TST Name = "Make External Iframe Anchor" Active = TRUE URL = "$TYPE(htm)" Limit = 4096 Match = "$NEST(<iframe,[^>]++\ssrc=($AV(" "(http(://|s://)|//)$URL(" "http://([^:/]++.|)(" "[^.:/]++.(a[cd]|co|ed|g[or]|lg|ne|or).[^.:/]+|" "(^(a[cd]|co|ed|g[or]|lg|ne|or).)[^.:/]+.[^.:/]+" ")\1(/|:80/)|" "https://([^:/]++.|)(" "[^.:/]++.(a[cd]|co|ed|g[or]|lg|ne|or).[^.:/]+|" "(^(a[cd]|co|ed|g[or]|lg|ne|or).)[^.:/]+.[^.:/]+" ")\1(/|:443/)" ")(^([^:/]++.|)$TST(\1))[^:/]+(/*|:80/*|:443/*|)" "))\0*,</iframe>)" Replace = "<a href=\0>[iframe]</a>"
698 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/07(木) 06:59:25 ID:bIrZTIk90] pixiv images direct link userscripts.org/scripts/show/45192 こちらのユーザースクリプトをProxomitronで再現するフィルタをお願いします thumbnailの下に[S]という画像への直リンクが付与されます
699 名前:696 mailto:sage [2009/05/07(木) 16:44:26 ID:Mm7e+duD0] >>697 さんありがとうございます。無事うまくできました。 これで広告が探しやすくなります。感謝です。 Active = TRUE URL = "$TYPE(htm)" Limit = 4096 Bounds = "<img\s[^>]+>|<area\s[^>]+>|$NEST(<iframe\s,</iframe)|$NEST(<layer\s,</layer>)" Match = "([^>]++\s|)(href|src)=$AV(([a-z]+://" "$URL(" "(http|https)://([^/:]++.|)" "(" "[^./:]+.[^./:]+.[^./:]+|" "[^./:]+.[^./:]+" ")\1" ")" "(^([^/:]++.|)$TST(\1))[^/:]+[/:]+*" ")\2)*" Replace = "<a href="\2">[ad?]</a>"
700 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/08(金) 13:57:44 ID:SQjhKN0o0] ニコニコ動画の時報仕様変更した? 時報回避してくれなくなった。。
701 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/09(土) 04:36:17 ID:oQBLSHte0] グローバル変数の使い方が、よく分からん。 ソースの中ほどのワードをグローバル変数に代入して、 ソースの最初の方に使いたかったんだが、検索してみると、 titleを書き換えるには?〜 方法A: フィルタを2つ使い、正攻法で書き換える ttp://d.hatena.ne.jp/Falky/20080612/1213289644 まさに、こんな感じで動かない。 これが機能しない原因を教えてチョ。
702 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/09(土) 05:01:11 ID:UFluB4C10] 人の頭の中にインスコされてる正規表現はすごく高性能 すごいコピペ ★2 tsushima.2ch.net/test/read.cgi/news/1241775381/ >>701 フィルタA = "234" にマッチする フィルタB = "123" にマッチする HTMLソース = "1234" フィルタ順序 = (上=A、下=B) 結果 = Bだけマッチ HTMLソースの中でフィルタBにマッチする文字列が先に出てくるから フィルタBが先にマッチする、というのがオミトロンの仕様。
703 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/09(土) 05:04:17 ID:UFluB4C10] フィルタ順序はHTMLソースの中でマッチする文字列が同時に出てきたときだけ使われマッスル。 フィルタA = "234" にマッチする フィルタB = "234" にマッチする HTMLソース = "1234" フィルタ順序 = (上=A、下=B) 結果 = Aだけマッチ
704 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/09(土) 11:45:05 ID:2QqbZ0igP] >>701 ソース:ABCDE 検索語句:(E|D|C|B|A) とした場合、マッチする順番はE,D,C,B,AじゃなくてA,B,C,D,Eの順にマッチする。 つまり、検索語句の順にEを探して、Dを探してとやっていくんじゃなくてソースの最初の文字から順番に見ていくから (A(変数使う)|C(変数セット))としてもAがマッチする時にCはまだマッチしてないから変数には何も入ってない。 フィルタを2つに分けてもフィルタごとに1回ずつ上から下までソースをチェックするんじゃなくて 一回で(フィルタ1の内容|フィルタ2の内容|フィルタ3の内容)(番号はフィルタの並び)みたいにして検索していくから同じになる。(多分) 否定表現使えばマッチ消費しないからlimitを超えない限りは後ろを検索して変数に入れてから前の方で使うみたいなこともできる。 あとはjavascriptを使って書き換えたりもできる。>>486 に同じような質問があるので読むといいかも。
705 名前:701 mailto:sage [2009/05/11(月) 07:05:54 ID:Fbnw22sf0] う〜ん、Proxomitronの仕様かぁ・・・ なら仕様が無い。なんつったりして( ´,_ゝ`) ウフッ って言うか、フィルタの順序とか関係なかったのね。 みんな、ありがd。 否定表現ってのは、(^(^〜)) ←こういうやつ? これ使ったら、テストで成功マッチ数1って出たけど、 これって、ちゃんと変数に代入されるけど、 その他は何も弄らないって認識でOK? これが"マッチを消費しない"って表現でOK? なんかよく分からんけど、とりあえず機能してる。 \(^o^)/ヤッター
706 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/11(月) 17:31:10 ID:g38pMH5F0] No object!!(似非NoScript)を更新しました。 ttp://proxo.hp.infoseek.co.jp/cgi-bin/sn_uploader/src/pr0226.zip 変更内容 ・No object!! Extで弾いてるものを明示的にした htmlソースを見れば一目瞭然です 今まで <!-- No object!! External script --> 新しいの <!-- No object!! External script k.yimg.jp/images/top/js/fp_base_bd_ga_4.0.0.js -->
707 名前:395 mailto:sage [2009/05/11(月) 18:49:53 ID:/9QwVBqO0] >>706 乙
708 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/12(火) 14:25:07 ID:MgAAnhg10] サイトの背景画像の位置が固定されている時に 固定されずスクロールできるフィルタをお願いできませんか
709 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/12(火) 22:56:51 ID:5SZjUwGe0] html, body{ background-attachment : scroll !important }
710 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/13(水) 00:18:07 ID:M1v9pI1p0] 新しいAA (UЗ)
711 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/16(土) 23:29:55 ID:SJIvZiLp0] URLのマッチについて教えてください。 www.google.co.jp/google.cgi にマッチさせて www.google.co.jp/google.cgi?run=off みたいな引数付きにマッチ させたくない時はどう書けば良いですか?
712 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/16(土) 23:30:47 ID:pkj18qU00] www.google.co.jp/google.cgi(^?)
713 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/16(土) 23:33:25 ID:SJIvZiLp0] >>712 さん、ありがとうございます!
714 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/17(日) 07:09:01 ID:mFId5zKH0] >>626 あれ、これミスってんな。 誤 " phaseNum += 2 % 360;\r\n" 正 " phaseNum = ( phaseNum + 2 ) % 360;\r\n" >>558 のはshiftかpopを使えば見やすくなるね。 " while ( url.length > 0 ){" " s = document.createElement('script');" " s.charset='UTF-8';" " s.type='text/javascript';" " s.src=url.shift();" " document.getElementsByTagName('head')[0].appendChild(s);" " }" 逆順で取り出すならpopで。 ただし条件判定で・・・とか言うとアンチ高速化廚が騒ぎそうだから以下省略。
715 名前:think ◆MM0nnAOCiQ mailto:sage [2009/05/17(日) 14:34:24 ID:5RE4CsS10] >>714 そのアルゴリズムは発想がありませんでした。面白いですね! > ただし条件判定で・・・とか言うとアンチ高速化廚が騒ぎそうだから以下省略。 JavaScriptで高速化は考えたことないですねー。 目下、コードをシンプルにスマートに書く方に興味があります。 Proxomtronはコード整形がやりづらい言語で工夫の幅が限られますが、 JavaScriptは改善しようと思えばできることはたくさんある、という印象です。 Proxomitronにも関数と配列と比較演算子があれば面白いのに、と思うことしきり。
716 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/17(日) 14:37:25 ID:jpdxmH4F0] スコットが存命だったら、もっともっと凄いソフトになってただろうね・・・
717 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/17(日) 15:28:18 ID:c1xPiPi/0] いまならDOMとかXPathとか駆使しただろうね 正規表現オンリーだとやっぱり無理があるから…
718 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/17(日) 17:04:54 ID:UtZCKD9T0] 誰か作らんかなぁ、日本語か英語で
719 名前:think ◆MM0nnAOCiQ mailto:sage [2009/05/17(日) 17:28:51 ID:5RE4CsS10] 以下は「もしもProxomitronに既存のプログラミング言語らしい拡張を加えたら?」というもしもボックス。 *ローカル変数 (※$SETと違い、検索表現内ですぐに展開する) $VAR(VarName=Value) *数値添字配列 $ARRAY(VarName=(var1,var2,var3)) // 定義 $VAR(VarName[0]) // 呼び出し *連想配列 $ARRAY(VarName={key1=var1,key2=var2,key3=var3}) // 定義 $VAR(VarName[key1]) // 呼び出し *ユーザー定義関数 (定義) $FUNC(FunctionName, argument){ // 引数は一つだけ。複数渡すなら配列で。 $RETURN(返り値) } *ユーザー定義関数 (呼び出し) $FUNC(FunctionName) *if文 $IF(条件式){ 処理1; }$ELSEIF(条件式){ 処理2; }$ELSE{ 処理3; } *拡張仕様 - タブ文字を無視する (タブインデントできる)
720 名前:think ◆MM0nnAOCiQ mailto:sage [2009/05/17(日) 17:32:16 ID:5RE4CsS10] *フィルタ例 Match: $FUNC(matchFull, str){ $IF($VAR(str[0]) != $VAR(str[2])){ $RETURN(一致しませんでした) } $RETURN(一致しました) } // クオート無しの方がProxomitronらしい文法ですが、どうも落ち着かない。 // "," が存在する場合にエスケープした方がスマートなのかな? $ARRAY(test=("Hello","Hello")) $SET(0=$FUNC(matchFull, $VAR(test))) Replace: \0 すごくやってみたい。 >>718 やる気と暇があれば、「C言語習得→Proxymode改造をやってみようか」と考えたことがあります。 途方もない計画過ぎてなかなか手を出せませんが。 何から勉強するのが手っ取り早いのかな…。
721 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/17(日) 20:57:19 ID:UtZCKD9T0] C言語は勉強してるけど、RFCとかプロトコルとか勉強する時間が・・・
722 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/17(日) 22:12:29 ID:c1xPiPi/0] pythonいいかもよ もうhttp proxyならいくつかあるし スクリプト言語の中ではいちばんwinと親和性がありそう
723 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/18(月) 03:10:18 ID:mwbhothI0] >>715 >Proxomitronにも関数と配列と比較演算子があれば面白いのに、と思うことしきり。 初級者ですが、不完全ながらある程度は(一時)LISTで実現可能ですね。 これは纏めて$SETするだけみたいなLISTだけど… ※think氏の【filter_Type_Web_20070710.zip】に入っている incrementするLISTを使用させてもらっています。 [Blocklists] List.ExCMD = "..\Lists\ExCMD.txt" # (NOADDURL) ※このリストは変数\9を使用します。 # # $SET(ExCMD=拡張コマンド) で $LST(ExCMD) # $ARRAY VarName=var1,var2,var3 //,,は初期化せず飛ばす仕様です。 $TST (ExCMD=$ARRAY[ ,]([a-z_][0-9a-z_]+{0,19})\9$SET(ExCMDn=\9)[ ]+{0,*}\=(^(^*[^,]))$SET(Num=0) ((,$LST(increment))+{0,*} (([^,]+{1,*})\9 (,|(^?))$SET(ExCMDt=$GET(ExCMDt)\$SET\($GET(ExCMDn)_$GET(Num)=\9\)) $SET(ExCMDclear=$GET(ExCMDclear)\$SET\($GET(ExCMDn)_$GET(Num)=\)) $LST(increment) ) )+ )$ADDLST(ExCMD_TmpListA,\$TST\(ExCMD=@$ARRAY\[ \]$GET(ExCMDn)\[ \]\(^?\)\)$GET(ExCMDt)) $ADDLST(ExCMD_TmpListA,\$TST\(ExCMD=@clear\[ \]$ARRAY\[ \]$GET(ExCMDn)\[ \]\(^?\)\)$GET(ExCMDclear)\$SET\(ExCMD=\)) $SET(ExCMD=@$ARRAY $GET(ExCMDn) )$LST(ExCMD_TmpListA)$SET(ExCMD=@clear $ARRAY $GET(ExCMDn) ) $SET(ExCMDn=)$SET(ExCMDt=)$SET(ExCMDclear=) $TST(ExCMD=@clear[ ]*)$LST(ExCMD_TmpListA) # $EVAL Proxomitronで有効な式 # 誰かお願い (一時LIST + $ADDLST で可能)
724 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/18(月) 03:21:23 ID:mwbhothI0] ごめん、インデントがw $TST //そのまま //ここから 行頭に半角スペース //ここまで $TST(ExCMD=@clear[ ]*)$LST(ExCMD_TmpListA) //そのまま
725 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/18(月) 08:07:12 ID:ZH0xD1Kb0] >>723 $WESC し忘れてた。 誤 $GET(Num)=\9\)) 正 $GET(Num)=$WESC(\9)\)) まだ不具合があるので注意(※特に配列の値) あとは専用の添え字用変数(Numを直接使うのは避けたい)で$GETとか (任意の変数を +1,-1 するLISTとか) 再評価する時に危険な文字のチェックとか 一時LISTの破棄の仕方とか だけど正直荷が重い。スレ汚しすみませんでした。 orz
726 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/20(水) 00:20:41 ID:W80c0vBm0] evalをリストで出来るのは前から分かってたけどリストの初期化をするコマンドが無いとな。 リストはまだまだ応用出来ることがあるだろうね。 リストを使えば$NESTの代用も出来そうだし。
727 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/20(水) 00:43:33 ID:rvqIMDPA0] 一番ほしいのはマルチバイト文字対応 日本語にヒットさせたいときは日本語で書いてOKみたいな
728 名前:think ◆MM0nnAOCiQ mailto:sage [2009/05/20(水) 02:20:04 ID:EnCka/f00] >>721 その辺はどこかのソースを参考にして…って考えが甘いでしょうかw >>722 Python面白いですね。 インデント強制の文法が現在思案しているWikiとそっくりで驚きました。 一番気になる正規表現を見て、期待していた end() メソッド(マッチした文字列が終わる位置を返す)があったのが嬉しい。 今作っているJavaScriptライブラリでXPathを解析して処理を実行させるものがあるんですが、 Proxomitronの「消費したところにはマッチしない」という動作に模倣に RegExp.rightContext が役立ってくれました。 PythonもProxomitronの動作を簡単に模倣できそうですね。
729 名前:think ◆MM0nnAOCiQ mailto:sage [2009/05/20(水) 02:21:42 ID:EnCka/f00] >>723 「グローバル変数にCSV形式で格納した値を$TSTして、"$SET(name\d=value)" を$ADDLST→$LSTでeval()を模倣」という処理でしょうか。 変数の値を解放できない($RMLSTがない)、のが厳しい…。 「CSVを利用して配列」というアイデアは前からあったので、それをフィルタにしてみました。 [Patterns] Name = "Array ver.0.2b" Active = FALSE Limit = 256 Match = "test" "$SET(ArrayList=a=val1,val2,val3,val4\nb=1,3,5,7,11,13)" "$SET(CallArray=a[2])" "" "$TST(CallArray=([a-z_][0-9a-z_]+)\9$SET(VarName=\9)\[([0-9]+)\9$SET(Key=\9)\])" "$SET(CallArray=)$SET(Num=0)" "$TST(ArrayList=([^\r\n]+[\r\n]+{1,*})++$TST(VarName)\=((^$TST(Num=$TST(Key)))[^,]+,$LST(increment))+([^,]+)\9*)" "$SET(Value=\9)" Replace = "$GET(VarName)[$GET(Key)]="$GET(Value)"" $SET(CallArray=a[2]) で配列を呼び出し。 例えば、"a[2]" を "b[0]" に変えると2行目で定義した配列bを呼び出します。 「[,\r\n] を値に持てない」という不具合を解消すれば、実用出来そうです。エスケープ処理はCSV準拠でいいかな…?
730 名前:think ◆MM0nnAOCiQ mailto:sage [2009/05/20(水) 03:44:38 ID:EnCka/f00] >>729 を更新しました。 2009/05/20 (ver.0.3.4b) - $SET(CallArray=) から $SET(getArray=) へ。 "get","set" の組み合わせは直感的だが、$SET(Array=) のみにして処理は自動的に判別させる方がスマートな気がする。 - CSVフォーマットに完全準拠 (値に改行、カンマを持てるようになった) vird2002.s8.xrea.com/temp/shift_jis/Array.txt
731 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/20(水) 19:36:32 ID:usoKSos+0] 723です。 >>726 反応ありがとう。 >>729 ,730 乙です。 >変数の値を解放できない($RMLSTがない) 初期化をした変数の解放は実験的に $LST(ExCMD) をもう一回使えば出来るようにして置いたけど (本当はExCMDに$SETすべきじゃないけど) $RMLSTがない、 >726の >リストの初期化をするコマンドが無いとな。 というのは、設定ファイルの再読み込みしてまで使いたくないし 対処出来ないみたいだから、結局ネタの域を出ませんね。
732 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/21(木) 06:10:32 ID:p/3SzAUZP] numの値を+1,-1 listの内容 1行目 $TST(cmd=num\+)($TST(num=-1)$SET(num=0)$SET(cmd=)|$TST(num=-([0-9]+)\0)$SET(minus=-)$SET(num=\0)$SET(cmd=num-)$TST()) 2行目 $TST(cmd=num-)($TST(num=0)$SET(num=-1)$SET(cmd=)|$TST(num=-([0-9]+)\0)$SET(minus=-)$SET(num=\0)$SET(cmd=num+)$TST()) 3行目 $TST(cmd=num\+)($SET(a=)$TST(num=(9$SET(a=$GET(a)0))+{1,*})$SET(num=1$GET(a))|$SET(r=)$TST(num=(([0-9])\0$SET(r=\0$GET(r)))+)$SET(a=0) $TST(num=*$SET(b=0)$TST(r=(((^$TST(a=$TST(b)))[0-9]$SET(b=$GET(b)0))+)\0(0$SET(1=1)|1$SET(1=2)|2$SET(1=3)|3$SET(1=4)|4$SET(1=5)|5$SET(1=6)|6$SET(1=7)|7$SET(1=8)|8$SET(1=9)|9$SET(1=0) $SET(a=$GET(a)0))([0-9]+)\2)$SET(r=\0\1\2)$TST(a=$TST(b))*)$SET(num=)$TST(r=(([0-9])\0$SET(num=\0$GET(num)))+))$SET(num=$GET(minus)$GET(num))$SET(minus=)$SET(cmd=) 4行目 $TST(cmd=num-)($SET(a=)$TST(num=1(0$SET(a=$GET(a)9))+{1,*})$SET(num=$GET(a))|$SET(r=)$TST(num=(([0-9])\0$SET(r=\0$GET(r)))+)$SET(a=0) $TST(num=*$SET(b=0)$TST(r=(((^$TST(a=$TST(b)))[0-9]$SET(b=$GET(b)0))+)\0(0$SET(1=9)$SET(a=$GET(a)0)|1$SET(1=0)|2$SET(1=1)|3$SET(1=2)|4$SET(1=3)|5$SET(1=4)|6$SET(1=5)|7$SET(1=6) |8$SET(1=7)|9$SET(1=8))([0-9]+)\2)$SET(r=\0\1\2)$TST(a=$TST(b))*)$SET(num=)$TST(r=(([0-9])\0$SET(num=\0$GET(num)))+))$SET(num=$GET(minus)$GET(num))$SET(minus=)$SET(cmd=) [Patterns] Name = "test" Active = FALSE Match = "num=((-|)[0-9]+)\0$SET(num=\0)$SET(cmd=num+)$LST(list)" Replace = "num=$GET(num)"
733 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/21(木) 11:39:25 ID:ocWvzkaX0] オミトロンでGENOウイルス対策って出来るのかな
734 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/21(木) 15:40:12 ID:fRN0jjQG0] No objectの右上のマークが消えてしまった
735 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/21(木) 17:37:57 ID:fRN0jjQG0] 解決した
736 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/22(金) 19:09:17 ID:NCtm0YY5P] 変数numの値に整数を足したり引いたり ↓listの内容 ttp://proxo.hp.infoseek.co.jp/cgi-bin/sn_uploader/src/pr0227.txt ↓使用例 [Patterns] Name = "test" Active = FALSE Match = "test$SET(num=1)$SET(cmd=num+2)$LST(list)" Replace = "$GET(num)"
737 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/23(土) 19:45:42 ID:Emamv8VR0] [a-z0-9._/-]+ [a-z0-9._-/]+ 同じものにマッチするかと思っていたらしない。ハイフンのせいか? 文字コードに関係するような気がするけど、そのへんに詳しい人解説お願いします。
738 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/23(土) 21:06:01 ID:5shoiZn40] >>737 WIKI嫁 abc.s65.xrea.com/prox/wiki/MatchingRules/ [ ] 内でエスケープするべき文字 %-]
739 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/23(土) 22:42:02 ID:EQhhzx7K0] >>737 [a-z0-9._-/] だと "a" から "z", "0" から "9", "." および "_" から "/" って意味になってしまう
740 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/23(土) 23:57:15 ID:Emamv8VR0] >738-739 ありがとうございます。 正規表現のことはとくに詳しくないだけにいい例えではないかもしれないけど、 ハイフンも場合によってはメタキャラクタとして機能するという認識でいいのかな。
741 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/25(月) 14:43:26 ID:Naih5ORL0] www.studyinghttp.net/status_code#Redirection httpステータスコードの3xx台のリダイレクトを抑制するフィルタは作れないでしょうか? 404時にキャッシュへのリンクを貼るフィルタ abc.s65.xrea.com/prox/wiki/%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%80%81%E3%83%AA%E3%82%B9%E3%83%88%E5%85%AC%E9%96%8B/20/ の様に、リダイレクトされそうになったらリダイレクト先のURLを表示して移動するかを自分で選択したいのです。 調べ物をするときに情報が移動されていて、さらに移動先もデータ削除されてるとキャッシュを探すのも大変なので、 上記フィルタのキャッシュリンク表示機能も欲しいです。お願いします。
742 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/31(日) 12:12:18 ID:LDhJ8bDq0] youtubeで自動再生させない方法を探しています。 www.chrisfinke.com/addons/tubestop/ firefoxでは↑でできるのですが、IEでオミトロンで行うのは無理なのでしょうか? ご教示お願いします。
743 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/31(日) 18:49:02 ID:86s1Sw0v0] クレクレスレは不況のため終了しました。
744 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/31(日) 18:52:56 ID:T+ow37bC0] >>742 そんなのあるんだ。Fx用入れました!
745 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/13(土) 11:51:26 ID:/LS9UBIq0] 「AをBに置換」 「CをDに置換」 といった、複数のルールを1つのフィルタにまとめる構文はありますか? 無い頭で Match = "A(*)\0C" Replace = "B\0D" というのを考えたんですが、これだとAとCが交互に出て来ないと使えないので…
746 名前:think ◆MM0nnAOCiQ mailto:sage [2009/06/13(土) 13:55:49 ID:DC4CueU80] >>745 この質問よく見かけますね。 [Patterns] Name = "A->B, C->D" Active = TRUE Limit = 1 Match = "A$SET(0=B)|" "C$SET(0=D)" Replace = "\0"
747 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/13(土) 15:52:00 ID:/LS9UBIq0] ありがとう
748 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/13(土) 16:14:10 ID:zqkDy9np0] Scott 渾身のヘルプファイルって意外と読んでもらえてないのな… www.pluto.dti.ne.jp/~tengu/proxomitron/help/Matching_Commands.html#SET
749 名前:名無しさん@お腹いっぱい。 [2009/06/18(木) 04:34:08 ID:1A5PIrAL0] 教えてgooの文字を黒色にしたいんですがどうしますか? ↓の画像に詳しく書きました。 ttp://live22.hp.infoseek.co.jp/cgi-bin/up/s/302194.jpg
750 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 05:18:12 ID:l6AEwTds0] a
751 名前:749 [2009/06/18(木) 09:53:25 ID:miWm3KEl0] よろしくお願いします。
752 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 10:16:54 ID:wWx2gnlt0] TwitterのURL短縮サービスでハッキング、200万のURLが改ざん ttp://www.itmedia.co.jp/news/articles/0906/17/news020.html 誰が短縮URLを元に戻すフィルタを作って〜
753 名前:think ◆MM0nnAOCiQ mailto:sage [2009/06/18(木) 12:00:37 ID:AQ2+QDcU0] >>752 > 誰が短縮URLを元に戻すフィルタを作って〜 結論からいうと、無理です。 例えば、www.google.co.jp/ を短縮すると cli.gs/sV4LS2 になりますが、 cli.gs/sV4LS2 には www.google.co.jp/ に相当する情報が含まれていないのでデコードできません。 Cligsはサーバのインデックスを参照してオリジナルURLを返す仕組みなので。 可逆性のある短縮URLを生成する仕組みがあればいいんですけどね…。
754 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 12:19:04 ID:QVsMHBbe0] なるほどね(´・ω・`)
755 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 14:19:39 ID:VvELdec00] 可逆性のあるURL作ろうにもバイト数少ないURLを圧縮となると 最初のドメイン部分は必要だからかえって長くなってしまいそうだな
756 名前:749 [2009/06/18(木) 14:32:16 ID:bV5Eer9k0] 教えてgooの文字を黒色にしたいんですがどうしますか? ↓の画像に詳しく書きました。 ttp://live22.hp.infoseek.co.jp/cgi-bin/up/s/302194.jpg 画像もアップしたのにスルーされている私。 回答よろしくお願いします。
757 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 15:03:22 ID:w7boeC8u0] だって見れないもん。
758 名前:741 mailto:sage [2009/06/18(木) 18:06:56 ID:SzbvUW660] リダイレクトを抑制するフィルタが有れば>>752 の様な物も防げると思うんですけどね……。
759 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 18:12:23 ID:w7boeC8u0] リダイレクトと短縮アドレスは関係なくね?
760 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 19:26:39 ID:/gexTBj7P] TwitterのURL短縮サービス「Cligs」がハッキングされ、約200万のURLが別のサイトにリダイレクトされる事件が起きた。
761 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 20:54:50 ID:v3oxNG0g0] slashdot.jp/security/article.pl?sid=09/06/15/0317226 これの対策ってだれか作ってる? cssで:visitedで画像やファイル指定してるのを弾くといいみたいなんだけど、 汎用的にやるとなるとちょっと手に余りそうなのでなかったらお願いしたい。
762 名前:749 [2009/06/18(木) 21:56:41 ID:qLMqWFu10] >>757 見れるので回答ください。 よろしくお願いします。
763 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 23:10:10 ID:z1KL9Mpj0] 10〜9999の数字のうち末尾が0のものだけにマッチさせる方法はありますか? [0-9]++0 でできるかと思ったんですが、ダメでした。 0や00以外ならマッチするんですが。(1 や 02 や 50 などは正常に動作) 仕様・・・なんでしょうか?
764 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 23:27:34 ID:ppijyHg5P] >>758 やるなら短縮URLがどうとかより、危険なURLへのアクセスを遮断することを考えたほうが手っ取り早いと思う >>756 どのページなのかURLくらい貼ってくれ 自分のところとは全然違うんだけど ttp://www.dotup.org/uploda/www.dotup.org144392.png
765 名前:749 [2009/06/18(木) 23:43:17 ID:Iy/MOU7X0] >>764 レスありがとうございます。 質問&回答 (Q&A) コミュニティ - 教えて!goo oshiete.goo.ne.jp/ です。 >自分のところとは全然違うんだけど Proxomitron使って広告消しています。 どうすれば>>756 の画像の赤い文字を黒く出来ますか?
766 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 00:11:35 ID:1i28Lw3e0] >>765 デフォルトの「Banner Blaster (full text)」を使ってるんじゃ? それなら color=red の部分を消せば良いと思う
767 名前:749 [2009/06/19(金) 01:01:40 ID:gfqNCNd20] >>766 レスありがとうございます。 Banner Blasterってファイルありませんでした。 どうしたら良いか教えてください。
768 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 01:16:57 ID:UNiLdplU0] >>766 それでいけますね。
769 名前:749 [2009/06/19(金) 01:26:50 ID:ODNkDnIb0] >>766 >>768 初心者なので分かりませんでした。 分かる人回答お願いします。
770 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 01:33:07 ID:Bc1MAiCw0] 初心者は免罪符にはなりません せめて自分で作ったフィルターを晒してみてはいかがでしょうか
771 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 01:55:52 ID:D3rIMrIe0] つか少しは自分で調べろと
772 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 01:57:54 ID:1i28Lw3e0] >>758 In = TRUE Out = FALSE Key = "Location:3xx" Match = "\1 & $RESP(3*)" Replace = "ime.nu/\1 " $RESPは実際のところ不要だと思う。形だけ。 2chのリダイレクトを勝手に使用してるので運営に怒られたらボツ
773 名前:749 [2009/06/19(金) 02:30:41 ID:oGMdeWZt0] 教えてください。 困っています。
774 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 06:03:13 ID:iHbDU93O0] Banner Blasterってデフォで入ってるだろ?
775 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 06:29:10 ID:GxQkM0SN0] 赤いだけでそんなに困るってどんな状況だよw
776 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 10:13:27 ID:zLdi/d4P0] >>773 まだ続けるなら↓に移動してね ■■■■Proxomitron入門スレッド■■■■6 pc11.2ch.net/test/read.cgi/pcqa/1201242934/
777 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 11:06:25 ID:h5IB8D/F0] >>763 後ろに(^[0-9])って付ければ途中の0も拾うと思うけど
778 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 13:06:38 ID:4NycsZtx0] >>772 ime.nu対策なら自分はWebページ・フィルタでやってる。
779 名前:749 [2009/06/19(金) 16:27:55 ID:EppqyBpV0] >>774 >>776 Proxomitron Version Naoko 4.4使っています。 そんなファイル名のありませんでした。 このスレで質問したのでこのスレで回答ほしいです。 分かる人回答よろしくお願いします。
780 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 16:29:26 ID:lQixUOuj0] ファイル名って何が?
781 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 16:30:50 ID:GxQkM0SN0] こういう馬鹿はProxomitron使えないハズなんだけどなぁ・・・ 何がどうなって敷居が下がったんだろうか
782 名前:749 [2009/06/19(金) 16:38:07 ID:op4LyJcr0] >>780 Banner Blasterってファイル名のはありませんでした。 >781 Proxomitron導入だけして、 フィルターは2chでお願いして書いてもらいました。 自分ではフィルターは作れないけど、バイパスに追加は出来ます。 質問の件分かる人回答お願いします。