マイミクシィ最新日記のRSS

普段あまりログインしないのですが、mixiの中でしか日記を書いていない人がいるので適当にでっち上げてみました。

#!/usr/bin/perl

use strict;
use WWW::Mechanize;
use XML::RSS;
use URI;
use Jcode;

my $EMAIL = 'メールアドレス';
my $PASSWORD = 'パスワード';
my $TITLE= 'マイミクシィ最新日記';
my $URL = "http://mixi.jp/new_friend_diary.pl";

my $mech = WWW::Mechanize->new();
$mech->get($URL);
$mech->field('email', $EMAIL);
$mech->field('password', $PASSWORD);
$mech->submit();
$mech->get($URL);
my $content = $mech->content;

my $rss = new XML::RSS(version => '1.0');
$rss->channel(
    title       => $TITLE,
    link        => $URL,
    description => $TITLE,
);

$content =~ s!(?d?d?d?d)年(?d?d)月(?d?d)日 (?d?d):(?d?d)</td>?s.*?href=(.*?)>(.*?)</a> ?((.*?)?)!
$rss->add_item(
    title => $7,
    link  => URI->new_abs($6, $URL), 
    dc => {
        date    => "$1-$2-$3T$4:$5+09:00",
        creator => $8
    }
)!ge;

print "content-type:application/xml?n?n" if $ENV{GATEWAY_INTERFACE};
print Jcode->new($rss->as_string)->utf8;
  • 無保証
  • ソースそのままコピペしたらめちゃめちゃ
    • 少し直しました
  • ソースはEUCで保存する必要があります
  • WWW::MechanizeとかXML::RSSとかJcodeとかがインストールされている必要があります
  • RSSの出力結果はbloglinesでしかチェックしてません
  • mixi外で日記を書いている人へのリンクは意図的にスルーしてます
  • 個別の日記のRSSは「antipop - 初めての Perl」がベンリです
    • でも足跡残りまくりになるのかな