AtomPubを使ったRubyによるHatena::Diaryへの投稿(指定ファイルの内容)

参考:
[m2w]AtomPub によるブログ記事の取得はブログの種類に依存する。 - 自分の歩いた道に落ちてるコード http://www.ownway.info/Blog/2012/02/mail2weblog-8.html

エントリの本文を引数のファイル名の内容から、タイトル名はSTDIN.getsで、コマンドラインから入力を促すようにしました。

#!/usr/bin/ruby
# coding: UTF-8

require 'atomutil'

USERNAME = 'hirono2011'
PASSWORD = 'パスワード'
ENTRY_COLLECTION_URI = 'http://d.hatena.ne.jp/hirono2011/atom/blog'


auth = Atompub::Auth::Wsse.new(:username => USERNAME, :password => PASSWORD)
client = Atompub::Client.new(:auth => auth)

# ブログ記事を投稿する
unless ARGV[0].nil? then
	f = open(ARGV[0])
	text = f.read
	f.close
	file_name = ARGV[0]
	
	print("#{file_name}を本文に投稿します。タイトル名を入力してください。\n")
	title = STDIN.gets.chomp
else
	print("ファイル名を指定してください!!	\n")
	exit(1)
end
#text = <<END
#あああ
#テスト中 23
#END

new_entry = Atom::Entry.new(
    :title => title.encode('BINARY', 'BINARY'),
    :content => text.encode('BINARY', 'BINARY'))
p client.create_entry(ENTRY_COLLECTION_URI, new_entry).sub("atom/blog/","")