Created
April 23, 2009 16:39
-
-
Save maraigue/100591 to your computer and use it in GitHub Desktop.
@bombtterの忙しさ(爆発要求からかかった時間)を表示
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/bin/env ruby | |
| # -*- coding: utf-8 -*- | |
| require 'rubygems' | |
| require 'open-uri' | |
| require 'json' | |
| require 'time' | |
| # @bombtterの忙しさ(爆発要求からかかった時間)を表示 | |
| def main | |
| buf = nil | |
| # Get @bombtter_raw's last update | |
| begin | |
| open('http://twitter.com/users/show/bombtter_raw.json', 'rb'){ |f| buf = f.read } | |
| dat = JSON.load(buf) | |
| rescue Exception => e | |
| puts "@bombtter_rawの発言を取得できませんでした..." | |
| raise | |
| end | |
| bomb_time = Time.parse(dat['status']['created_at']) | |
| interval_min, interval_sec = (Time.now - bomb_time).to_i.divmod(60) | |
| if interval_min >= 6 # 6 minutes: 2 times of bombtter's posting interval | |
| puts "@bombtterは只今暇です。#{interval_min}分ほど何も爆発させてません。" | |
| return | |
| end | |
| # Get the ID of bombing update | |
| text = dat['status']['text'] | |
| if text =~ /\A\d+,\d+\|[0-9A-Z_a-z]+\/(\d+)\|/ | |
| newid = $1 | |
| else | |
| puts "@bombtter_rawが不調なようです。後ほどお試し下さい。" | |
| return | |
| end | |
| # Get the bombing update | |
| begin | |
| open("http://twitter.com/statuses/show/#{newid}.json", 'rb'){ |f| buf = f.read } | |
| dat = JSON.load(buf) | |
| rescue Exception => e | |
| puts "爆発を要求した発言を取得できませんでした..." | |
| raise | |
| end | |
| src_time = Time.parse(dat['created_at']) | |
| interval_min, interval_sec = (bomb_time - src_time).to_i.divmod(60) | |
| if interval_min < 6 # 6 minutes: 2 times of bombtter's posting interval | |
| print '@bombtterは只今暇です。' | |
| else | |
| print '@bombtterは忙しいようです。' | |
| end | |
| puts "直近の爆発はリクエストから#{interval_min}分#{interval_sec}秒で実行されました。" | |
| end | |
| main |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment