Skip to content

Instantly share code, notes, and snippets.

@amscotti
Forked from rgrove/capmon.rb
Created August 27, 2011 02:50
  • Star 2 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save amscotti/1174897 to your computer and use it in GitHub Desktop.
Ruby script to retrieve and display Comcast data usage. See http://www.128bitstudios.com/2011/08/27/comcast-data-usage-put-a-fork-in-it/
#!/usr/bin/env ruby
require 'rubygems'
require 'mechanize'
URL_PRELOADER = 'https://customer.comcast.com/Secure/Preload.aspx?backTo=%2fSecure%2fUsers.aspx&preload=true'
URL_USERS = 'https://customer.comcast.com/Secure/Users.aspx'
abort "Usage: #{$0} <username> <password>" unless ARGV.length == 2
agent = Mechanize.new
agent = Mechanize.new { |agent|
agent.follow_meta_refresh = true
agent.redirect_ok = true
agent.user_agent = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6'
}
login_page = agent.get(URL_USERS)
login_form = login_page.form_with(:name => 'signin')
login_form.user = ARGV[0]
login_form.passwd = ARGV[1]
redirect_page = agent.submit(login_form)
redirect_form = redirect_page.form_with(:name => 'redir')
abort 'Error: Login failed' unless redirect_form
account_page = agent.submit(redirect_form, redirect_form.buttons.first)
agent.get(URL_PRELOADER)
users_page = agent.get(URL_USERS)
usage_text = users_page.search("#ctl00_ctl00_ContentArea_PrimaryColumn2Content_ctl00_ctl01_UsageGraphLegend").text
puts usage_text.strip
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment