Subscribed unsubscribe Subscribe Subscribe

Wassrタイムラインをコマンドラインから覗く

Wassrを堂々とブラウザで開くのも何だか気が引けるので。

#!/usr/bin/perl
use strict;
use warnings;

use Net::Wassr;
use Encode;

# ユーザー情報の入力
# 例:
# username=hogefugapiyo
# password=********
my %conf;
for (<>) {
    $conf{$1} = $2 if $_ =~ /^(.*)=(.*)$/;
}

# インスタンスの生成
my $wassr = Net::Wassr->new(
    user => $conf{'username'},
    passwd => $conf{'password'},
    );

# friends_timelineからデータを取得
for my $data (reverse(@{$wassr->friends_timeline})) {
    # レスとしての発言の場合は引用元を表示
    if ($data->{'reply_user_nick'}) {
	print "> ";
	if ($data->{'reply_message'}) {
	    print utf8encode($data->{'reply_message'}), " ";
	} else {
	    print "非公開 ";
	}
	print "by ", utf8encode($data->{'reply_user_nick'});
	print "\n";
    }
    # 発言内容の表示
    print utf8encode($data->{'html'}), "\n";
    # 名前と時間の表示
    print "by ", utf8encode($data->{'user'}->{'screen_name'}), " ";
    print "at ", scalar(localtime($data->{'epoch'})), "\n";
    print "\n";
}

# UTF-8エンコーディング
sub utf8encode {
    return Encode::encode('UTF-8', $_[0]);
}

Net::Wassrの入手はこちらから。
http://svn.coderepos.org/share/lang/perl/Net-Wassr


参考:id:nekokak:20070606:1181109551


最初はWWW::Wassrも使ってみようと思ってたけど、今のところ必要なさそうなのでNet::Wassrで。あとWWW::Wassrの_parseがうまく動いてなかったような気が・・・?


あとはTwitterのタイムラインと合成してみたり、ヒトコトの投稿やreplyなんかもちゃんと実装していきたいところ。