Skip to content

Instantly share code, notes, and snippets.

@kek
Created October 30, 2009 12:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kek/222304 to your computer and use it in GitHub Desktop.
Save kek/222304 to your computer and use it in GitHub Desktop.
eve online skill training queue checker
#!/usr/bin/env ruby
# Gist: https://gist.github.com/222304
# Install Nokogiri, http://nokogiri.rubyforge.org/nokogiri/
require 'rubygems'
require 'nokogiri'
require 'open-uri'
# ~/.eve needs to contain user id, full api key and character id,
# one on each line.
rc = open("#{ENV['HOME']}/.eve")
userid, apikey, characterid = rc.readline.strip, rc.readline.strip, rc.readline.strip
api_url = "http://api.eve-online.com"
tree_url = "#{api_url}/eve/SkillTree.xml.aspx"
training_url = "#{api_url}/char/SkillInTraining.xml.aspx"
account_balance_url = "#{api_url}/char/AccountBalance.xml.aspx"
auth_string = "userID=#{userid}&apiKey=#{apikey}&characterID=#{characterid}"
training_doc = Nokogiri::XML(open("#{training_url}?#{auth_string}"))
tree_doc = Nokogiri::XML(open("#{tree_url}?#{auth_string}"))
account_balance_doc = Nokogiri::XML(open("#{account_balance_url}?#{auth_string}"))
endtime = (training_doc/"eveapi/result/trainingEndTime").text
level = (training_doc/"eveapi/result/trainingToLevel").text
skill = (training_doc/"eveapi/result/trainingTypeID").text
skill_doc = (tree_doc/"eveapi/result/rowset/row/rowset/row[@typeID=\"#{skill}\"]")
skillname = (skill_doc/"row/@typeName").text
(account_balance_doc/"eveapi/result/rowset[@name=\"accounts\"]/row").each do |account|
puts "Account #{account['accountKey']}: #{account['balance']} ISK"
end
puts "#{skillname} level #{level} finished at #{endtime}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment