★ INCM Plug-in開発掲示板 ★ TinyGrass Ver0.32a [戻る]
[0087] 00/03/30 20:05 一 五明(9v2hKa5FPfo): 自動解析の精度上げ
スピード犠牲にしていいなら、(Perlの場合)まずページ全部
変数に読み込んで何通りかsplitで配列に切り分けてみる手があり
ます。
undef($/); $all=<HTTP>; # 変数 $_ に一気読み
for("<hr","<HR","<table","<TABLE"){ # も少し増やす
@atcls=split($_,$all); # 切り分けて
last if(&chkatcl); # チェックに通ったらループ抜ける
}
それで上手く切り分けられたのをINIに記録しておいて、次回から
区切り($/)に読むようにすれば、2回目からは従来通りのスピードに
なります。
上手く切り分けられたかどうかの判定ですが、とりあえずsplit
掛けた配列の各要素をCMLIB15.PLの&getdateみたいので照合して
(ただし単にパターンマッチでなくマッチさせた部分をs/〜//;で
消す)、1度だけ日付が取れた場合、その書き込みは区切り成功、
1度も取れないor2度以上取れた場合は、区切りに失敗…というフラ
グを立てます。
で、ページの最初と最後の連続した失敗フラグは無視して、残り
のフラグがどの程度成功しているかである程度の判断は出来そうな
気がします。
sub chkatcl{
$flgs="";
$parts=$#atcl; # 区切りの要素数
while($_=shift(@atcls)){
$flg=0;
while($_=&getdate2($_)){ $flg+=1; }
if ($flg >1){ $flg=0; }
$flgs.=$flg; # 文字列$flgsにフラグをくっつけ
}
$_=$flgs; s/^0*//; s/0*$//; # 最初と最後の連続した0を取り除く
$flg=0; # 戻り値用に使いまわし
if(/^1{10,}$/){ $flg=1; } # 1のみが10個以上連続していれば区切りok
# (↑これだけだと厳しすぎるので、ここにも少し判定ルーチン加える)
$flg; # 戻り値
}
本文中に日付が書かれてることも多いですから、あらかじめ配列
要素中に<blockquote>〜</blockquote>や<pre>〜</pre>が有ったら
消しておくといいかもしれません。
もっとも日付自体が無いシステムには通用しませんが(^^;
# なお、本文中のルーチンは動作確認してないので動かない可能性大
http://www.teleway.ne.jp/~timeflow/MENU.HTM
[0086] 00/03/30 19:20 GAE(.yLuozr171c): Re:85)RE: ダイアログの初期化で質問です。
>ダイアログの初期化って今はINCMがプラグインを読み込んで行って
>いるんですか?
:
>で囲まれたところがあればINCM側で読み取ってincm_bbs.iniに書いて
>いるみたいなんですが。
そうです。
以前は、i で起動していましたが、フォルダプロパティを開くたびに
Perl が呼び出されて時間がかかるのでこういう仕様になってます。
GAE
http://www.gld.mmtr.or.jp/~naofumi/incm/
[0085] 00/03/30 18:11 てら(reTFQR2yizQ): ダイアログの初期化で質問です。
ダイアログの初期化って今はINCMがプラグインを読み込んで行って
いるんですか?
一 五明さんのプラグインをベースにさせていただいているんですが
パラメータの一部を変換するために初めて初期化の部分を見たら(^^;
現状ダイアログのクリアになっているような気がして。
実際試してみたところ最初に
#[DIALOG]
・
・
#[/DIALOG]
で囲まれたところがあればINCM側で読み取ってincm_bbs.iniに書いて
いるみたいなんですが。
[0084] 00/03/26 15:36 GAE(vbbj25HUgnk): Re:83)RE: 掲示板の直リンク
マルチポスト、やっぱりやってる人はやってるんですかね(笑)
> でもそれより先に引っ越し先決めるのと、複数ボード対応の掲示
> 板作らないと(^^;
期待してます(笑)
> >(www2s.biglobe.ne.jp/~gae/の方がほとんど空で空きまくってるし(汗))
> ところで通常使用してるプロバイダはmmtrのほうなんですよね?
> これって従量制に切り替えてアクセスせずに、ページだけ残して有るん
> でしょうか…?
そのとおりです。
本当は全部biglobeの方にするつもりだったのですが、
mmtrはSSIが使えるのでメインのページはmmtrにおいてます。
(ページの更新日付を書き換える必要が無くて楽だから)
# ただ、月に1回くらいのペースでサーバが落ちるのがなんとも
http://www.gld.mmtr.or.jp/~naofumi/incm/
[0083] 00/03/26 10:39 一 五明(9v2hKa5FPfo): Re:82)掲示板の直リンク
Webの場合、自分のサイトでも他サイトでも同じ1クリックで移動
出来るのが長所なんだか短所なんだかよく判りませんが、同じテー
マの掲示板を複数サイトで共有するのに使えば便利なのにと思うこ
とは有ります。
INCMで同じテーマの掲示板を複数回ると、同じ質問がマルチポス
トされてるのが見えたりして…(マルチポストがマナー云々は置い
といて)共有だとその必要も無いし、ある意味効率的に使えるでしょ
うから。
反面自分で掲示板選べない/管理出来ないことで不便なこともあ
るでしょうが、こういうのは普及してもおかしくないと思うし、
提唱と実証実験?のような意味では面白いかも知れません。
でもそれより先に引っ越し先決めるのと、複数ボード対応の掲示
板作らないと(^^;
(ちなみに複数ボードにしても、URLの ?以降で指定して単一ボー
ドだけ見ることは可能にするつもり)
>(www2s.biglobe.ne.jp/~gae/の方がほとんど空で空きまくってるし(汗))
ところで通常使用してるプロバイダはmmtrのほうなんですよね?
これって従量制に切り替えてアクセスせずに、ページだけ残して有るん
でしょうか…?
http://www.teleway.ne.jp/~timeflow/MENU.HTM
[0082] 00/03/25 21:54 GAE(vbbj25HUgnk): Re:81)RE: 画像の場合も
> 分けたほうがいいかなと思う話題も時々ありますが、こっちのほう
> 見てる人少ないのが難点ですね。
> INCM HOMEから直リンクだといいかも(^^;
> (ただ近日中にアドレス変わる予定ではあるんですが)
リンクしようかどうしようか迷っていたのですが、
んー、やっぱりこっちで同じ様なものを用意した方が
良いような、でも僕自身プラグインはほとんど作ってないので
どうかなぁとか(笑)
(www2s.biglobe.ne.jp/~gae/の方がほとんど空で空きまくってるし(汗))
http://www.gld.mmtr.or.jp/~naofumi/incm/
[0081] 00/03/25 11:41 一 五明(9v2hKa5FPfo): Re:80)画像の場合も
MiniBBS等では本文中の画像は [画像]と表示されてたのですが、
[画像: http://〜]みたいにすれば画像貼り付け掲示板等で便利そう
ですね。
> プラグイン共通でいけそうな話なので、INCM掲示板から勝手
>にこっちにふってみます。
分けたほうがいいかなと思う話題も時々ありますが、こっちのほう
見てる人少ないのが難点ですね。
INCM HOMEから直リンクだといいかも(^^;
(ただ近日中にアドレス変わる予定ではあるんですが)
http://www.teleway.ne.jp/~timeflow/MENU.HTM
[0080] 00/03/22 20:46 まさか(XlhZSp9.Fuk): メッセージ中のリンクの処理
プラグイン共通でいけそうな話なので、INCM掲示板から勝手
にこっちにふってみます。
メッセージ中のリンクを生かせると確かに便利なんですが、
INCMでリンクが使えるようにするのは大変ですよね。
で、思いついたのですが、
ここには<a href="http://dokosoko/">リンク</a>があります。
のようなHTMLを、
ここにはリンク<http://dokosoko/>があります。
のようなテキストに変換するってのはどうでしょうか?
Perlコードでいうと、タグ除去の
s/<(\/?[!\w]+)[^>]*>/$tag{$1}/eg;
の前に、
s/<a href="([^"]*)"[^>]*>([^<]*)<\/a>/\2<\1>/ig;
みたいな文を入れるといけると思います。
さらには、
s/<a href="([^"]*)"[^>]*>([^<]*)<\/a>/($1 eq $2)?"$2":"$2<$1>"/ieg;
みたいなほうがいいかも(リンクテキストとURLが同じなら
単なるタグ除去)。
[0079] 00/03/13 01:09 てら(reTFQR2yizQ): Re:78)RE: WWWBoard 0.03
最後まで巡回できるようになりました。(^O^)
ありがとうございます。
[0078] 00/03/10 21:24 まさか(XlhZSp9.Fuk): Re:77)WWWBoard 0.03
>対処方法らしきものとして「\n」が入っているとエラー出ないみたいです。
>先に「<br>」を「\n」に変えると最後まで巡回できました。
なるほど、\nは.にマッチしませんからね。勉強になりました。
といいつつ、入れ違いで、メッセージ本体に「.*」をマッチさせない
バージョンを作ってしまいました。
もったいないので(ヘッダーと本文の処理を分けるという意味もあって)、
それと「先に"<br>"→"\n"」を組み合わせて0.03にします。
http://members.xoom.com/emasaka/cm_wb003.lzh
[0077] 00/03/10 18:32 てら(reTFQR2yizQ): Re:76)対処方法?
対処方法らしきものとして「\n」が入っているとエラー出ないみたいです。
先に「<br>」を「\n」に変えると最後まで巡回できました。
[0076] 00/03/09 19:11 てら(reTFQR2yizQ): Re:75)RE: cm_WWWBoard.pl 0.02
お手数おかけします。
今度も巡回できませんでした。
途中まではいけているんですが長文のメッセージがくるとやはり
「Error: Runtime exception」とでます。
「.*」はデータが大きすぎるとエラーが出るみたいです。
aaaBBBccc を
/aaa(.*)ccc/;
でとろうとしてもエラー
$a =~ /aaa(.*)ccc/;
でもエラーです。
/aaa(\w+)ccc/;
だとエラーは出ませんでした。
困ったなー
これに引っかかりそうなこと私もやっています。
[0075] 00/03/08 03:27 まさか(XlhZSp9.Fuk): Re:74)cm_WWWBoard.pl 0.02
てら さんのバグレポートにもとづき、Matt's Script Archive
<http://worldwidemart.com/scripts/>で公開されているWWWBoard
に対応するプラグイン「cm_WWWBoard.pl」を更新しました。
http://members.xoom.com/emasaka/cm_wb002.lzh
変更点は次のとおりです。
・記事読みこみで、ページ全体を読みこんで処理するとjperlがパン
クするので、部分ずつ読みこむようにした
・サブルーチンhttpreqを最近の版に入れ替えた(バーチャルホスト
対応?)
[0074] 00/03/07 21:26 まさか(XlhZSp9.Fuk): Re:73)RE: ちょっと実験
状況、こちらでも確認しました。
やはり記事ページ全体を一変数に入れて操作するのは無理が
あるようで、別のやり方をしたバージョンを作ってみます。
[0073] 00/03/07 02:31 てら(reTFQR2yizQ): Re:72)ちょっと実験
1234567890<title>12345</title>
1234567890
・
繰り返し
・
1234567890
というファイルをつくって
open( HTTP,"a.txt" );
undef($/);
$_= <HTTP>;
s/[\n\r]//g;
s/.*<title>(.*?)<\/title>//i;
print "title $1";
を実行すると
This is perl, version 5.005_03 built for MSWin32-x86-object
jperl5.005_03-990822
と表示されるjperlだと7KB
This is perl, version 5.003_07
jperl5.003_05.patch7_1
と表示されるjperlだと13KB
ぐらいで「Error: Runtime exception」とでました。
perlだと1MBぐらいでもOKでした。
[0072] 00/03/07 01:01 まさか(XlhZSp9.Fuk): Re:70)RE: 待ってましたWWWBoardプラグイン
>ということで「&httpreq」に「Host: $hostsv\r\n」を追加すると巡回できるよう
>になりました。
なるほど。試してみます。
>また巡回が途中で終わってしまっていたのでなんでだろうと思ってdos窓でみたら
>「Error: Runtime exception」とでて終わっていました。これがなにかはわから
>ないんですけど、このとき処理している記事のサイズが30kほどでした。未読ポイ
>ンタを書き換えて巡回してみるとまた引っかかったのでみてみたら20kほどの記事
>でした。ローカルで試したところ10k以上の記事で終わってしまうようです。
>cm_WWWBoard.plの183行目のところでエラーが出るみたいです。
(結合)
>s/.*<title>(.*?)<\/title>//i;
>の「.*」のところでエラーがでるみたいです。
うーん何でしょう。処理データサイズのエラーなのかなあ。
ほかに同じ症状が出た方いらっしゃいますか?>皆様
よろしければ、問題の記事のURLかHTMLファイルをメールしてもら
えますか?>てらさん
>上2行がちょっと謎だったのでコメントにしています。
fontタグとstrongタグを除いてるとこですね。
>jperlだからか?とおもってperlで実行してみたら
>「unmatched [] in regexp at cm_WWWBoard.pl line 217.」
>ってのが出ていました。これは関係無いと思うんですけど。
>INCMでperlとjperlのプラグインを分けたほうがいいのかも。
文法レベルでエラー出ちゃうと、スクリプト内判別ってのも難しい
ですね。
とりあえず現状ではjperlでお使いください(次のバージョンでは
ドキュメントに入れねば)
[0071] 00/03/07 01:01 まさか(XlhZSp9.Fuk): Re:68)RE: WWWBoardって
> リクエスト多かったんですが、同名のシステムが多数あって、
>どれだか判らなかったんですよね(^^;
あ、今回作ったのは Matt's Script Archive
<http://worldwidemart.com/scripts/>で公開されてるWWWBoard です。
> 最近の私のやつはBASICセクションだけ$_に入れて操作してます。
なるほど。次作るときかバージョンアップするときにパクらせて
いただきます。
[0070] 00/03/05 01:15 てら(reTFQR2yizQ): Re:69)あっ、名前入れ忘れてる。
s/.*<title>(.*?)<\/title>//i;
の「.*」のところでエラーがでるみたいです。
[0069] 00/03/04 17:56 ???(reTFQR2yizQ): Re:67)待ってましたWWWBoardプラグイン
うぅっ、xoom応答が無い。バナーは表示するくせに(-_-
さっそく使ってみました。
「www.aaaaaa.comにはリクエストされたデータは無い」みたいなものがかえって
きてしまいました。アドレスは間違えていない、ブラウザでもみれる、なんでー
と思ったら、ん「www.aaaaaa.com」あれっ、みたいのは「bbbbb.aaaaaa.com」な
のに。あっ、バーチャルホストとかいうやつか。
ということで「&httpreq」に「Host: $hostsv\r\n」を追加すると巡回できるよう
になりました。
また巡回が途中で終わってしまっていたのでなんでだろうと思ってdos窓でみたら
「Error: Runtime exception」とでて終わっていました。これがなにかはわから
ないんですけど、このとき処理している記事のサイズが30kほどでした。未読ポイ
ンタを書き換えて巡回してみるとまた引っかかったのでみてみたら20kほどの記事
でした。ローカルで試したところ10k以上の記事で終わってしまうようです。
cm_WWWBoard.plの183行目のところでエラーが出るみたいです。上2行がちょっと
謎だったのでコメントにしています。
jperlだからか?とおもってperlで実行してみたら
「unmatched [] in regexp at cm_WWWBoard.pl line 217.」
ってのが出ていました。これは関係無いと思うんですけど。
INCMでperlとjperlのプラグインを分けたほうがいいのかも。
[0068] 00/03/04 08:05 一 五明(9v2hKa5FPfo): Re:67)WWWBoardって
リクエスト多かったんですが、同名のシステムが多数あって、
どれだか判らなかったんですよね(^^;
>教訓:未読ポインタを数字だけにすると何かと面倒
.INIのBASICセクションのPARAM2=を操作しようとして、DIALOG
セクションのPARAM2=を書き換えてしまうんですよね(^^;。昔やり
ました。
最近の私のやつはBASICセクションだけ$_に入れて操作してます。
http://www.teleway.ne.jp/~timeflow/MENU.HTM
[0067] 00/03/03 22:20 まさか(XlhZSp9.Fuk): WWWBoardほか
自分が欲しかったので、WWWBoard用プラグインを作ってみました。
自分の回るところと、Web検索で目についたところを見て、場当た
りで対応してるんですが、こんなもんでいいんでしょうか?
ちなみに、MASHI's PLACE<http://www.m-kato.com/mashi/>が最近
全然つながんないんですが…
http://members.xoom.com/emasaka/cm_wb001.lzh
ついでに、EasyTreeBBSプラグインが、未読ポインタを更新できて
なかったので、直しました。
http://members.xoom.com/emasaka/cm_et002.lzh
すでにプロパティで未読ポインタが設定されている場合、数字の
頭に"no"をつけてください(例:no205)。
教訓:未読ポインタを数字だけにすると何かと面倒
[0066] 00/02/28 01:10 GAE(vbbj25HUgnk): Re:58)掲示板の規格
またまたネタが消えそうになりましたが…(爆)
> 規格を提示して合わせてと言うより、掲示板作者にオフライン
> アクセス用の(INCM専用ではない)規格作りに参加を呼びかける
> 形にして、CMTを一つの叩き台にするのが心理的に抵抗が少ないか
> もしれませんね。
そうですねぇ。
ただ、それを誰がまとめて、どうやって広めるかが難しいですよね。
まぁそんな事言ってたらいつまでたっても事は進まないのですが(笑)
http://www.gld.mmtr.or.jp/~naofumi/incm/
[0065] 00/02/23 17:25 GAE(.yLuozr171c): Re:63)RE: MobileCentral 0.04
> 原因わかりました。いままで(私のとこで)動いてたほうが不思議
>なぐらいでした。
> その他の初歩的なミス修正を含め、0.04にしました。
無事読めました。
ありがとうございます(笑)
GAE
http://www.gld.mmtr.or.jp/~naofumi/incm/
[0064] 00/02/22 21:59 まさか(XlhZSp9.Fuk): Re:63)RE: MobileCentral 0.04
>http://members.xoom.com/emasaka/cm_et001.lzh
あ、URL間違いです。
http://members.xoom.com/emasaka/cm_mc004.lzh
[0063] 00/02/22 21:57 まさか(XlhZSp9.Fuk): Re:62)MobileCentral 0.04
>要求しているURLがヘンですねぇ…。
原因わかりました。いままで(私のとこで)動いてたほうが不思議
なぐらいでした。
その他の初歩的なミス修正を含め、0.04にしました。
http://members.xoom.com/emasaka/cm_et001.lzh
[次のページ]