Report abuse

#!/usr/local/bin/ruby
require 'rubygems'
require 'cgi'
require 'builder'
require 'open-uri'
require 'hpricot'
require 'active_support'

cgi = CGI.new
params = cgi.params
name = params['url'].length > 0 ? 
          params['url'].first.split('/').last : # get feedburner name
          'DrNic'

# http://api.feedburner.com/awareness/1.0/GetFeedData?uri=DrNic&dates=2006-08-01,2006-08-30
url = "http://api.feedburner.com/awareness/1.0/GetFeedData?uri=#{name}&dates=#{Date.new(2006,8,1)},#{Date.today}"
page = Hpricot(open(url)) rescue nil
entries = page ? page.search("//entry") : []

print "Content-type: text/xml\r\n\r\n"
builder = Builder::XmlMarkup.new(:indent => 2)
xml = builder.chart do |chart|
  #chart.chart_type("3d column")
  chart.chart_type("area")
  chart.chart_transition("", 'type' => 'slide_up', 'duration' => 3)
  chart.axis_value_text {|text| text.string "Subs"}
  chart.chart_data do |chart_data|
    chart_data.row do |row|
      entries.each_with_index do |entry, index|
        row.string((index == 0 || index == (entries.length - 1)) ? entry.get_attribute("date") : "")
      end
    end
    chart_data.row do |row|
      entries.each do |entry|
        row.number entry.get_attribute("circulation").to_i
      end
    end
  end
end
puts xml