★ INCM Plug-in開発掲示板 ★ TinyGrass Ver0.32a [戻る]
[0501] 03/10/20 17:29 sta(PqM3trt9nSM): 仕様について
INCMのプラグイン製作のためにPerlを学び始めた者です。
いくつかわからないことがあるので教えてください。
(1)
フォルダプロパティの基本情報のところに出るバージョン情報は
スクリプトのどこを読んで表示されているかというのは大体わかったのですが、
その下のコメントというのはどこに当たるかわかりません。
(2)
プロパティの詳細ダイアログに表示される部分について、
L001=C,… などとある部分のCはチェックボックス、TSはテキスト入力だとは
わかるのですが、それ以外は何なのか、また何が使えるのかがわかりません。
ZDnet等のニュース系のページを読み込むプラグインを作っています。
サイトのリニューアルですぐに見れなくなってしまうので出来るだけ
詳細設定で対応したいので質問しました。
一応現在は読めていますが…とても人には見せられません(汗)
[0500] 03/10/08 10:12 incm user 14(VtvV3Z16c..): MKBoard4
MKBoard4のプラグインを作りたいのですが、うまく動作しません。日付がとれてないみたいです。誰かアドバイスください。
URL:http://joy1.alpha-g.ne.jp/m/u/hiroko.html
[0499] 03/08/27 17:12 incm user12(.QWaibCUUuo): 2ページ目以降で
INCMで読み取たときに(2chなど2ページ目以降の最初の記事の記事番号と日付が前のページの最後の記事番号と日付になってしまいます。修正する方法があれば教えてください。
[0498] 03/07/10 04:55 しみづ(32VYqR6kkEI): Re:490)Re:たぶん直りました
返信も正常に行われるようです。ありがとうございました。
[0497] 03/07/09 22:37 一 五明(0iDqLDdaPWc): Re:496)RE: [仕様]基本的な事
>#F:の後にカンマ区切りでメソッド,URI,フォーム内容
>認証に使う$Uや$Pはどこに書けば良いのでしょう?
希にフォーム内に認証情報を書き込むシステムがあるのでそれ対策だと思います。
通常のリクエスト時の認証は書きようが無いです。
(本体側で対応してるので不要…?)
>フォルダプロパティの設定はどうやってINCMに渡されるか
>理解出来ません。
INCM本体はフォルダプロパティを開いた際に、スクリプトを「ファイルとして」
開いて先頭部分を読みます。コードとしては実行されません。
>プラグインの起動されかたで パラメータが "i" の時
>初期設定 となってますが何の処理を行なうべきなのか
#[DIALOG]の中身を標準出力に書き出すような処理だったと思いますが、
#[DIALOG]で十分(かつ処理も速い)なので通常は必要無いです。
詳しく知りたい場合はBuckeyeさんのNiftyインターウェイプラグで
使われてたと思いますのでそちらを読んで下さい。
http://kt.sakura.ne.jp/~timeflow/M/
[0496] 03/07/09 13:16 かつ(9P975mTU5ak): [仕様]基本的な事
次から次といろんな形式のBBSがあって
既存プラグインで自分が見たい所が見れない場合が結構あるので
勉強も兼ねてプラグインを自作しようと思いましたが
仕様理解で3点ほどわからない事があったので教えて下さい。
1点目
P: ポスト や F: フォロー の特殊文字について
#F:の後にカンマ区切りでメソッド,URI,フォーム内容
と3つの部位に分かれているようですが
認証に使う$Uや$Pはどこに書けば良いのでしょう?
2点目
皆さんのソースを見るとダイヤログに表示される内容を設定
している個所で
$_= <<"#[/DIALOG]";
#[DIALOG]
省略
#[/DIALOG]
などのコーディングが見られますが、
フォルダプロパティの設定はどうやってINCMに渡されるか
理解出来ません。
3点目
プラグインの起動されかたで パラメータが "i" の時
初期設定 となってますが何の処理を行なうべきなのか
理解出来ませんでした。
INIファイルからDIALOGセクションを削除すればいいのでしょうか?
宜しくお願いします。
[0495] 03/07/08 16:44 しみづ(IGdA15JKNWU): Re:494)勘違いのようでした
すみません。3通メールテストさせていただきました。
正常に送られたようです。
私の操作ミスだったようですね。お騒がせしました。
[0494] 03/07/08 15:02 一 五明(0iDqLDdaPWc): Re:493)誤送信?
> あともう一つ、今回のやりとりのなかで気になることがあったのですが、はっきりとしないのです。どうしましょうか。
とりあえず、こちらには1度しか送られて来てなかったです。
> それは、差し上げたメールは一度他の人に(件の送信者に)誤送信されたのですが、私の操作ミスか他の原因かはっきりしないのです。ごたごたの中で、ログは上書きしてしまいましたし。
> タイトルの次である2行目に一 五明さんのアドレスを書き、その後に今回送った内容を、引用の>のない形で送ったつもりが、後に何気なく送信ログを見ていたら別の人に送られたみたいなのであせって再送したのでした。
> 確かに新規作成ボタンを押したように憶えているのですが、記憶違いかもしれません。「送信済み」には残っているので、そこのS:T:P:から、新規作成か返信かどちらを押したかはわかるでしょうか?
新規作成時のP:は、「P:LIB,$c,SMTP」で、
返信時のP:は、「P:LIB,$c,(メールアドレス)」になります。
> もし操作ミスが原因でないとすると、想像してるのは本文中のメールのヘッダか、001.cmtのF:E:などを拾われたのかなとも思うのですが。先日Buckeyeさんも、本文中に引用したエラーメッセージを本物と思ってしまう現象を対処したのを見ましたし。
> こちらのテストは、メール中のアドレスを私のアドレスに替えて、2行目に一 五明さんのアドレスを書いて送ってみてすることができると考えますが、どうしましょう。
> 特殊な場合のことだから、無視しましょうか?
新規作成時は、本文1行目からメールアドレスを抽出して、メールアドレスが
無ければエラー出して送信中止する(2行目以降は無視)なので、
1行目に引用しない限りは大丈夫だとは思います。
http://kt.sakura.ne.jp/~timeflow/M/
[0493] 03/07/08 09:07 しみづ(32VYqR6kkEI): Re:492)Re2:たぶん直りました
> 前から順番にnullでないのが見つかった時点で入ります。
ありがとうございます。一つ勉強になりました。
メールの受信については、メール箱に残っていたものが再取り込みされまして、見た目とF:は問題ないように見えます。あとは実際に返送してみてのことです。
あともう一つ、今回のやりとりのなかで気になることがあったのですが、はっきりとしないのです。どうしましょうか。
それは、差し上げたメールは一度他の人に(件の送信者に)誤送信されたのですが、私の操作ミスか他の原因かはっきりしないのです。ごたごたの中で、ログは上書きしてしまいましたし。
タイトルの次である2行目に一 五明さんのアドレスを書き、その後に今回送った内容を、引用の>のない形で送ったつもりが、後に何気なく送信ログを見ていたら別の人に送られたみたいなのであせって再送したのでした。
確かに新規作成ボタンを押したように憶えているのですが、記憶違いかもしれません。「送信済み」には残っているので、そこのS:T:P:から、新規作成か返信かどちらを押したかはわかるでしょうか?
もし操作ミスが原因でないとすると、想像してるのは本文中のメールのヘッダか、001.cmtのF:E:などを拾われたのかなとも思うのですが。先日Buckeyeさんも、本文中に引用したエラーメッセージを本物と思ってしまう現象を対処したのを見ましたし。
こちらのテストは、メール中のアドレスを私のアドレスに替えて、2行目に一 五明さんのアドレスを書いて送ってみてすることができると考えますが、どうしましょう。
特殊な場合のことだから、無視しましょうか?
[0492] 03/07/08 07:21 一 五明(0iDqLDdaPWc): Re:491)Re:たぶん直りました
>という記述があるのですが、ifの中での||はよく使うのですが、こういう場合の||はどういう機能を持つのでしょうか。
> 連結されるのですか? 一番大きいものが入る? nullでないものが入る?
前から順番にnullでないのが見つかった時点で入ります。
英語のor(〜でなければ)と覚えておけばいいです。
>>$mail=$mail || $rto || $rpath;
この場合$mailの値は、
$mailがnullでなければ$mail(変わらない)
$mailがnullで、$rtoがnullでなければ $rto
$mailがnullで、$rtoもnullで、$rpathがnullでなければ $rpath
全部nullならnull
です。
http://kt.sakura.ne.jp/~timeflow/M/
[0491] 03/07/08 01:10 しみづ(32VYqR6kkEI): Re:490)Re:たぶん直りました
0.13e をダウンロードしてきました。
次回のメール受信時に確認してみます。
ところで、一つ教えていただいていいでしょうか。
cm_mail.pl の中で、
># 返信優先順位はReply-To>From>Return-Path
>$mail=$mail || $rto || $rpath;
>$rpath=$rto || $mail || $rpath;
という記述があるのですが、ifの中での||はよく使うのですが、こういう場合の||はどういう機能を持つのでしょうか。
とほほさんのページのperl仕様をざっと見て見当たらないので、すみませんができれば…。
連結されるのですか? 一番大きいものが入る? nullでないものが入る?
[0490] 03/07/07 20:49 一 五明(0iDqLDdaPWc): Re:487)たぶん直りました
テスト出来てませんが…
http://kt.sakura.ne.jp/~timeflow/M/CM_ML013.LZH
ログ送って頂きましたが、Reply-Toにメールアドレスだけでなく
名前が入っている(想定外)のが原因だったようです。
http://kt.sakura.ne.jp/~timeflow/M/
[0489] 03/07/07 15:38 しみづ(32VYqR6kkEI): Re:488)RE2: cm_mail.plで送信できず
> えーと、まずこの修正で再受信して直ったんでしょうか?
表示上は、正常な漢字として表示されてみえます。ただ、続くアドレスが途中で切れているように見えます。
> 受信直後のlog.htmlに入ってます。
メールにてお送りしました。よろしくお願いします。
[0488] 03/07/07 08:09 一 五明(0iDqLDdaPWc): Re:487)RE: cm_mail.plで送信できず
> 今回ある方からメールをいただいて、まず発言者の蘭が「=?ISO....」になっていたので驚きました。
>> $name=&isjcnv($name);
>> $rpath=&isjcnv($rpath);
えーと、まずこの修正で再受信して直ったんでしょうか?
相手のメールアドレスに日本語(=?iso-2022jp?b?)が含まれていたら
そうなるような気がしますが、実際有るんでしょうか?
だとしたら、アルファベットと「_-.@」以外の文字はメールアドレスとして
認識しないように組んでるので、?や=が入ってるアドレスに返信できないというのは、
辻褄が合うのですが…
> 未送信の件は、001.cmtのP:部分をテキストエディタで書き換えて、対処しました。
> たぶん相手のメーラーとの相性だとは思いますが、何か必要な資料がありましたら、お送りしたいと思うのですが。
とりあえず受信メールのReply-To,From,Return-Path 各ヘッダの内容が判れば
何とかなるかも…
受信直後のlog.htmlに入ってます。
http://kt.sakura.ne.jp/~timeflow/M/
[0487] 03/07/07 01:36 しみづ(32VYqR6kkEI): cm_mail.plで送信できず
一 五明さん
はじめまして、いつもお世話になっております。
cm_mail.pl Ver0.13d を使わせていただくようになって数ヶ月になりましたが、初めて不具合に出会いましたので、報告させていただきます。
今回ある方からメールをいただいて、まず発言者の蘭が「=?ISO....」になっていたので驚きました。
今まで漢字の発言者名のメールはいくつか受け取れていたのですが。
次に、返信しようとすると送れずに未送信のまま残ってしまいます。
最初の件は、次のように応急手当てしました。
*** cm_mail.pl
174a175,177
> $name=&isjcnv($name);
> $rpath=&isjcnv($rpath);
>
未送信の件は、001.cmtのP:部分をテキストエディタで書き換えて、対処しました。
たぶん相手のメーラーとの相性だとは思いますが、何か必要な資料がありましたら、お送りしたいと思うのですが。
[0486] 03/06/21 21:39 すい(QdNpFGWmwV.): Re:485)RE2: Perl(非JPerl)で日本語を扱うコツ−quotemeta関数
「perl で正規表現でエラーになる全角文字を全部抜き出すのは面倒だ」
と思っていたのですが、やってみたら意外にとっても簡単でした。(笑)
単純に Windows環境上で Shift_JIS コード中で文字が割り当てられている
領域のうち、エラーになる物の一覧を作ってみただけですが。
んで、その一覧を関数化してみたっすよぉ。↓
----------
# ↓変換
&__kanji($meshdr_ptn);
&__kanji($reshdr_ptn);
<以下メイン処理>
sub __kanji{
$_ = $_[0];
s/\x81\x5b/\\x81\\x5b/go; # 「ー」⇒「\x81\x5b」
s/\x81\x5c/\\x81\\x5c/go; # 「―」⇒「\x81\x5c」
s/\x83\x5b/\\x83\\x5b/go; # 「ゼ」⇒「\x83\x5b」
s/\x83\x5c/\\x83\\x5c/go; # 「ソ」⇒「\x83\x5c」
<以下数十行>
s/\xfb\x5c/\\xfb\\x5c/go; # 「\」⇒「\xfb\x5c」
$_[0] = $_;
}
----------
一応、動くには動くけど頭悪すぎな みっともない関数だなコレは。置換の お化け。
# 置換処理の行数が 84行。
おまけに "メ[" みたいに「2バイト目が全角文字の1バイト目になり得る文字(メ)」
に [ (\x5b)が続いている場合なんかに異常な変換結果を招くので、使い物にならなかったり。(;^^;)
で、そのうちに
「ん!?単純に全角文字を全部 \x?? 表記に変換する関数を作れば良いんじゃん」
という事に ようやくさ気付き。 (;^O^;ゞ (←バカ)
↓こうすりゃ良いんじゃんか、と。
----------
<値の取得処理(67行目近辺)>
&_kanji_hex_($meshdr_ptn); # 全角文字を全て \x?? 表記に変換する。 by P,H,M
&_kanji_hex_($reshdr_ptn); # 全角文字を全て \x?? 表記に変換する。 by P,H,M
#---- 初期化
<以下メイン処理>
##### サブルーチン #######################################################
# 全角文字のみを全て \x?? 表記に変換する。 by P,H,M
sub _kanji_hex_{
$_[0] =~ s/([\x81-\x9f\xe0-\xfc])([\x40-\x7e\x80-\xfc])/sprintf("\\x%02x\\x%02x",unpack("C",$1),unpack("C",$2))/ge;
}
----------
これで文字列中の Shift_JIS 2バイト文字だけを全て一括して \x?? 表記に変換しちゃうようにしてみました。
試してみたら、これでうまく動くみたいだわさ。
[0485] 03/06/21 18:42 すい(QdNpFGWmwV.): Re:484)RE: Perl(非JPerl)で日本語を扱うコツ−quotemeta関数
>一番簡単なのは、quotemeta関数を使うこと。
このプラグインの設定箇所は正規表現を指定する所です。例えば
1,.*氏の投稿「\s*<a href=\"(\d+).html\">[^<]*<\/a>」に対するフォロー記事です
# ↑私が実際に使っている記述です
なんていう正規表現文字列を設定するわけで。
quotemeta だと正規表現の記述が \ で死んじゃうので使い物にならないかと。 (;^^A
面倒でも不味い文字だけを1種ずつ(あるいは引っかかる文字のパターンから、そのルールで)
それらの文字だけを置換するようにしていくしかないでしょう。 (^^;
そういう関数を作れば完璧版として名乗りを。。。
でも、そこまでやるのは面倒くさくって。
# 要望があるようなら考えなくも無いですが。。。(笑)
[0484] 03/06/21 17:39 Buckeye(IWcyoI6XJKE): Re:483)Perl(非JPerl)で日本語を扱うコツ−quotemeta関数
☆ すいさん、みなさん、
>>さらに INCM の フォルダ プロパティ → 詳細 にて「メッセージのヘッダー形式」
>>「レスのヘッダー形式」の指定に「ー」が含まれていた場合(ちょっと書式が異なる
>>“フォロー記事です”とか)のために「ー」⇒「\x81\x5b」の置換処理を入れておけば
>>なお良し。
2バイト非対応のPerlで日本語を扱ったとき、正規表現で落ちてしまうのは「ー」だけじゃありません。なので、決め打ちとなるプログラム中の正規表現以外は、別の処理が必要です。
一番簡単なのは、quotemeta関数を使うこと。これで、2バイト文字の後半部分までちゃんとエスケープしてくれます。ま、2バイト文字を考慮していないんだから、2バイト文字の後半部分を特別扱いしないのは当然なんですが(^^;)
$RegMatchString = 'うんたらかんたら'; ←ここは、プロパティ設定などいろいろ
$RegMatchString = quotemeta $RegMatchString;
if ($page =~m/$RegMatchString/i) {
各種処理
}
私は、実行形式Perlを作るプログラムが2バイト非対応なので、そのプラグインを公開している関係から、他のケースの日本語処理もすべてPerlで行っています(一応、JPerlもインストールしてあるけど、使っていない)。なので、このquotemeta関数のお世話によくなります。
Best regards,
Buckeye
[0483] 03/06/21 16:13 すい(QdNpFGWmwV.): cm_WWWBoard.pl について
はじめまして、こんにちは。
INCM 便利に使わせていただいています。
私は Plugin を色々改造して利用させてもらっているのですが、、、
# 私の環境の都合とか、私が巡回している掲示板のカスタマイズ具合
# によるもの、という個人的な理由の改造がほとんどなのですが。 (;^^;ゞ
で、その改造のうちの幾つか汎用的そうな物を開発元へフィードバック(?)
しておこうと思って書き込んでおきます。
ちなみに利用しているのは ActivePerl 5.22 ですので、以下、その環境でのお話しという事で。
まさかさん作の「cm_WWWBoard.pl Ver0.04 2000/09/19 by まさか」ですが、
「perlでは動作しない。JPerl必須」になっていますが、1箇所書き換えれば
perl でも動作します。
perl で動作しない理由は正規表現中に仮名の長音が含まれているからで、これを
\x?? 表記に直せば perl でもきちんと動作します。具体的には 280行目近辺の
「フォロー記事です」を「フォロ\x81\x5b記事です」に書き換え。これだけで
perl で動作してくれます。JPerl不要。もちろん記事中の「フォロー記事です」にも
きちんとマッチしてくれます。
これで perl で数ヶ月使っていますが、特に問題無さげです。
# 私が行っていない掲示板では どうだか分かりませんが。(;^^;)
さらに INCM の フォルダ プロパティ → 詳細 にて「メッセージのヘッダー形式」
「レスのヘッダー形式」の指定に「ー」が含まれていた場合(ちょっと書式が異なる
“フォロー記事です”とか)のために「ー」⇒「\x81\x5b」の置換処理を入れておけば
なお良し。
具体的には取得した $meshdr_ptn と $reshdr_ptn に対して s/\x81\x5b/\\x81\\x5b/go; しておく。
あと、116行目近辺の sort 部
> $meslist = sort 〜〜
ですが、、、これって明らかにバグ。(汗)
行頭の $meslist は @meslist ですね。(1文字目 $ じゃなくて @ でしょう)
これのお陰で初回巡回時に、記事番号が飛び飛びに30個(しかも古いのとかが)
取得されたり、という わけ分からない状況になってしまったりして悩みました。(;^^;)
「未読ポインタ未指定時(または0指定時)は、最新の30記事のみ取得する」つもり
だったんですよね、きっと。 (;*^^*;)
ついでに cmt ファイル内も、記事番号順通りに取得されていくようになるつもり...
他にも書き換えて利用しているのですが、他の方には、あまり関係無さそうな
私の個人的な変更なので略、という事で、このくらいで。m(_ _)m
# so-net のパソスクみたいに、記事中に画像<IMG SRC="〜">やアンカー<A HREF="〜"></A>を
# 貼れる所で、画像やアンカーの URLアドレスをcmt中に残して分かるように、とか、
# 掲示板によっては記事中に改行が2個連続していたら<P>1個に置き換える所があるので
# <P>は改行2個に置換するように戻した、とか、そんなくだらないのばっか。(^^;
[0482] 03/06/17 11:46 GETWILD'74(QpXyZT5qYs2): Re:480)Re: RSS 用プラグイン ver. 1.2 について
ここはプラグイン開発の掲示板なので、ご質問の内容がちょっと
沿わない気がします。
>RSS 用プラグイン ver. 1.2 を、どなたかBecky2(BKCMプラグイン)で読み取りされてる方はいらっしゃいますでしょうか?
私は使ってないので全く分からないです。(^^;
[0481] 03/06/17 11:46 GETWILD'74(QpXyZT5qYs2): Re:479)Re: ealis 3.0.8 を読めるplug-inを教えてください。
次回からは質問系掲示板に投稿をお願いします。
プラグインはたぶんないと思います。
ある程度読めているなら、改造すれば行けるかもしれません。
[0480] 03/06/05 23:29 ian(xUehsxJ27IA): RSS 用プラグイン ver. 1.2 について
こんにちは。
RSS 用プラグイン ver. 1.2 を、どなたかBecky2(BKCMプラグイン)で読み取りされてる方はいらっしゃいますでしょうか?
もし可能なら、方法を教えてください。
宜しくお願いします。
[0479] 03/05/21 13:56 KAI(sQl8qckJUUE): ealis 3.0.8 を読めるplug-inを教えてください。
こんにちは。
ealis 3.0.8 の掲示板を読み込もうとしています。
http://elm-kai.virtualave.net/cgi-bin/ealis.cgi
http://kano.feena.jp/erial/
T.Taさんの INCM用Plug-in: ealis用 Ver0.0.4 2000/2/22 by T.Ta
一 五明さんの ぷち☆ボード,ErialBBS
を使ってみたのですが、一行ずつしか読み取りが出来ない上、文字化けしてしまいました。
該当プラグインは存在するのでしょうか?
[0478] 03/04/03 19:47 Buckeye(IWcyoI6XJKE): Re:477)Re: プロキシ関連で不具合か?
☆ GETWILD'74さん
あー、そういうことなんだぁ。
テストしてみたら、たしかに"PROXY="パラメータが増えていました。これ、INCM側が書き足すわけなんですね。
これでとっかかりというか、どうしたらいいかの方向性が見えた気がします。
ありがとうございました。
Best regards,
Buckeye
[0477] 03/04/03 18:12 GETWILD'74(7ewbH5F8/fA): Re:476)Re2: プロキシ関連で不具合か?
★Buckeyeさん
>ただ、いずれにしても、incm_bbs.iniに"PROXY="パラメータがないと設定されないわけで……ダイアログを見てもincm_bbs.iniを直接開いてみても、PROXYパラメータは見あたらないんです。
IEのほうでプロキシの設定をするか、INCMのオプションでIEの設定を使用するのオプションをはずしてプロキシの設定をしてから巡回してみるとincm_bbs.iniに"PROXY="パラメータが設定されると思います。
[次のページ]