2009/02/27

Mechanizeを使ってTwitterのアイコンを変更

@riywoさんのTwitterのアイコンに自動で文字入れたりするPlaggerが楽しそうで刺激されたので、Twitterのアイコンを変更するスクリプトを書いてみた。Mechanizeを使って画像ファイルをPOSTしてるだけです。Mechanizeを使うのは初めてだったので苦戦しました。Cronで6:30と20:30に実行して、昼と夜でアイコンに切り替えます。


#! /usr/bin/ruby -Ku

require 'rubygems'
require 'mechanize'
require 'date'


begin
uname = "USERNAME"
upass = "PASSWORD"

agent = WWW::Mechanize.new
page = agent.get('http://twitter.com/login')
f = page.forms.first
f.field_with(:name => 'session[username_or_email]').value = uname
f.field_with(:name => 'session[password]').value = upass
data0 = agent.submit(f)

data1 = data0.link_with(:text => 'Settings').click
data2 = data1.link_with(:text => 'Picture').click
f = data2.forms.first
if DateTime.now.hour > 6 and DateTime.now.hour < 20 then
f.file_uploads.first.file_name = "twDay.png"
else
f.file_uploads.first.file_name = "twNight.png"
end
agent.submit(f)

rescue
print "RuntimeError: ", $!, "\n";
end

exit