秀丸からRubyを実行する。〜秀丸からの連投を目指して〜
WWW::Mechanizeでログイン〜日記を投稿の一連の流れ。
ID = 'IDを記述' PASSWORD = 'パスワードを記述' require 'mechanize' agent = WWW::Mechanize.new agent.post("https://www.hatena.ne.jp/login", "name" => ID, "password" => PASSWORD) agent.get("http://d.hatena.ne.jp/#{ID}/edit") agent.page.forms[0].fields.name('body').value = "*rubyより投稿を試みる。\n詳細は後で・・・" agent.page.forms[0].submit
とりあえず上記でこんな感じに投稿ができました。
続いて、上記ファイルに本文を渡す部分と、秀丸から投稿アプリを起動する部分の作成。
ID = 'IDを記述' PASSWORD = 'パスワードを記述' require 'IDを記述' require 'Kconv' agent = WWW::Mechanize.new agent.post("https://www.hatena.ne.jp/login", "name" => ID, "password" => PASSWORD) agent.get("http://d.hatena.ne.jp/#{ID}/edit") body = Kconv.toeuc(agent.page.forms[0].fields.name('body').value) body << Kconv.toeuc("\n") body << Kconv.toeuc(File.read(ARGV[0])) agent.page.forms[0].fields.name('body').value = body agent.page.forms[0].submit
上記ファイルをCディレクトリ直下に置く*1
そして、Ruby起動マクロを一部修正
run "ruby " + $ruby_file + " > con";
を下記のように変更。
run "ruby -Ks 'C:\\hatena.rb' " + $ruby_file + " > con";
マウスで選択した箇所又は、文章すべてがマクロを起動することで、はてなダイアリーに投稿できるようになりました。
一連の流れをおさらい。
- (秀丸)秀丸で日記を書く。
- (秀丸)秀丸で書いた日記を選択し、マクロを起動。
- (マクロ)選択された部分をテンポラリファイルとして作成。
- (マクロ)作成したテンポラリファイルを引数として、はてな投稿のRubyを実行。
- (Ruby)引数として受け取ったファイルを開いて、中身をはてなダイアリーに投稿
といった感じになりました。
秀丸マクロと、Rubyのコラボで連投が可能*2になりました。
上記ファイルの二つをテンプレートとして少し修正すればmixiとかもできるんだろな。。。最近mixi全然ログインしてないや。。。