require 'open-uri'
require 'pp'


def get_data_for_url(url)
  time_begin = Time.now
  contents = open(url).read
  time_diff = Time.now - time_begin
  size = contents.size
  rate = (size / (1000.0 * time_diff)).to_i
  return {
    :rate => rate, # KB/s
    :size => size, # KB
    :time => time_diff,
  }
end

def run
  sites = []
  sites << {"NTT Home" => "http://nickstraffictricks.com/"}
  sites << {"NTT BackLink" => "http://nickstraffictricks.com/3300_free-back-links-to-your-site-2/"}
  sites << {"ProBlog" => "http://www.problogger.net/"}
  sites << {"4HR Blog" => "http://www.fourhourworkweek.com/blog/"}

  line = []
  line << Time.now.strftime("%Y-%m-%d %H:%M:%S")

  sites.each do |site|
    name = site.first[0]
    url =  site.first[1]
    results = get_data_for_url(url)
    line << "#{name}  Size: #{results[:size]/1000}k  Rate: #{results[:rate]} kb/s (#{results[:time].round}s)"
  end

  line = line.join("    ")
  File.open("output.txt", "a") {|file| file.write("#{line}\n")}
  puts line
end

while true
  run
  sleep(120)
end

