CotEditorからmixiに投稿するRubyスクリプト

CotEditorからmixiに投稿できると便利なんだけど・・・ということで、Rubyスクリプトを作成してみました。

まずwsseライブラリをgemでインストールします。

$ sudo gem install wsse

以下のスクリプトをCotEditorのスクリプトフォルダに保存して、実行権限をつけます。username, password, member_idは適宜書き換えます。
下記スクリプトには間違い(というか詳しくはコメントを参照ください)があって、17行目の「content = < <EOS」の「<<」の間に半角スペースが入ってしまってます。「< <」を「<<」に修正してお使いください。

#!/usr/bin/env ruby
#
# xx)pre.rb
#
# %%%{CotEditorXInput=AllText}%%%
require 'rubygems'
require 'wsse'
require 'net/http'

username = 'username@example.com'
password = 'password'
member_id = 0000000

title = STDIN.gets.chomp
summary = STDIN.read

content = < <eos


  #{title}
  #{summary}

EOS

header = {'X-WSSE' => WSSE::header(username, password),
'Content-Type' => 'application/atom+xml'}

Net::HTTP.start('mixi.jp', 80) {|http|
  response = http.request_post("/atom/diary/member_id=#{member_id}", content, header)
}

使い方
テキストの1行目にタイトルを、2行目以降に本文を記述します。それからスクリプトメニューからこのスクリプトを実行すると、mixiに投稿ができます。