command line interface mixi (1)
2007/02/24
これから数回に分けてちょっとづつコマンドラインインターフェースのmixiクライアントを作ってみます。だんだんに機能をつけていけばよいということで。
#!c:/Perl/bin/perl use strict; use warnings; use Term::ReadLine; use WWW::Mixi; use Data::Dumper; my $mixi = new WWW::Mixi( $mail_address, #メールアドレス $passwd, #パスワード -log => 10, -logcode => 'sjis'); #環境変数(HTTP_PROXY)からproxy情報を読む $mixi->env_proxy(); my $response = $mixi->login(); my %commands = ( 'q' => \&quit, 'quit' => \&quit, 'exit' => \&quit, 'h' => \&help, 'help' => \&help, 'friend_list' => \&friend_list); my $term = new Term::ReadLine 'command line interface mixi'; my $OUT = $term->OUT || \*STDOUT; while (defined ($_ = $term->readline("mixi> "))) { my $input = $_; { no strict "refs"; if ($commands{$input}) { &{$commands{$input}} ; } else { print $OUT "ERROR: 不明なコマンドです。 [$input]\n"; help(); } } } sub quit { exit; } sub help { print $OUT <<EOD; q 終了する。 h help ヘルプを表示する。 friend_list マイミク一覧を表示する。 EOD } sub friend_list { my @friend_list = $mixi->get_list_friend(); print "friend_list: " . Dumper(@friend_list); } exit; # vim: ts=4 sw=4 expandtab
Term::ReadLine という便利なモジュールがあったので、ここまでは非常に簡単でした。%commandsのHashで、入力されるコマンドと実行するサブルーチンを定義しています。今のところ、終了とヘルプ表示しか書いていません。マイミク一覧表示は、Dumpしてるだけだし、windowsで実行してるので文字化けしてます。
ソースも改善の余地がありまくりますが、今日はここまで。