★ INCM Plug-in開発掲示板 ★ TinyGrass Ver0.32a [戻る]

名前 ホームページ(SPAM対策のため入力不可) メールアドレス(SPAM対策のため入力不可) タイトル(返信時は「>返信先No. タイトル」と記述) 本文

[0308] 01/01/16 12:51 ぽんた(Vv6lxIE65r6): プラグインの配布に付いて ある掲示板を読むためにminiBBSのプラグインを改造したのですが、 それを欲しいと欲しいという方からメールを頂きました。 差し上げてもよろしいでしょうか? 何か注意点などあれば教えて下さい。
[0307] 00/12/26 13:45 ぽんた(Vv6lxIE65r6): Re:305)タイプミスしてしまいました 下の投稿ですが、タイプミスしてしまいました。 GETWILD'74さん、ごめんなさい。
[0306] 00/12/26 13:29 ぽんた(6ZPvY4jf50c): Re:305)できました ありがとうございました。 おかげで思い通りのプラグインが出来ました。 URLを取得するときに「</a>」まで正規表現に入れてしまえば良かったんですね。 そういうアイデアは出てきませんでした。 一 五明さん、GERWILD'74さん、お世話になりました。(^^)
[0305] 00/12/26 11:23 GETWILD'74(Qk25uvB38zc): Re:303)RE: うまくいかない例 >うまくいかない例ですが、”www”で始まらないホームページ、 >たとえば、http://homepage1.nifty.com等の場合は取得できません。 >それと、もしwwwで始まるHNで投稿してききた人がいたら、 >取得できないような気がします。 言われて見ればそうですね。 私がテストした時は「www」が含まれてるのしかなかったので 気付きませんでした。 となるとやはりタグで判定したほうが良いと思います。 メールの抽出は if($head=~s/<a href=\"http:\/\/[^\?]+\?email=([^\&]+)\&[^\"]+">//){ URLは if($head=~s/<a href=\"(http:\/\/[^\"]+)\"[^\>]+>[^<]+<\/a>//){ として、抽出できたら削除すれば投稿者と余分なタグだけ残ります。 >>この部分なんですが、スラッシュが必要じゃないですか? >>「http:\/\/」って感じで。 >おっしゃる通りです。昨日気づいて直しました。 上のやり方なら「http://」も含んで取得できます。 その他、細かい部分で修正が必要ですのでチャレンジしてみて下さい。
[0304] 00/12/26 10:27 一 五明(YMjHyfzdazU): Re:301)掲示板のソースは見てませんが ><A href="http://www.nc-net.or.jp/emidas/re.php3?email=koji@pfk.em.nttpnet.ne.jp&amp;uri=ngbbs.php"> >となっているため、 >/<a href=\"(http:\/\/[^\"]+)\"/i >で抽出すると、メールアドレスがひっかかります。しかも、 if(s/<a href=\"http:\/\/[^\?]+\?email=([^\&]+)\&amp[^\"]+\">//){ ($1をメールアドレスとして処理) }  のようにすれば、メールアドレスだけ引っ掛かって、かつ消滅しますよね?  その処理の後に <a href=\"http 〜 を調べればホームページURLだけ抽出 出来ると思います。 http://kt.sakura.ne.jp/~timeflow/M/
[0303] 00/12/26 08:57 ぽんた(Vv6lxIE65r6): Re:302)うまくいかない例 >パッと見では分からないんですが、何が問題なんでしょう? >おおよそ上手く行ってる感じですよ。 うまくいかない例ですが、”www”で始まらないホームページ、 たとえば、http://homepage1.nifty.com等の場合は取得できません。 それと、もしwwwで始まるHNで投稿してききた人がいたら、 取得できないような気がします。 また、メルアドとURLを間違えて記入しても、おかしくなりますが、 これはしょうがないかな、と思ってます。 >この部分なんですが、スラッシュが必要じゃないですか? >「http:\/\/」って感じで。 おっしゃる通りです。昨日気づいて直しました。
[0302] 00/12/25 17:58 GETWILD'74(Qk25uvB38zc): Re:301)RE: 大半は取得できます >このHPのソースを見ていただくと分かるのですが、メールアドレスが、 ><A href="http://www.nc-net.or.jp/emidas/re.php3?email=koji@pfk.em.nttpnet.ne.jp&amp;uri=ngbbs.php"> >となっているため、 >/<a href=\"(http:\/\/[^\"]+)\"/i >で抽出すると、メールアドレスがひっかかります。 なるほど、了解しました。 私のほうでも同じ修正をして試してみました。 パッと見では分からないんですが、何が問題なんでしょう? おおよそ上手く行ってる感じですよ。 私の気付いた一点だけ、 $mailhd.="H:http:$a\n"; $mail.=" http:$a\n"; この部分なんですが、スラッシュが必要じゃないですか? 「http:\/\/」って感じで。 >メールアドレスも、ホームページアドレスも省略可なので、 >それに応じて違う処理をさせる必要があるのでしょうが、 >どのように条件分岐させれば、良いか分かりません。 現在のやり方でいいような気もしますけど。
[0301] 00/12/25 16:18 ぽんた(Vv6lxIE65r6): Re:300)大半は取得できます このHPのソースを見ていただくと分かるのですが、メールアドレスが、 <A href="mailto:koji@pfk.em.nttpnet.ne.jp"> ではなく、 <A href="http://www.nc-net.or.jp/emidas/re.php3?email=koji@pfk.em.nttpnet.ne.jp&amp;uri=ngbbs.php"> となっているため、 /<a href=\"(http:\/\/[^\"]+)\"/i で抽出すると、メールアドレスがひっかかります。しかも、 mailto:koji@pfk.em.nttpnet.ne.jp ではなく、 http://www.nc-net.or.jp/emidas/re.php3?email=koji@pfk.em.nttpnet.ne.jp&amp;uri=ngbbs.php と表示されます。 一見ホームページへのリンクのように見えてしまうし、 メーラーといっしょにブラウザも起動してしまいます。 メールアドレスも、ホームページアドレスも省略可なので、 それに応じて違う処理をさせる必要があるのでしょうが、 どのように条件分岐させれば、良いか分かりません。
[0300] 00/12/25 13:56 GETWILD'74(Qk25uvB38zc): Re:299)RE: プラグインを改造したんですが・・・ >ただ、メールアドレスとURLがうまく取得できない場合があります。 全くアドレスが入って来ないということでしょうか? 素直に /<a href=\"(http:\/\/[^\"]+)\"/i で抽出したほうが分かりやすい気はします。
[0299] 00/12/25 11:03 ぽんた(6ZPvY4jf50c): プラグインを改造したんですが・・・ ぽんたと申します。こんにちは。 NCネットワークというサイトの掲示板を読みたくて、 MiniBBSのプラグインを改造してみました。 http://black.nc-net.or.jp/forum/ngbbs.php?bbs_type=3 とりあえず、読めればいいや、というつもりでやり始め、 279行目から296行目までを、以下のように変更し、 それなりに読めるようになりました。 ただ、メールアドレスとURLがうまく取得できない場合があります。 ”#投稿者とURLとメールアドレス”のブロックに問題があるとは思うんですが、 Perlの事もプログラムの事もまったくの初心者ですので、 どこが悪いのかどう直せば良いのか、わかりやすく教えてください。 お願いします。 $_=~s/\n//g; $_=~s/ //g; $head=substr($_,index($_,"曜日")+5); #ヘッダ取得 chop($head); $mail=""; $mailhd=""; if(/email=([^>\"\n]+)&/){ #メールアドレス $mailhd ="E:$1\n"; $mail=" mailto:$1\n"; } ($mes,$h)=split("</pre>",$mes); $head=~s/<.*?>//g; #投稿者とURLとメールアドレス if($head=~/www/){ $a=substr($head,index($head,"www")); $mailhd.="H:http:$a\n"; $mail.=" http:$a\n"; $head=substr($head,0,index($head,"www")); } $a="N:$head\n"; $num="S:*,"; #記事No. if($_=~/No\.(\d+)/){ $num="S:$1,"; } $_=~s/No\.\d+//; ~ /> *([^ <\r\n][^<\r\n]*)/; $title=$1; # タイトル $title=~s/\($//;
[0298] 00/12/22 09:38 Buckeye(UnTUYw5MC2c): Re:296)Re: 「記事属性」の「巡回指定」ってなに? あ、テンプレートは便利でしょうね。 どの程度までやるかという問題はありますけど。 今のヘッダの#P、#F、P、Fのような形でテンプレートを埋め込めるようにすると、 プラグインで作ることが可能になりますね。ただその場合、ユーザが作ることが 難しくなっちゃうか…… プラグインを工夫すると、INCMの仕様内でも、かなりいろいろとできますね。デ ータライブラリは、データ一覧のページからデータ名とファイル名を拾って、発 言形式に仕立て上げ、その中に、データダウンロードのやりかた(どこを残した 返信記事にするか)も書いています。掲示板のように「記事を落とす」でなくて、 ほとんど、「記事を作ってる」状態です。 というわけで、私が作っているプラグインは、「使いやすい」ことを目標に、か なりメチャなことをしています。ダイアログもめちゃめちゃに書き換えてるし。 複数起動されたプラグイン間でアクセスのタイミングを計らせたりもしてるし。 しろーとがこんなにガリゴリやっていいのか?(爆) あ、とりあえず、データのダウンロード自体は成功しました。巡回フォルダの下 にダウンロードファイルを入れておくフォルダを作り、そこに落とします。まだ、 ファイル名がおかしくなっちゃう不具合があるのですが、あと一息です。 おー、忘れるところだった。 巡回フォルダの下にあるフォルダに〜.cm$を書き出したら、そちらもインポート されるのですか? いや〜、データライブラリからデータファイルを落としたら、そのまま、「過去 ログフォルダ」にインポートできないかと思いまして……。巡回フォルダに書き 出しちゃうと、数が膨大になっちゃうので(1フォーラムで、会議室20、ライブ ラリ10、掲示板が1、お知らせ的な部分が4と、最大、35ものファイルができるも ので^^;)、過去ログは、その下にフォルダを作ってインポートするようにして あるんです。 Best Regards, Buckeye
[0297] 00/12/22 09:38 Buckeye(UnTUYw5MC2c): Re:295)Re: 拡張パラメータの読み込みがおかしい? はい、読み込みというか、パラメータによって動作が違うという点は未解決です。 私自身のプラグインについては、そのプラグイン専用のiniファイルを作ってご まかしたりしました。どうしてもユーザに見せたい情報の部分は、幸い、ダイア ログを書き換えてもうまく動作しているので、あぶない(^^;) とは思いつつ、そ のままで使っています。 Best Regards, Buckeye
[0296] 00/12/20 17:31 GAE(3nxWzOCXjo.): Re:294)Re: 「記事属性」の「巡回指定」ってなに? 現在の巡回指定の動作は、巡回指定属性の記事を巡回時に ReadList.tmpかなにか(すでに忘れた…)に出力するというものです。 ちょっと…かなり中途半端な機能です。 とりあえず、巡回指定の機能はあまりにも貧弱なので 今回のパターンには使えそうにありません。 (想像のとおり1.と2.を判別する方法が無いからです) Buckeye さんの書き込みをよんで思ったのですが、 .cmw のファイルはいろいろ使い道がありそうですね(笑) 返信を作成するテンプレートの機能とかあると良いかもしれないですね。 安っぽい機能ですが、巡回指定に比べればいろいろできそうです。 #Template:メニューの文字列1 S:... M:ふつーの書き込み . #Template:メニューの文字列2 S:... P:LIB,... M:cmwに出力される書き込み . 実際使う場合は #Template:このトピックをダウンロード S:*,$Sn,,, P:LIB, T:トピック $Sn をダウンロード M:ダウンロードを取り消す場合はこの記事を削除してください Topic:$Sn
[0295] 00/12/20 17:31 GAE(3nxWzOCXjo.): Re:293)Re: 拡張パラメータの読み込みがおかしい? すみません。返信し忘れでした。 この件ってまだ未解決ですよね?
[0294] 00/12/20 12:44 Buckeye(UnTUYw5MC2c): 「記事属性」の「巡回指定」ってなに? 記事メニューから、表記の「記事属性」→「巡回指定」というのが選べますが、 これってなんでしょうか。 例の@niftyインターウェイ用プラグイン、ようやく公開まじかとなりました。今、 最後のデータライブラリ関係にかかっているんですが……もしかすると、上記の 指定が利用できるのかもしれないと思うんです。やりたいことは、以下のように なります。 巡回指定しておくと、データのリストだけを落としてきます(ここは完成)。次 に、このリストでユーザが指定したデータについて、 1. 補足説明ファイルだけ落とす 2. 補足説明ファイルとデータを落とす 3. 過去に補足説明ファイルを落としていたら、データだけ落とす という操作ができたらいいなと思っています。 当初は、返信記事を作るという形でユーザに指定してもらおうかと思っていたん ですが、この「巡回指定」というものの動作次第では、上記の目的に利用できそ うだと思うのです。 指定されたファイルをcmwファイルに書き出してもらえれば、あとは、プラグイ ン側で必要な情報を拾って処理します。とはいっても、1.と2.をどうやって判別 するかって問題があるので、けっきょくは、返信記事形式で指定してもらうかも しれませんが…… Best Regards, Buckeye P.S. ちなみに、機能は、以下のようになりました。 ★ フォーラム関係のサービス ・ 会議室の読み書き ・ 掲示板の読み込み(書き込み不可) ・ お知らせの読み込み ・ フォーラム、会議室、掲示板、それぞれのオープニング自動取得 ・ オプション設定(ハンドルとコメント通知メール)の変更 ・ データライブラリのリスト取得 ★ パティオサービス ・ 会議室の読み書き ・ オープニング自動取得 ・ ハンドル設定の変更 ライブラリが落とせるようになれば、@niftyコミュニティサービスのほとんどす べてが利用できるようになります。掲示板の書き込みは……実装方法も面倒なん ですが、それだけでなく、ウェブのcgi画面を見ないで、それぞれの掲示板に定 められているルールに合わせてユーザが指定できるかどうかが怪しいので、実装 を見合わせています。
[0293] 00/11/27 14:13 Buckeye(UnTUYw5MC2c): 拡張パラメータの読み込みがおかしい? あいかわらず、@nifty用プラグインの作成を続けています。今作っている部分が できたら、とりあえず、公開するつもりです。 ところで、表題の件ですが…… ダイアログの初期化などでincm_BBS.iniファイルを読み込みます。ふつうは [BASIC]セクションのみをいじりますが、今回は、[DIALOG]セクションも書き換 えています。巡回先から取り込んだ情報などを書き出したり、設定変更を行った 場合に現在の設定内容を書き出したりしているものです。 ある処理ルーチンができたので、その処理ルーチンにあわせてダイアログを書き 換える処理を書いています。コード的には間違っていないはずだと思うのに、こ れがどうもうまくいかないのです。そこで、読み込んだincm_BBS.iniファイルの 内容を書き出してみると……まず、L000の行がおかしくなっています。 L000=. となぜか、その後、あるべき内容がないのです。ダイアログを見ると、ちゃんと 文章が表示されるのですが…… この行を書き換えようとしていたので正規マッチができなかったわけです。です からともかく逃げることとして、L000の行をダミー行としてみました。これでも うまくありません。incm_BBS.iniファイルで情報を書き足しておいても、なぜか、 プラグインの頭にある内容に戻ってしまいます。 具体的には、現在、プラグインの頭でL000とL001を以下のように設定しています。 #L000=L,,掲示板、会議室などの巡回に関する詳細設定 #L001=L,,コメント通知メールの設定。現在の設定内容: このL001の行の末尾に、1〜3の数字を入れようとしているのです。 incm_BBS.iniファイルで L001=L,,コメント通知メールの設定。現在の設定内容:3 としておいても、ダイアログ初期化ルーチンでincm_BBS.iniファイルを読み込む と、 L001=L,,コメント通知メールの設定。現在の設定内容: で終わっています。 そこで、読み込みルーチンの部分を取り出してみると……ちゃんと3まで読んで くれるのです。(L000の行も全部読んでくれる) ちなみに、この読み込みルーチンは、↓のようになっています。単純に読み込ん でprint CHECK $_;で書き出しているだけなんですが……なぜか上記のような現 象が発生します。 while(<INI>){ print CHECK $_; $section = $_ if(/^\[/); if($section ne "[DIALOG]\n"){ #【DIALOG】セクション以外をまとめる $BasicSect .= $_; }else{ #-----【DIALOG】セクションの書き戻すパラメーターを抽出 # -----【DIALOG】セクションの内、会議室巡回設定行に会議室名称がある # ものをまとめる if(/read,MES.+:.+/){ $MesTitleList .= $_; }elsif (/^_NAME=.+\Q現在:\E(.*)\n$/){ # 登録済みハンドル $handle{'prev'} = $1; }elsif (/^L\d\d\d=.+\Qコメント\E.*\Q設定内容:\E/){ # コメント通知メール $cmail{'prev'} = $1; print CHECK $_; }elsif (/^L.+\Qお知らせ\E.+\Q最終更新年月日:\E(.*)\n$/){ # お知らせ更新日 $AnnRenDate = $1; } } } 同じような処理は、Lで始まる拡張パラメータだけでなく、_で始まるパラメータ でも行っており、全部で20個所以上で行っています。でも、おかしいのはここだ けです。 うーん、何が悪いんでしょう。 Best Regards, Buckeye
[0292] 00/11/15 08:03 Buckeye(UnTUYw5MC2c): Re:285)RE: INCM1.21m cmwファイルに書き出された発言のうち、一部は投稿成功、一部は投稿失敗とい うケースがありました。送信に失敗した発言には、ちゃんと元に戻っていました。 書き込み関係の機能は、これでなんとかなりそうですね。 Best Regards, Buckeye
[0291] 00/11/10 08:51 GAE(3nxWzOCXjo.): Re:289)msvcp60.dll >Office2000のコンポーネントを前提にモノを考えられるようになるには、あと、 >少なくとも1年くらいは必要なんじゃないでしょうか。私は、だいたい、マシン >サイクルは一般に3年くらいと考えているんですが、それからすると、あと2年っ >てことになりますが。 確かに一般的にはそうかもしれません...。 僕は Office も OS も新しい物を入れて、古い物はどんどん捨ててしまうので(笑) >ちなみに私の95マシンに入っていた理由は……なんのソフトについていたのかわ >かりませんが、なにかのソフトをインストールしたときに入ったんでしょう。 VC++で作られたアプリケーションでインストーラが付属しているものだと インストールされるんじゃないでしょうか。 そんなに大きいサイズでもないですし。 >このレベルのdllを使うとなると、同梱しておいて、インストーラで適切なフォ >ルダにコピーしてやるって形にしないとアプリケーションを使っているだけのフ >ツーのユーザにはハードルが高すぎると思います。 msvcp60.dll や msvcrt.dll は単純に関数をエクスポートしているだけのDLLなので、 パスが通ったディレクトリか、INCM.exeと同じディレクトリにあるだけで ちゃんとロードされるので、この点はそんなに気にしなくても大丈夫だと思います。
[0290] 00/11/10 06:56 Buckeye(UnTUYw5MC2c): Re:288)RE: INCM 1.21n おー、すばやい。落としてきました。仲間内でテストしてみますね。 ありがとうございましたm(._.)m Best Regards, Buckeye
[0289] 00/11/10 06:52 Buckeye(UnTUYw5MC2c): Re:287)RE: INCM1.21m うーん、Office2000からなんですね>msvcp60.dll 私の回りだと、Office2000を入れてる人は少ないです。仕事で使うので、マイク ロソフト製品は、どうしても必要にならない限りバージョンアップしないって人 が多いものですから(バージョンアップしないマイクロソフト製品に祟りなし… …とは限らないのがつらいところですが^^;)。あと、クライアントとなる企業 では、Office2000を使っているところが少なく、互換性の問題で、Office98あた りを使ってるって人も多いです。 Office2000のコンポーネントを前提にモノを考えられるようになるには、あと、 少なくとも1年くらいは必要なんじゃないでしょうか。私は、だいたい、マシン サイクルは一般に3年くらいと考えているんですが、それからすると、あと2年っ てことになりますが。 ちなみに私の95マシンに入っていた理由は……なんのソフトについていたのかわ かりませんが、なにかのソフトをインストールしたときに入ったんでしょう。 このレベルのdllを使うとなると、同梱しておいて、インストーラで適切なフォ ルダにコピーしてやるって形にしないとアプリケーションを使っているだけのフ ツーのユーザにはハードルが高すぎると思います。 Windowsのシステムフォルダをいじるなんて、フツーの人には恐怖の操作で すよ。 >>MFC42.dll については、Windows 95 OSR 2.5 から入っているようなので、ほ >>とんどの環境に入っています。 この段階から入っているdllなら、問題はないでしょうね。いずれにせよ、IEが 必要なんですから、そうそう古いマシンでINCMを動かす人もいないでしょう (^^;) Best Regards, Buckeye
[0288] 00/11/09 23:15 GAE(vbbj25HUgnk): Re:274)INCM 1.21n http://www.gld.mmtr.or.jp/~naofumi/incm/beta/ あんまりすんなりとはいかなかったですが(笑) とりあえず msvcrt.dll と msvcp60.dll が無くても動くようになりました。 http://www.gld.mmtr.or.jp/~naofumi/incm/
[0287] 00/11/09 21:50 GAE(vbbj25HUgnk): Re:285)RE: INCM1.21m > これで少し試験して、うまくいくようなら一般公開したいんですが、ランタイム > の問題はどうなるでしょうか。フツーの人に広く使ってもらうためには、IE入れ > ろまではいいにしても、それ以上を要求するのは難しいと思うんです(ギリギリ > が標準的なPerlをインストールしろまででしょう)。VC++のランタイムなしに戻 > すのは大変でしょうか? msvcp60.dll は最近のMicrosoft製品がインストールされている 環境ならほとんど入っているようなので問題ないかなあと思ってます。 これを使わないようにすることができるかどうかは、 ちょっと調べてみないとわかりません。 Access 2000 Commercial Internet System 2.0A FrontPage 2000 MapPoint 2000 Office 2000 Developer Office 2000 Premium Office 2000 SR1 Outlook 2000 PhotoDraw 2000 Platform SDK (Sept. 1999) Visual C++ 6.0 Visual Studio 6.0 Windows 2000 BETA RC2 Windows 2000 Professional Windows 2000 Server Windows Millenium Edition MFC42.dll については、Windows 95 OSR 2.5 から入っているようなので、 ほとんどの環境に入っています。 http://www.gld.mmtr.or.jp/~naofumi/incm/
[0286] 00/11/09 16:50 Buckeye(UnTUYw5MC2c): Re:285)RE: INCM1.21m 多少むりやり、複数会議室に同時発言をしてみました(^^;) ちゃんと、複数のcmwファイルが書き出されていたようですし、プラグイン側も、 ちゃんと、ある限りのcmwファイルを処理してくれたようです。 Best Regards, Buckeye
[0285] 00/11/09 15:59 Buckeye(UnTUYw5MC2c): Re:284)RE: INCM1.21m はい、いいようです。とりあえず、複数のcmtファイルのうちの1つについて、複 数発言をするというのはうまくいきました。送信属性のUを削除したものは、送 信済みに移動します。ただし、送信属性を削除しなかったらどうなるかの試験は、 まだしていません。 複数のcmtファイルに投稿発言を書いたときの試験もすべきなんだろうけど…… 発言練習みたいなことができるとこって、1フォーラムに1会議室くらいなんです よねぇ。うーん、あっちこっちの話にムリヤリ割り込み参加してみるかぁ(爆) これで少し試験して、うまくいくようなら一般公開したいんですが、ランタイム の問題はどうなるでしょうか。フツーの人に広く使ってもらうためには、IE入れ ろまではいいにしても、それ以上を要求するのは難しいと思うんです(ギリギリ が標準的なPerlをインストールしろまででしょう)。VC++のランタイムなしに戻 すのは大変でしょうか? INCM 1.21j→1.21kでINCMのサイズがかなり小さくなっているので、その際に一 部の機能をdll側に追い出した(というか、dllを呼ぶ形に変更した)んだと思う んです。1.21kで実装されたhtmlビュー関連の機能でVC++のランタイムがどうし ても必要なのでなければ、VC++のランタイムなしに戻していただけるとありがた いんですが…… Best Regards, Buckeye
[0284] 00/11/08 22:56 GAE(vbbj25HUgnk): Re:274)INCM1.21m プラグイン書き込みに関する不具合を修正してみました。 これでどうでしょう? http://www.gld.mmtr.or.jp/~naofumi/incm/beta/incm121m.lzh http://www.gld.mmtr.or.jp/~naofumi/incm/
[次のページ]