twitter statusから「パスワード変えろ」的なメールが来たので何かと思ったら、そういうことだったのねという記事。変えておこう
Powered by Livedoor Clip
twitter statusから「パスワード変えろ」的なメールが来たので何かと思ったら、そういうことだったのねという記事。変えておこう
修造BOTのセンスはやはり侮りがたい
どこもかしこも鳥だらけで、twitter初期の人気を支えた猫の姿が微塵もない。すっかり変わっちまったな…オレもお前も…(エラそう)
いわゆるミニブログサービスは現在TwitterとWassrを使っているのですが、徐々にWassrで発言することの方が多くなりました。
メールでの投稿や画像付きのポストを標準でサポートしていること、携帯電話版のページが使いやすいこと、のメリットがやはり大きいですね。投稿の半分くらいは携帯からやってる気がする。
でも、このままTwitterで発言しなくなるのも何か寂しいので、Wassrでの自分の発言をそのままTwitterに投稿するスクリプトを作ってみました。
スクリプトのルール:
#!/usr/bin/perl use strict; use warnings; use LWP::UserAgent; use XML::Simple; use Encode; use CGI::Util qw(escape); # Wassrのアカウント my $WASSR_ID = 'WassrのID'; my $WASSR_PASSWORD = 'Wassrのパスワード'; # Twitterのアカウント my $TWITTER_ID = 'TwitterのID'; my $TWITTER_PASSWORD = 'Twitterのパスワード'; my $LIMIT_TIME = 60 * 10; # 転送する対象発言の規定時間(秒) my $PASS_CHAR = '.'; # 末尾がこの文字列の場合、転送対象にしない my @post_list = (); # Wassrのポストを取得する my $ua = LWP::UserAgent->new; $ua->credentials('api.wassr.jp:80', 'API Authentication', $WASSR_ID, $WASSR_PASSWORD); my $req = HTTP::Request->new('GET', 'http://api.wassr.jp/statuses/user_timeline.xml'); my $res = $ua->request($req); die $res->status_line if (!$res->is_success); my $xml = XMLin($res->content); # 発言した順に並べ替える my @id_list = sort(keys(%{$xml->{status}})); foreach my $id (@id_list) { my $item = $xml->{status}->{$id}; # 誰かへのレスポンスは対象としない next if (ref($item->{reply_user_login_id}) ne 'HASH'); # 規定時間以上前の発言は対象としない next if (time() - $item->{epoch} > $LIMIT_TIME); # "."で終わる発言は対象としない next if (substr($item->{text}, -1 * length($PASS_CHAR)) eq $PASS_CHAR); # 画像が投稿されている場合、それも投稿に含める my $text = $item->{text}; $text .= " $item->{photo_url}" if (ref($item->{photo_url}) ne 'HASH'); # URLエスケープする $text = escape(encode('utf-8', $text)); # 発言リストに追加 push @post_list, $text; } # Twitterに投稿する $ua->credentials('twitter.com:80', 'Twitter API', $TWITTER_ID, $TWITTER_PASSWORD); foreach my $text (@post_list) { $req = HTTP::Request->new('POST', 'http://twitter.com/statuses/update.xml?status=' . $text); $res = $ua->request($req); last if (!$res->is_success); } # おわり __END__