Skip to content

Instantly share code, notes, and snippets.

@kimoto
Created February 19, 2012 05:20
Show Gist options
  • Save kimoto/1862116 to your computer and use it in GitHub Desktop.
Save kimoto/1862116 to your computer and use it in GitHub Desktop.
みずほ銀行の口座取引に変化があったらiPhoneに通知する
#!/bin/env ruby
# encoding: utf-8
# Author: kimoto
require 'mizuho_bank'
require 'logger'
require 'kconv'
require 'yaml'
require 'im-kayac'
class Pit::ImKayac
def self.post(message, pit_key = "im.kayac.com")
config = Pit.get(pit_key, :require => {
:username => 'Please input your im.kayac.com Username'
})
ImKayac.post(config[:username], message)
end
end
# 10分に一度
# = 1時間に6回
# = 1日144回
wait_time = 60 * 10
last_trades = nil
while true
trades = nil
MizuhoBank.new_with_pit(Logger.new(STDERR)){ |bank|
trades = bank.info.main_account.cache_flows
}
if last_trades.nil?
# 初回は何もしない
# けど一応疎通確認のためになんか送ってみる(この場合は最新の取引データ1件)
Pit::ImKayac.post(trades.last.to_s)
else
diff = (trades.map(&:to_s) - last_trades.map(&:to_s))
if not diff.empty?
diff.each{ |diff_trade|
Pit::ImKayac.post(diff_trade)
}
end
end
last_trades = trades
puts "waiting #{wait_time} seconds.."
sleep wait_time
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment