CotEditorからmixi,はてなダイアリー,社内SNSへ同時投稿するスプリクト
移転しました。
長年の夢(いやそこまででもないけど、)だったmixi,はてなダイアリー,社内SNSへの日記同時投稿の環境が整いました!!
これで何気ないことも、3つすべてにログが残る。残るとマズい記事もあるだろうけど。とりあえず、せっせとコピペを3回繰り返すことはなくなりそうです。
本屋で、Rubyクックブックを読んだかいがあった。むしろ買おうかと思った。
この日記はとりあえず、mixiとはてなダイアリーに同時投稿してます。
ってこんなことしてるから、勉強する時間がなくなるんだよなぁ・・・
どういう仕組みになっているかというと、・・・
基本的には、CotEditorというエディターを使用し、スプリクトが実行できるというメリットを存分に生かして、記事を投稿しています。
Mac用テキストエディタ「CotEditor」
http://www.aynimac.com/p_blog/files/article.php?id=41
mixi
CotEditorからmixiに投稿するRubyスプリクト
http://koseki.caph.jp/2008/08/28/coteditor%E3%81%8B%E3%82%89mixi%E3%81%AB%E6%8A%95%E7%A8%BF%E3%81%99%E3%82%8Bruby%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88/
上のページを参考にまずは、mixiへの投稿スプリクトを作ります。
はてなダイアリー
次に、CotEditorからはてなダイアリーに投稿するRubyスプリクト
http://d.hatena.ne.jp/Watson/20080904/1220538723
このページを参考にはてなダイアリーへ投稿スプリクトを作ります。
社内SNS
これは、WWW::Mechanizeを使って、Webの操作をエミュレートさせます。普段のネットサーフィンを一つ一つプログラムに落とし込んでいくことで、その動作を再現できるというものらしいです。
最初、
agent.page.link_with(:text => "日記").click
の部分を
agent.page.links.text("日記").click
とやっていたんだけど、どうやら古いバージョンの使い方のようで、現バージョンじゃ使えなくなっていた。ここでかなりハマった。
#!/opt/local/bin/ruby # # %%%{CotEditorXInput=AllText}%%% require 'rubygems' require 'mechanize' $KCODE = 'uft8' $USERNAME = "hoge@hoge.com" $PASSWORD = "hogehoge" $SUBJECT = STDIN.gets.chomp $BODY = STDIN.read def login @agent = WWW::Mechanize.new login_page = @agent.get("http://hoge.hoge.jp/") #会社のSNSのHP login_form = login_page.forms[0] login_form.username = $USERNAME login_form.password = $PASSWORD @agent.submit(login_form) edit_page = @agent.page.link_with(:text => "日記").click edit_form = edit_page.forms[0] edit_page = @agent.submit(edit_form) end def edit edit_form = @agent.page.forms[0] edit_form.subject = $SUBJECT #ここが題名 edit_form.body = $BODY #ここが本文 @agent.submit(edit_form) make = @agent.page.forms[0] @agent.submit(make) end login edit
ってな感じで、作ってみました。
この3つのスプリクトをCotEditor上で実行すれば、あーら不思議3つ(ほぼ)同時投稿の完成w