★ INCM Plug-in開発掲示板 ★ TinyGrass Ver0.32a [戻る]
[0508] 03/12/08 09:32 ポン太(MEQo283p5ks): Re:507)RE2: ピリオドのみの行
一 五明 さん、K.Takata さん、レスありがとうございます。
#INCM での書込は、先頭行がタイトルになるんですね。(^_^;
INCM での仕様がない件は分かりました。本体側で明快な仕様が決まる方が良いと
思いますが、現状決まっていないせいで、かなりの数のプラグインが独自対応で
流通している以上、これから決めるのは難しいのかもしれませんね。
私は現在「メーラーdeネットニュース」というソフトを公開しており(βですが)、
http://homepage3.nifty.com/yutaro/
このソフトを INCM プラグイン対応しようかなと考えております。そのときに
真っ先に「.」だけの行の問題を気にしてしまいました。
本業が忙しくてまだ全然手をつけてはいませんが、ぼちぼち考えていきたいと
思います。
ありがとうございました。
[0507] 03/12/07 14:03 K.Takata(6/todiVeuzM): Re:506)RE: ピリオドのみの行
> >そもそも「.」だけの行は先頭に半角スペースを付与するという仕様なのでしょうか?
> >SMTP なんかだと「..」にしますが、それに相当するのが「 .」と考えれば
>
> 仕様は決まってないので、各プラグインで.のみの行を回避するようにしています。
一 五明さんの CMLIB15.PL では「半角スペース+ピリオド」に変換するように
なっていますが、それだと見た目が変わってしまうので、私の
CMLIB_KT.PL(改造版 CMLIB15.PL)では、「ピリオド+半角スペース」に
変換するように変更しています。
[0506] 03/12/07 08:03 一 五明(0iDqLDdaPWc): Re:505)ピリオドのみの行
>といった感じになります。最初の行の「.」の前に半角スペースを入れていないのは、
>プラグインのバグではないのかと思っていますが(INCMで正常に取り込めない)、
バグだと思います。
>そもそも「.」だけの行は先頭に半角スペースを付与するという仕様なのでしょうか?
>SMTP なんかだと「..」にしますが、それに相当するのが「 .」と考えれば
仕様は決まってないので、各プラグインで.のみの行を回避するようにしています。
全角に変換するのや回避処理を忘れてるのも有ると思います(^^;。
http://kt.sakura.ne.jp/~timeflow/M/
[0505] 03/12/06 16:57 ポン太(MEQo283p5ks): 初めまして。ポン太 といいます。
早速ですがプラグインの仕様についての質問です。
例えば本文が
.
..
...
あいうえお
...
..
.
という掲示板があったとき(上記「.」は実際は半角)、WEBFORUM_v3
というプラグインでは、001.cm$ の段階では
.
..
...
あいうえお
...
..
.(ここの先頭に半角スペースが入る)
.
といった感じになります。最初の行の「.」の前に半角スペースを入れていないのは、
プラグインのバグではないのかと思っていますが(INCMで正常に取り込めない)、
そもそも「.」だけの行は先頭に半角スペースを付与するという仕様なのでしょうか?
SMTP なんかだと「..」にしますが、それに相当するのが「 .」と考えれば
よろしいのでしょうか?
よろしくお願いします。
ポン太
[0504] 03/12/05 11:27 mai(5tTmuG8K/Ko): 巡回中にストップ
webforumを巡回中にストップしてしまいます。ツリー型でページめくりが多く、通信に時間が
かかってしまうことが原因でしょうか?しかし、ストップしてしまったときのLOG.htmlを確認すると、毎回同じようなところで止まっています。回避方法はないでしょうか?
[0503] 03/10/21 10:47 sta(PqM3trt9nSM): Re:502)仕様について
>http://kaede.sakura.ne.jp/~nikeno/incm/file/incm_bbs_ini.txt
これです。こういうのを探していたんです。
ありがとうございましたm(_ _)m
[0502] 03/10/21 07:21 一 五明(0iDqLDdaPWc): Re:501)RE: 仕様について
>その下のコメントというのはどこに当たるかわかりません。
仕様がまとまらなくて結局未対応だった気がします(^^;
>L001=C,… などとある部分のCはチェックボックス、TSはテキスト入力だとは
>わかるのですが、それ以外は何なのか、また何が使えるのかがわかりません。
何か仕様書のリンク切れてる?みたいですね。
http://kaede.sakura.ne.jp/~nikeno/incm/file/incm_bbs_ini.txt
…を参照。
http://kt.sakura.ne.jp/~timeflow/M/
[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
[次のページ]