あけましておめでとうございます ~あけおめツイート用に1時間でrubyスクリプト書いた~


皆様、あけましておめでとうございます。
今年もよろしくお願い致します。

今回(も)、0時0分にあけおめツイートしようと思ったのですが、ただスタンバイするだけだと面白くないと思い、31日23時からあけおめ用のツイートスクリプトをrubyで書きました。


今回、単純に0分ジャストを狙ってツイートするだけだと面白く無いと思い、スクリプトでツイートすることを思いついたのですが、最近だとruby等を使えば結構すぐに出来るので、なら時間制限を設けて作ろうと思い31日の23時から書き始めました。(思いついたのも当日の18時ぐらいですが)

結果としては無事、あけおめツイートをすることが出来ました。(通信のタイムラグ等で2秒遅いですが)

タイマー自体はcronで動かすことをこのネタを思いついた時に決めていたので、後の仕様としては以下の様なことを考えて作りました。

  • あけおめ固定ではなく、ツイートを簡単に指定できる。
  • ツイートだけでなくCUIのtwitterツールとして拡張できるようにする
  • cronで動かすのでコマンドライン引数でツイート等を指定できる

こういった形を考えていたので、基本的にコマンドライン引数で動作を指定して、動作させるプログラムとして作成しました。(今回はツイートだけですが)

そして最終的に以下の様なプログラムになりました。


# coding: utf-8
require 'twitter'
require 'optparse'
require './token'
def cmdline
args = {}
OptionParser.new do |parser|
parser.on('-m string', '–message string', '投稿文を指定') {|v| args[:mes] = v}
parser.parse!(ARGV)
end
args
end
client = Twitter::REST::Client.new do |config|
config.consumer_key = $consumer_key
config.consumer_secret = $consumer_secret
config.access_token = $access_token
config.access_token_secret = $access_token_secret
end
args = cmdline
client.update(args[:mes])

view raw

main.rb

hosted with ❤ by GitHub

これを0時0分に動作するようにcronで以下のように設定しました。
0 0 1 1 * /usr/local/bin/rbenv exec ruby /path/to/twitter-cui/main.rb -m "あけましておめでとうございます!"

実際、プログラム自体は結構すんなりと作成出来たのですが、どちらかと言うとrubyをあまりメインで触っていないため、たまに動かすときのバージョンアップやそれにともなうbundlerのアップデート忘れやrbenvを使っていたのでgem install してもデフォルトのrubyに反映されないなど、プログラムよりも環境の方で手間取り、そちらのほうが時間がかかりました。

せっかくなので、機会を見つけて自分向けのCUIのツイッターツールとして機能追加等してきたいと思います。

それではあらためて、今年も1年よろしくお願い致します。

参考リンク


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください