nDiki
2009年3月20日 (金)
■ Twitter のアイコンを Perl スクリプトで更新する (改)

Twitter のアイコンを更新する Perl スクリプト (記事) が最近失敗することが多くなった。 どうやら同じファイル名の画像をアップロードするとうまく更新されないようなので、日時にもとづいたファイル名にしてからアップロードするようにしてみた。
最初に作った時から若干 Twitter のページ構造が変わってスクリプトも修正していたので、それと合わせると下記になる。
今のところ順調にアイコンチェンジできている感じだ。
#!/usr/bin/perl
use strict;
use warnings;
use WWW::Mechanize;
use File::Temp qw(tempdir);
use File::Spec;
use File::Copy;
die "no file name" if @ARGV == 0;
my $file_name = $ARGV[0];
my $name = 'ユーザ名';
my $password = 'パスワード';
my $mechanize = WWW::Mechanize->new();
$mechanize->get('http://twitter.com/');
die unless $mechanize->success;
$mechanize->submit_form(form_number => 2,
fields => {
'session[username_or_email]' => $name,
'session[password]' => $password}
);
die unless $mechanize->success;
$mechanize->follow_link(url => '/account/settings');
die unless $mechanize->success;
$mechanize->follow_link(url => '/account/picture');
die unless $mechanize->success;
my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst)
= localtime(time);
my $tmpdir = tempdir(CLEANUP => 1);
$file_name =~ /.*(\..*)$/;
my $suffix = $1;
my $tmp_file_name = File::Spec->catfile(
$tmpdir,
sprintf("%04d%02d%02d%02d%02d%02d$suffix",
$year + 1900,
$mon + 1, $mday, $hour, $min, $sec
));
copy($file_name, $tmp_file_name) or die $!;
$mechanize->submit_form(
form_number => 1,
fields => {'profile_image[uploaded_data]' => $tmp_file_name}
);
die unless $mechanize->success;
[ WWW::Mechanaize ]
- Flickr の写真を自動的に Twitter アイコンにする (2008-03-13)
- Twitter のアイコンを Perl スクリプトで更新する (2008-03-13)
- 今日のさえずり - 「コメ兵」を「ベイヘイ」っていうな (2009-03-19)
- Twitter への写真投稿を再び Flickr へ (2010-12-26)
- 今日のさえずり: オフィスの冷蔵庫になか卯の紅生姜が3袋も (2010-05-10)
■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザインProcess Time: 0.181466s / load averages: 1.07, 1.14, 1.01
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker
Base theme by Nana (for tDiary)


◇ Twitter やってます。この記事が気にいったらぜひ twitter.com/Naney の follower になってください。
◇ 2GB 無料のオンラインストレージサービス Dropbox に次のリンク先から登録すると今なら 250MB プラス! → Dropbox