Skip to content

Instantly share code, notes, and snippets.

@dezgeg
Created April 29, 2013 13:31
Show Gist options
  • Save dezgeg/5481592 to your computer and use it in GitHub Desktop.
Save dezgeg/5481592 to your computer and use it in GitHub Desktop.
Omamatkakortti Ruby.
require 'rubygems'
require 'mechanize'
require 'nokogiri'
require 'logger'
require 'json'
baseUrl = 'https://omamatkakortti.hsl.fi'
http = Mechanize.new
http.agent.http.verify_mode = OpenSSL::SSL::VERIFY_NONE
# http.log = Logger.new('/dev/stderr')
json = nil
http.get(baseUrl + '/Login.aspx') do |page|
mainPage = (page.form_with :id => 'aspnetForm' do |form|
form['Etuile$MainContent$LoginControl$LoginForm$UserName'] = 'username'
form['Etuile$MainContent$LoginControl$LoginForm$Password'] = 'passu'
form['Etuile$MainContent$LoginControl$LoginForm$LoginButton'] = 'Kirjaudu'
end).submit
json = mainPage.parser.xpath("//script[contains(text(), 'ETUILE.CARD_DETAILS')]").inner_text
end
# json = File.read 'cached.txt'
json.gsub!(/.*?parseJSON\('(.*)'\).*/m) { $1 }
p JSON.load(json)[0]['RemainingMoney']
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment