ちょっと時間ができたので、mechanizeってものを使って、mixiに日記を投稿するスクリプトを書いてみることにしました。以下がソース。
#!/opt/local/bin/ruby require 'rubygems' require 'mechanize' require 'kconv' USER = 'YOUR_MIXI_USER_ID' PASS = 'YOUR_MIXI_PASSWORD' if ARGV.size != 1 then puts "arg error" exit end diary_data = IO.readlines(ARGV[0]) if diary_data.size < 2 then puts "file error" exit end title = diary_data.shift.toeuc body = diary_data[0..-1].join.toeuc agent = WWW::Mechanize.new page = agent.get('http://mixi.jp/') login_form = page.forms.first login_form['email'] = USER login_form['password'] = PASS login_form['next_url'] = '/home.pl' agent.submit(login_form) home_page = agent.get('/home.pl') add_href = '' home_page.links.each do |link| if link.href =~ /^add_diary/ add_href = link.href end end add_page = agent.get(add_href) add_form = add_page.forms[1] add_form['diary_title'] = title add_form['diary_body'] = body confirm_page = agent.submit(add_form) confirm_form = confirm_page.forms[1] agent.submit(confirm_form)
これで普通に動いています。mixiのレイアウト変更があれば、すぐ使えなくなるんだけど、それまでは。