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スプリクト
CotEditorからmixiに投稿するRubyスクリプト – CAPH TECH
上記ページを参考にまずは、mixiへの投稿スプリクトを作ります。
はてなダイアリー
次に、CotEditorからはてなダイアリーに投稿するRubyスプリクト
CotEditorからはてなダイアリーに投稿するRubyスクリプト - Watsonのメモ
このページを参考にはてなダイアリーへ投稿スプリクトを作ります。
社内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 = "[email protected]"
$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
今後の課題
- 画像も送りたい時どうするのか?
- 基本的にはてな記法はしょうがない?
ふぅ、疲れた。
追記
|ruby| の部分から記事が投稿されなかった。特殊文字が入ったことで、これ以降受け付けなくなってしまった模様。さて、どうやって解決すべきか?
Related contents
TECH
2009.08.08
TECH
2009.07.27
TECH
2017.06.25
TECH
2017.06.24
TECH
2016.06.05
TECH
2016.02.10
TECH
2015.03.27
TECH
2014.12.13