[ruby] コマンドラインから送信できるtwitterクライアント。おまけに起床時間をはてなgraphに送信するスクリプトもつけておいた。

前半部分はhttp://la.ma.la/blog/diary_200704111918.htmとほとんど同じ。
使いかたは

./twitter_client.rb ほげほげ

おきた 起きたと投稿した場合にははてなグラフにポストされます。
ただし、グラフ名に日本語を指定した場合上手くいってません…。というわけでかなり中途半端なのですが
結構便利なので公開してみます。

#!/usr/bin/env ruby

#twitter_client.rb

require 'net/http'
require 'kconv'
require 'hatena/api/graph'

twitter_user = '' #twitterのuser名
twitter_pass = '' #twitterのpassword
hatena_user = '' #hatenaのuser名
hatena_pass = '' #hatenaのpassword

status = ARGV.join(" ")||""
status_utf8 = " " + Kconv.toutf8(status)

Net::HTTP.version_1_2
req = Net::HTTP::Post.new('/statuses/update.json')
req.basic_auth(twitter_user, twitter_pass)
req.body = 'status=' + URI.encode(status_utf8)

Net::HTTP.start('twitter.com', 80) do |http|
  res = http.request(req)
end

# post hatena_graph
def time2float
  time = Time.now
  min = (time.min.to_f / 60 * 100).to_i
  "#{time.hour}.#{min}".to_f
end

if !hatena_user.empty? && status_utf8 =~ /^.*(起きた|おきた).*$/
  graph = Hatena::API::Graph.new(hatena_user, hatena_pass)
  wakeup_time = time2float
  graph.post('wakeup', Time.now, wakeup_time) #wakeupがグラフ名
end

zshは4.3からしかUTF-8対応しておらず日本語表示入力できないのも問題ですけど><
bashとか使うかzsh自分で上げてください。