★ INCM Plug-in開発掲示板 ★ TinyGrass Ver0.32a [戻る]
[0151] 00/09/26 00:44 GAE(vbbj25HUgnk): Re:150)https
> 引数としてurlとかを正しく渡せれば、あとはIEのコンポーネントが処理してく
> れるって可能性があると思うんです。
> この辺は、GAEさんが詳しいのかな……
あまり詳しくないです。
というより、英語がまともに読めないので、
あまり理解せずに使ってるというのが現状です(笑)
httpsについては、hotmailのプラグインを作ろうとしていたときに
ちょっとカベになりました。
結局解決できたかどうかわからないうちに企画倒れになってます。
また明日見直してみようとは思いますが、
ポート番号が違ってて接続できずにハマった記憶はあります(爆)
(430番くらいです、確か)
http://www.gld.mmtr.or.jp/~naofumi/incm/
[0150] 00/09/25 20:28 Buckeye(UnTUYw5MC2c): Re:148)IEのコンポーネントは!?
IEのコンポーネントは使えないでしょうか。
前発言を書いた後、子どもを風呂にいれながらぼんやりと考えていて、ふと、思
いつきました。GAEさんも、「IEを活用すればカンタンに(っつうても私なんか
には難しいですが)アプリケーションが開発できる」みたいなことをINCMのヘル
プで書いておられたし……
IEはとうぜん、httpsへのアクセス手段を持っているわけですから、それを借用
できれば話は簡単になりますよね。今までツンドクしていて今日初めて開いた
perlの本によると、ちゃんと外部プログラムと連携する方法がperlには用意され
ているようですから(まともなプログラミング言語なら当たり前ですね^^;)、
引数としてurlとかを正しく渡せれば、あとはIEのコンポーネントが処理してく
れるって可能性があると思うんです。
この辺は、GAEさんが詳しいのかな……
Best Regards,
Buckeye
[0149] 00/09/25 20:28 Buckeye(UnTUYw5MC2c): Re:148)RE: httpsへ・・・(3)Net::SSLeayその他のインストール
どうもいろいろとありがとうございます。私が自分でここまで到達するには、何
週間かかかっただろうと思います(^^;)
やっぱり、「環境が整っていれば可能」なんですねぇ。私もトライしてみますが
……うーむ、うまくできるかどうかイマイチ自信がありません。まして、パソコ
ン初心者に勧められる方法じゃありませんねぇ、たしかに。
でも、最新のperlでも標準モジュールに組み込まれていない機能は、もっと前の
perlライブラリでは実現されているわけないですよね。かといって、自分でそん
なもん、書けるわけないし……うーむ、困ったなぁ。
>>しかし、プラグイン作者であればまだしも、その他のユーザーにこれをやれと
>>言うのは・・・どうでしょうね?
ちなみに、私は「プラグイン作者」なんですか? 自分ではそんなつもりはまっ
たくなかったんですが……いつのまになっちゃったんだろ(爆)
Best Regards,
Buckeye
[0148] 00/09/25 15:32 でぐ(MVbPwfyRCtk): Re:145)httpsへ・・・(3)Net::SSLeayその他のインストール
ActivePerl使いがモジュールをコンパイルできないときはActiveStateへ。
ActiveStateのモジュール置き場に言っても、そのまんまNet_SSLeayってのはありません。
「package.lst」を見るとCrypt-SSLeayがLWPをOpenSSLに対応させるとか何とか。
これをダウンロードしてください。
とても重要だと思う注意!
Perl5.005用のモジュール置き場と5.6用のは別ディレクトリになっています。
私と同様、5.6を使っている人は5.6用のCrypt-SSLeay.tar.gzをダウンロードしてください。
で、解凍するとblibとかいうディレクトリの下にいろんなのができるので、PPM・・・できないですね。
あてずっぽうで、blib\libの下のNetフォルダをPerlのlibの中に入れます。
同様に、CryptをPerlのsite\libの中に入れます。
見ると「auto」というディレクトリがあるので、blib\archの下のautoもPerlのsite\libの中に入れます。
で、動かすと・・・掲示板のデータらしいのが取れますね?
私は、取れました。
ということで、長くなりましたが、これでhttpsへのアクセスができるようになるはずです。
lwpcookの例を見る限り、LWP::uaの使い方はhttpアクセスのときと何ら変わりません。
ということは、LWP::uaを使ったプラグインは、ここまでの手順を(各ユーザーが)踏めば、そのままでhttpsにたいおうすることになりますね。
INCM.pl使用のものとか、未完成の私の自作Yahoo! Newsとか(笑)。
しかし、プラグイン作者であればまだしも、その他のユーザーにこれをやれと言うのは・・・どうでしょうね?
-----
ActiveStateのモジュール置き場へは、河馬屋二千年堂(Perlの小技)さんによれば「http://www.activestate.com/packages/zips/」からいけるそうです。
実際にはここから5.005のディレクトリへ飛ばされるので、5.6の人は1つ上のディレクトリに移ってみてください。
[0147] 00/09/25 15:32 でぐ(MVbPwfyRCtk): Re:145)httpsへ・・・(2)IO::Socket:SSLのインストール
LWPではhttpsへのアクセスを、LWP::Protocol::httpsでやってるそうです。
で、このスクリプトを見ると、「IO::Socket::SSL」か「Net::SSL」をuseしています。
・・・ないじゃん、どっちも。
以下、ちょっと愚痴っぽくなります。
CPANを探すと、そのまんま「IO-Socket-SSL-0.75.tar.gz」ってのと、微妙に違う「Net_SSLeay.pm-1.05.tar.gz」ってのがあります。
「IO-Socket-SSL-0.75.tar.gz」をダウンロードして解凍、READMEを読んでください。
「you need to have Net_SSLeay v1.03 or newer installed」と書いてあります。
OK、それならさっきCPANにあったやつだ。
そう言いながら、libの中のIOフォルダを、Perlのlibディレクトリに放り込んでください。
で、Net_SSLeayをダウンロードして解凍、README.Win32を見ると。
VC5.0とActivePerlとOpenSSLをインストールしてからmakefileうんぬん。
・・・VC持ってないし・・・と言うか、OpenSSLって何よ?
私はここがクリアできませんでした。ということで、コンパイルする方法は知りません。
同様にクリアできなかい方は、(3)にもお付き合いください。
-----
私の場合、CPANへは、「Perl初心者の部屋」から「CPANサーチ」経由で飛んでいます。
[0146] 00/09/25 15:32 でぐ(MVbPwfyRCtk): Re:145)httpsへ・・・(1)サンプルスクリプト
> 新しいバージョンのperlについてくるモジュールでは、httpsへの
> アクセスができるようです(LWPというモジュールらしい)。
ほとんど、lwpcookの例そのままですが、環境が整っていれば次のスクリプトでhttpsでのアクセスを実験できます。
# ---ここから---
use LWP;
use LWP::UserAgent;
# LWPモジュールのバージョン確認(私の使っている3月15日版は5.45・・・念のため)
print "This is libwww-perl-$LWP::VERSION\n";
# 使用例(lwpcookのものを、URLだけ一 五明さんが「以前挫折した」と言われているものに変更。)
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => 'https://www.sec.so-net.ne.jp/DCEXPRESS/bbs/dcexpress/wforum.cgi');
#my $req = HTTP::Request->new(GET => 'https://www.helsinki.fi/');
my $res = $ua->request($req);
if ($res->is_success) {
print $res->as_string;
} else {
print "Failed: ", $res->status_line, "\n";
}
# ---ここまで---
ただし、「環境が整っていれば」というのが微妙な点です。
8月31日にインストールした私の環境では、lwpcookにhttpsについての記載があるのにNGでした。
つまり、最後のほうの「Failed: 〜」なメッセージが出てしまいます。
ってことで、失敗した方は(2)以下にお付き合いください。
[0145] 00/09/25 10:13 Buckeye(UnTUYw5MC2c): Re:144)ActivePerlのヘルプを検索すると……
新しいバージョンのperlについてくるモジュールでは、httpsへのアクセスがで
きるようです(LWPというモジュールらしい)。こうすりゃいいよってプログラ
ム例もあるので、たぶん、デコード処理もやってくれるんではないかと……今週
は本業がめちゃ忙しいので、来週にでもテストをしてみようと思ってはいます。
ただ、perlのバージョンによって違うようで、昨晩確認した、自宅側にインスト
ールしてあるperlにはhttpsへのアクセス方法が記載されていましたが、今、事
務所側にあるperlをみてみると、こちらにはありません。事務所は書籍からのイ
ンストールでたぶん昨年後半のバージョン、自宅はインターネットからダウンロ
ードしたものでこの夏のバージョンなので、その違いでしょう。
プログラムの頭に、どうも、perlのバージョンが〜以上じゃなきゃいけないって
指定されていたようなので、あのモジュールを使ったのでは、誰でも使えるって
ものにはならないのかもしれませんねぇ。
うーん、なんか、深みにはまりつつあるような気が……(^^;)
Best Regards,
Buckeye
[0144] 00/09/25 07:13 一 五明(YMjHyfzdazU): Re:143)すみません前に挫折したところです(^^;
>考えてみれば、https://にhttp://でアクセスしようとしても拒否されるのは当
>然なんですが……どうしたらいいんでしょうか。
例え接続出来てもSSLのデコード処理が要るみたいです。
PerlとSSLで検索すれば何か出てくるかもしれません…。
http://kt.sakura.ne.jp/~timeflow/M/
[0143] 00/09/24 17:12 Buckeye(UnTUYw5MC2c): https://へのアクセス
表題の件は、どうやったらいいんでしょうか。
@nifty IWへの接続がどうにもできないといろいろ調べているうちに、http://
ではなくhttps://なのが問題らしいと気づきました。
とりあえず、ホスト名とかの抽出ルーチンは書き換えました。その後のhttpreq
サブルーチンでエラーになります。具体的には、
last unless(connect(HTTP, pack("S n a4 x8", 2, $port ,$addr)));
で終わってしまうのです。
考えてみれば、https://にhttp://でアクセスしようとしても拒否されるのは当
然なんですが……どうしたらいいんでしょうか。
Best Regards,
Buckeye
[0142] 00/09/10 07:06 夏賀 博(ks4oZMAFszU): Re:141)RE: Perl入門のサンプルファイル
こんにちは、夏賀です。
回答ありがとうございます。無事、サンプルファイルをダウンロード出来ました。サンプルを参考に、過去の連載記事をぼちぼちと読み進めています。
> でもこれ、CMLIB15.PLを分離する前ので、機能的にも古いので
>書き直した方がよさそうなんですよね…。
改訂版も含め、連載の続きをお待ちしています。
では、失礼します。
http://homepage1.nifty.com/kaga/
[0141] 00/09/08 07:30 一 五明(YMjHyfzdazU): Re:140)RE: Perl入門のサンプルファイル
>http://www.teleway.ne.jp/~timeflow/CM_SAMPL.LZH
ページ引越しに伴い
http://kt.sakura.ne.jp/~timeflow/M/CM_SAMPL.LZH
に移動しています。
でもこれ、CMLIB15.PLを分離する前ので、機能的にも古いので
書き直した方がよさそうなんですよね…。
http://kt.sakura.ne.jp/~timeflow/M/
[0140] 00/09/07 23:06 夏賀 博(elgX4rm9.sw): Perl入門のサンプルファイル
INCM掲示板の方に書き込みしたんですが、MiniBBS2000プラグインで読めない掲示板があり、SOSを出しました。
しかし、いつまでも人様の力に頼ってばかりなのもなんなので、自力でプラグインを修正出来ることを目標にこの掲示板に連載されているPerl入門を読んでがんばろうとしたのですが…。しょっぱなから躓きました(^^;NO.32の発言で出てくる下記のサンプルファイルが、リンク先が見つからずに入手出来ません。これは今どこにあるのでしょう?もし、今は無くなってしまっているのであれば、再アップしていただけませんか?
http://www.teleway.ne.jp/~timeflow/CM_SAMPL.LZH
では、よろしくお願いします。
http://homepage1.nifty.com/kaga/
[0139] 00/09/07 09:20 qq(EI1VmPkBzv6): qas
<font color="red">test</font>
[0138] 00/09/02 13:38 GETWILD'74(Qk25uvB38zc): Re:137)RE: 発言者が同じになります
>発言者がみんな同じになってしまいます。
>おそらくその巡回時の、最も新しい発言者の名前になっているようです。
たぶんINCM掲示板のほうで指摘されたのと同じかと思います。
修正版をアップしたので、それで試してみて頂けますか。
http://www07.u-page.so-net.ne.jp/yd5/march-o/
[0137] 00/09/02 12:44 まこっちゃん(R5XL8TvmUmA): 発言者が同じになります
GETWILD'74さん、すばやい新Nifty掲示板対応ありがとうございます。
早速使わせていただいていますが、1度の巡回で取ってきた発言の
発言者がみんな同じになってしまいます。
おそらくその巡回時の、最も新しい発言者の名前になっているようです。
[0136] 00/09/01 10:42 GETWILD'74(Qk25uvB38zc): Re:135)RE: 巡回できました。
>>発言者が「00」になっていたり、
修正版をアップしました。
http://www07.u-page.so-net.ne.jp/yd5/march-o/
[0135] 00/09/01 10:14 GETWILD'74(Qk25uvB38zc): Re:134)RE: 巡回できました。
>発言者が「00」になっていたり、
メールアドレスのみでHPアドレスがない場合に発生する現象です。
直したつもりだったんですが、ダメみたいですね。
いろいろとやってみます。
>発言したら、発言番号が*になっていたりします。
え〜と、これはINCMで発言したら掲示板にはちゃんと書き込まれてるんですよね。
で、巡回したら発言番号が取得できないということでしょうか?
http://www07.u-page.so-net.ne.jp/yd5/march-o/
[0134] 00/09/01 00:05 McCoy(TdyAw47RI6o): 巡回できました。
GETWILD'74さん、こんにちは。
プラグイン使わせていただきました。
どうもありがとうございました。
無事に巡回できましたが..、
ちょっとおかしいです。(^^;
発言者が「00」になっていたり、
発言したら、発言番号が*になっていたりします。
全然知識がないので、自分では作れませんので、
しばらくは、これを使っていきます。m(__)m
[0133] 00/08/31 17:21 GETWILD'74(Qk25uvB38zc): Re:132)RE: niftyの掲示板が変更になりました..
一応できたみたいです。
あんまり確認してないんでおかしいかも。(^^;
初めてツリーのが出来た。
でも、ツリー処理のところはちょっと変えただけだったりして。
以下に数個のプラグインと一緒に置いてあります。
http://www6.wind.ne.jp/okuzawa/cgi-room/incm_plugin/incm_plugin.htm
http://www07.u-page.so-net.ne.jp/yd5/march-o/
[0132] 00/08/31 00:06 McCoy(Lh8dq.RGMss): niftyの掲示板が変更になりました..
みなさま、はじめまして。
INCMを便利に使わせていただいておりました。
本日、@niftyの掲示板システムが変更になりまして、
INCMが@niftyの掲示板を読み書きすることができなくなってしまいました。
今後ともINCMを使っていきたいと思っておりますので、
是非とも、@nifty掲示板を読み書きできるプラグインを開発していただけないかと、
掲示板に書き込んでいます。
どうか、よろしくお願いします。
http://homepage1.nifty.com/McCoy/index.htm
[0131] 00/08/11 10:44 里道(esjCiRi1ZEg): Re:130)れれ。like設定
一 五明さん。レスありがとうございました。
likeに関してはいろいろと試しております。
実は一部については、毎回CMTファイルを直接編集というアホな事をやっております。
[0130] 00/08/09 07:50 一 五明(YMjHyfzdazU): Re:124)RE: likeの設定なんですけど
>題名の中に「、」や「。」がある場合その位置で題名が終了してしまいます。
>(他のプラグインでも同じ様なことがあります。)
タイトルが無いシステムで本文一行目をタイトルとして抽出する際にこう
いう処理をした覚えはあります。
あとJperl前提のプラグインをPerlで使うと漢字コードの関係でこうなる可
能性はあります。
Likeに関してはよく判りません。
RAYさんはこっちの掲示板見てないですかね…?
INCM掲示板2に書いた方がいいかもしれません。
個人的にはlikeの設定専用掲示板を作るか…どうせなら確か.icfはmamimi
の.tplの上位互換だったと思うので、カスタマイズに関する掲示板を共有
するような形にして、互いのユーザーに利益のある形に出来ないかなあ…
とも思ってますが。
(EdMaxにも似たような設定ファイルあった気が)
http://kt.sakura.ne.jp/~timeflow/MENU.HTM
[0129] 00/08/09 07:50 一 五明(YMjHyfzdazU): 自分では判ってるつもりでも
人に説明するって難しいですね。
近々サポート困難になりそうなので、何とか早期にサポート出来る人を
増やしたいところなのですが…
http://kt.sakura.ne.jp/~timeflow/MENU.HTM
[0128] 00/08/09 07:50 一 五明(YMjHyfzdazU): ▼ Perl入門(5-3)パターンマッチを試してみる
では、HTMLのソース中で投稿者名の部分が
投稿者:GAE<br>
のような形になっている掲示板があるとします。勿論「GAE」の部分は投稿者
毎に変わります。その1つの書き込みを含む文字列が $_ に入っているとして、
そこから正規表現で投稿者名を取り出すには、例えば
/投稿者:(.*?)<br>/;
のようにします。
正規表現中では基本的に、英数文字や漢字等はそのままその文字を表し、記号
には特殊な意味を持つものが多いです。上の例で言うと、「<」と「>」はそのま
ま文字ですが、「(.*?)」の部分は特殊な意味を持ちます。
まず、( 〜 )で囲まれた部分は、正規表現が文字列に一致(マッチ)した場合、
特殊変数 $1に入ります。正規表現中に複数の ( 〜 ) が出てきた場合、$2,$3,$4 …
に入ります。
(勿論、 $_ が「投稿者:」と言う文字列を含んでない場合等、一致しない場
合も有ります。その場合は $1 は空っぽになります)
次に、「.」は、「改行以外の何か1文字」です。
で、「*?」は、「直前の文字の0個以上の繰り返して最短一致」です。
ちなみに「*」のみだと、「直前の文字の0個以上の繰り返して最長一致」です。
「.*?」だと、「改行文字以外の何でもいいから0個以上並んだもの」に一致し
ます。
要するに上の正規表現は、「投稿者:」の後ろに何かくっ付いていて、さらに
その後ろに「<br>」がくっついていたら、何かくっついてるやつ(つまり投稿者名)
を $1に入れよ…と言う意味になります。
ちなみに最小一致と最短一致の違いですが、$_に入っている文字列が
「<hr>投稿者:GAE<br><br>本文です<br>」
だとして、
/投稿者:(.*?)<br>/; #最短一致
だと、$1の値は「GAE」になりますが、
/投稿者:(.*)<br>/; #最長一致
だと、$1の値は「GAE<br><br>本文です」になります。
最長一致の場合は、その後ろにくっついている文字(この場合<br>)を、文字
列の最後までサーチして、その直前までを結果にします。
「.」と組み合わせて使う場合は最短一致の方が便利なことが多いようですが、
他の文字や記号と組み合わせて使えば最長一致が便利に使える場面も多いです。
http://kt.sakura.ne.jp/~timeflow/MENU.HTM
[0127] 00/08/09 07:50 一 五明(YMjHyfzdazU): ▼ Perl入門(5-2) 正規表現とは
正規表現とは、regular expressionの訳語で、たぶん「どんな文字列も単純な
規則に当てはめて表現する」…のようなニュアンス…だと思います。
Winだと似たような例として、例えばメモ帳の「ファイルを開く」メニューで、
ファイル名のところに「*.txt」と出てるのがあります。「*」の部分は何にでも
一致し、.txtの部分は拡張子が「.txt」のファイルのみに一致するので、結果的
に一致するファイル(そのフォルダ内の、拡張子が.txtのファイル全部)だけが
表示されるわけです。
このファイル名に対する「*.txt」のような表記(ワイルドカード)を強力に
したようなものが正規表現です。
その正規表現を使って、
変数名 =~ /(正規表現)/;
とすると、変数が「正規表現で表される文字列」を含んでいるかどうかを調べ
ることが出来ます。これを「パターンマッチを取る(行う/掛ける)」とも言い
ます。
これで変数が特定の文字列(HTMLのタグ等)を含んでいるか否かを調べたり、
変数中の抽出したい部分だけを取り出したりすることが出来るわけです。
なお、変数が特殊変数の $_ である場合、「変数名 =~ 」の部分は省略可能です。
先程解説したように、掲示板のHTMLの内容は $_ に読み込まれていきますので、
簡単なINCMプラグを作るだけなら変数名は考えなくてもいいかもしれません。
(ただしHTMLの組みかたによっては一度抽出したものに再度パターンマッチ掛
けたりする必要も出てきます)
http://kt.sakura.ne.jp/~timeflow/MENU.HTM
[次のページ]