コマンドラインのtwitterクライアント

#!/usr/bin/env ruby
# .twitter example
# usr: username
# pass: password
 
require 'net/http'
require 'yaml'
 
def post_twitter(usr, pass, status)
  req = Net::HTTP::Post.new("/statuses/update.xml")
  req.basic_auth(usr, pass)
  http = Net::HTTP.start("twitter.com")
  puts http.request(req, "status=" + URI.encode(status))
end
 
def main
  if ARGV[0] == nil
    puts "ARGV error"
    return
  end
  conf = ENV['HOME'] + "/" + ".twitter"
  begin
    yaml = YAML.load_file(conf)
  rescue
    puts "conf file error: #{conf}"
    return
  end
  post_twitter(yaml['usr'], yaml['pass'], ARGV[0])
end
 
main

いちいちtwitterのページから投稿するのが面倒になってきたのでコンソールから投稿したくなったので作った。ホームディレクトリに.twitterってファイル作ってyamlでユーザー名とパスワードを設定する。