バリケンのRuby日記 RSSフィード

2007-04-22

[][] WWW::Mechanizeを使って「はてなフォトライフアップローダー」を作る(1)  WWW::Mechanizeを使って「はてなフォトライフアップローダー」を作る(1) - バリケンのRuby日記 を含むブックマーク はてなブックマーク -  WWW::Mechanizeを使って「はてなフォトライフアップローダー」を作る(1) - バリケンのRuby日記  WWW::Mechanizeを使って「はてなフォトライフアップローダー」を作る(1) - バリケンのRuby日記 のブックマークコメント

はてなフォトライフ」に、手元の画像ファイルを一気にアップロードするスクリプトを書いてみるよ。

動作にはWWW::Mechanizeが必要だから、まだインストールしていない人は

gem install mechanize

インストールしてね。

とりあえずは超手抜き版。Windows限定、画像ファイルは5個まで。ファイル名は配列で指定するよ。画像ファイルスクリプトと同じディレクトリに置いてね。

$KCODE = 's'

USERNAME = '(はてなユーザー名)'
PASSWORD = '(パスワード)'

#TAGNAME = '(写真につけるタグ名)'
TAGNAME = nil

upload_files = ['01.jpg', '02.jpg', '03.jpg', '04.jpg', '05.jpg']

require 'mechanize'
require 'kconv'

agent = WWW::Mechanize.new
login_page = agent.get("https://www.hatena.ne.jp/login")

login_form = login_page.forms.first
login_form['key'] = USERNAME
login_form['password'] = PASSWORD
redirect_page = agent.submit(login_form)

photo_up_page = agent.get("http://f.hatena.ne.jp/#{USERNAME}/up")

photo_up_form = photo_up_page.forms.first

current_dir = Dir.pwd.gsub(/\//, "\\") + "\\"

upload_files[0..4].each_with_index do |item, index|
  photo_up_form.file_uploads.name("image#{5 - index}")[0].file_name = current_dir + item
end

photo_up_form['taglist'] = TAGNAME if TAGNAME

agent.submit(photo_up_form)

この「超手抜き版」だとあんまりだから、もうちょっと何とかしたいと思うよ。とりあえず、

あたりを考えているよ。

トラックバック - http://rubyist.g.hatena.ne.jp/muscovyduck/20070422