「twitterからmixiボイスにマルチポストするRubyスクリプト」をWindowsで実行する

「ボイス」を「Twitter」と同期する

mixiに「ボイス」という機能がついたのはご存じだと思います。まあとってもTwitterなサービスです。Twitterがすでにある以上、この「ボイス」の扱いをどうするかを困っている人もおられるでしょう。

もちろんコミュニティ自体が違うので、「Twitter」と「ボイス」をクラスタのようにとらえて違う内容のポストにしたい方もいると思います。一方、2つを同じポストにしたい方もいるでしょう。

ここでは後者の人を対象にした、Rubyスクリプトを紹介したいと思います。

前置きが長くなりましたが、とにかく以下のエントリをご覧下さい。

twitterからmixiボイスにマルチポストするRubyスクリプト書いた - 5.1さらうどん

http://d.hatena.ne.jp/gigi-net/20090918/1253224665

twitterからmixiボイスにポストするスクリプト関連まとめ+修正版 - 5.1さらうどん

http://d.hatena.ne.jp/gigi-net/20090919/1253370152

上記エントリを読めば簡単に希望のスクリプトを動作させることができると思います。

ただ、Windowsで動作させる場合にちょびっとだけ改変を加えたり、ツールを使うと、より便利にこのスクリプトを使うことができると思います。具体的には以下の通りです。

1.スクリプトの返り値表示の文字コードをSJISにする

上記エントリはUTF8で保存して実行し、返り値(コマンドプロンプト)はUTF8で表示されます。そこで、スクリプトを少し改変して返り値をSJISにしたいと思います。こちらのページを参考にさせて頂きました。

まず冒頭でkconvを読み込むように以下のスクリプトを付け加えます。

require "kconv" # コマンドプロンプトの出力をSJISにするために必要

そして最後のポストのところを次のように書き換えます。

puts (Kconv.tosjis(tweets[i])) # コマンドプロンプトの出力をSJISにする

これで、コマンドプロンプトの返り値がSJISになり、見通しが良くなります。

2.cronとして「pycron」を使う

Windowsで時間を「分間隔」でプログラムを実行するために、pycronというcronソフトを使用します。使い方は、こちらのWebページなどを参考にして下さい。

サービスとして常駐させることもできるので、rbファイルをrubyで実行させるようにすればOKです*1

最後に

以上2点の修正やプログラムの追加で、冒頭エントリのスクリプトがかなり便利にWindowsでも利用できると思います。Windows環境の方は試してみてはいかがでしょうか。

最後に、元となるスクリプトを書いた、id:gigi-netさんに感謝とお礼の意を表して、本エントリを終わりにしたいと思います。

※補足エントリを書きました。こちらから。

*1:指定時間ごとにコマンドプロンプトが出てくるのがやっかいですが…。これを回避する方法はある?

Powered by はてなブログ