はてな更新スクリプト

で、早速

Greenbear Diary - RubyでHTMLとWebを操作するためのライブラリ、HpricotとWWW::Mechanize
http://mono.kmc.gr.jp/~yhara/d/?date=20070205

を見ながら。若干はてなの仕様が変わってるところがあったりで、(ログインページの名前キーが key じゃなくてname)ちょっと手を加えてみる:

require 'rubygems'
require 'mechanize'
require 'kconv'

# config
user = "XXX"
password = "YYY"

login_url = "https://www.hatena.ne.jp/login"
d_url = "http://d.hatena.ne.jp/#{user}/"
edit_url = d_url + "edit/"

# mode
override = false

# opt parse
OptionParser.new do |opt|
		 opt.on('-o') {|v| override = true}
		 opt.parse!(ARGV)
end

# read body from file
fname = ARGV[0]
body = File.readlines(fname).join("").toeuc

# login
agent = WWW::Mechanize.new
login_p = agent.get(login_url)

form = login_p.forms.first
form['name'] = user
form['password'] = password
redirect_p = agent.submit(form)

# edit
edit_p = agent.get(edit_url)
form = edit_p.forms.name("edit").first
if override
   form['body'] = body
else
   form['body'] += body
end

ok_btn = form.buttons.name("edit")
agent.submit(form, ok_btn)

かなり手抜きですが、

% ruby d.rb [-o] fname

-o をつけると上書き。