ネット上にテキストを保存してくれるSimplenoteというサービスがあります。iPhoneアプリケーションもあるので、わたしの場合iPhone上では標準のメモの代わりに利用しています。
さらにそのSimplenoteのテキストをバックアップしてくれるサービスSimplenote Backupというのがあります。こちら、ソースコードが公開されています。
コードを読んでいくとSimplenote.pyというファイルにSimplenoteへアクセスするための機能がまとめられているのがわかります。
PythonよりRubyの方が性に合っている、という個人的な理由のもとにこれをRubyに書き換えられないかと試みたんですが…。SSLの壁に阻まれてあっさり挫折。Rubyに標準添付されているライブラリnet/https
では、上記のSimplenote.pyのように簡単にSSL通信を書くことはできない模様。
ぢゃ、だれかライブラリを公開したりしてないかなー、と探したら。見つかりました。
- http://www.rubyee.com/ruby_gems/15232-simplenote
- ソースはこちら:GitHub - simonjefford/simplenote: simple gem for accessing notes on SimpleNote
sudo gem install simplenote
使い方はソースを見てもらうとして。こんな感じでサンプル。標準入力をSimplenoteに送ります。
# toSimplenote.rb require 'rubygems' require 'simplenote' EMAIL = 'foo@bar.com' PASSWORD = 'foo_bar_baz' simplenote = SimpleNote.new simplenote.login(EMAIL, PASSWORD) simplenote.create_note(STDIN.read)
EMAIL
とPASSWORD
は自身のSimplenoteのアカウント情報で書き換えてください。
実行。
$ cat toSimplenote.rb | ruby toSimplenote.rb warning: HTTParty depends on version 0.1.7 of crack, not 0.1.6.
これで自分自身をSimplenoteに送ることができました。
…が。なんかcrackのバージョンが違うと警告が出ます。
調べてみたところcrack-0.1.7のバグのようで、crack-0.1.7のバージョン情報の値が0.1.6になっているのが原因のようです(VERSION string needs to be updated · Issue #7 · jnunemaker/crack · GitHub)。なんだそれ、って感じですが。
このままでも使えには使えるのですが、後半の話のためにもこのバグに対処しときます。
わたしの環境の場合、次のファイルが問題のファイル。
/opt/local/lib/ruby/gems/1.8/gems/crack-0.1.7/lib/crack.rb
このファイルの中にバージョンが記述されています。
VERSION = "0.1.6".freeze
これを0.1.7に書き換えます。これで警告が出なくなりました。
CotEditorで編集したテキストをSimplenoteに送る
実は標準入力からテキストを送れたら、ほとんどできたも同然でして。
上記のスクリプトをちょっと加工します。
#! /opt/local/bin/ruby -Ku #%%%{CotEditorXInput=AllText}%%% require 'rubygems' require 'simplenote' EMAIL = 'foo@bar.com' PASSWORD = 'foo_bar_baz' simplenote = SimpleNote.new simplenote.login(EMAIL, PASSWORD) simplenote.create_note(STDIN.read)
一行目で扱う文字コードを指定しています。CotEditorからはUTF-8でテキストが送られてくるので-Ku
を指定。
二行目でCotEditorから引き渡されるテキストの範囲を指定しています。ここでは編集中の全テキストを渡すように指定*1。
テキスト本体は標準入力で渡ってくるので、スクリプトの残りの部分は同じ内容です。
ここからはCotEditorにスクリプトを設定する話。
最初にスクリプトメニューの「スクリプトフォルダを開く」を選択してスクリプトを格納するフォルダを開きます。
開いたフォルダに上記の内容のファイルを、たとえば「send to Simplenote.rb」という名前で格納します。
次にスクリプトメニューの「スクリプトメニューを更新」を選択します。
スクリプトメニューに「send to Simplenote」が追加されているはずです。
ファイル名の付け方でキーボードショートカットを指定することもできます。詳しくはスクリプトフォルダに格納されている_aboutScriptFolder.rtfというファイルを参照してください。
スクリプトメニューから「send to Simplenote」を選択。
Simplenoteに送ることができました。
追記(というか書き忘れ):
CotEditorから使う場合は、実行権限を設定しておかないといけないです。
$ chmod +x send\ to\ Simplenote.rb