mixiにアクセス
WWW::Mixiモジュールを使うと簡単です。
Perlモジュール/WWW::Mixiに詳しい情報があります。
ppmでもインストールできますが、バージョンが古くて(2006/05/07現在バージョン0.31)機能が少ないので上記サイトかCPANのものを使ってください。
use strict;
use warnings;
use Encode;
use WWW::Mixi;
my $mixi = WWW::Mixi->new(
'メールアドレス',
'パスワード',
'-log' => 1,
'-logcode' => 'sjis'
);
my $login = $mixi->login();
if ($login->is_error) {
die get_error_message($login);
}
my $res = $mixi->get('home.pl');
if ($res->is_error) {
die get_error_message($res);
}
my @items = $mixi->parse_home_new_bbs($res);
print "[コミュニティ最新書き込み]\n";
print "\n";
foreach my $item (@items) {
printf "Time : %s\n", $item->{time};
printf "Subject: %s\n", get_convert_string($item->{subject});
printf "Name : %s\n", get_convert_string($item->{name});
printf "Link : %s\n", $item->{link};
print "\n";
}
my $show_log = $mixi->get('show_log.pl');
if ($show_log->is_error) {
die get_error_message($show_log);
}
my @logs = $mixi->parse_show_log($show_log);
print "[足あと]\n";
print "\n";
foreach my $log (@logs) {
my $name = $log->{name};
Encode::from_to($name, "euc-jp", "cp932");
printf "Time: %s\n", $log->{time};
printf "Name: %s\n", get_convert_string($log->{name});
printf "Link: %s\n", $log->{link};
print "\n";
}
sub get_convert_string {
my $str = shift;
Encode::from_to($str, "euc-jp", "cp932");
return $str;
}
sub get_error_message {
my $res = shift;
die sprintf "%s(%s)",
$res->request->uri,
get_convert_string($res->status_line);
}
