eveapi 0.0.3.pre → 0.0.4.pre

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. checksums.yaml +8 -8
  2. data/.gitmodules +3 -0
  3. data/Gemfile +7 -0
  4. data/README.md +38 -5
  5. data/Rakefile +43 -0
  6. data/gemspec.yml +5 -1
  7. data/lib/eveapi.rb +3 -0
  8. data/lib/eveapi/client.rb +36 -1
  9. data/lib/eveapi/console.rb +5 -0
  10. data/lib/eveapi/request.rb +22 -12
  11. data/lib/eveapi/util.rb +35 -0
  12. data/lib/eveapi/version.rb +1 -1
  13. data/spec/cassettes/EVEApi/calling_a_method_not_present_in_the_EVEApi_should_fail.yml +106 -0
  14. data/spec/cassettes/EVEApi/calling_a_method_present_in_the_EVEApi_should_success.yml +31 -0
  15. data/spec/cassettes/EVEApi/calling_api_method_account_account_status.yml +33 -0
  16. data/spec/cassettes/EVEApi/calling_api_method_account_api_key_info.yml +35 -0
  17. data/spec/cassettes/EVEApi/calling_api_method_account_characters.yml +34 -0
  18. data/spec/cassettes/EVEApi/calling_api_method_char_account_balance.yml +32 -0
  19. data/spec/cassettes/EVEApi/calling_api_method_char_asset_list.yml +79 -0
  20. data/spec/cassettes/EVEApi/calling_api_method_char_character_sheet.yml +79 -0
  21. data/spec/cassettes/EVEApi/calling_api_method_char_contact_list.yml +47 -0
  22. data/spec/cassettes/EVEApi/calling_api_method_char_contact_notifications.yml +31 -0
  23. data/spec/cassettes/EVEApi/calling_api_method_char_contracts.yml +31 -0
  24. data/spec/cassettes/EVEApi/calling_api_method_char_industry_jobs.yml +31 -0
  25. data/spec/cassettes/EVEApi/calling_api_method_char_mail_messages.yml +31 -0
  26. data/spec/cassettes/EVEApi/calling_api_method_char_mailing_lists.yml +31 -0
  27. data/spec/cassettes/EVEApi/calling_api_method_char_market_orders.yml +31 -0
  28. data/spec/cassettes/EVEApi/calling_api_method_char_medals.yml +32 -0
  29. data/spec/cassettes/EVEApi/calling_api_method_char_notifications.yml +31 -0
  30. data/spec/cassettes/EVEApi/calling_api_method_char_research.yml +31 -0
  31. data/spec/cassettes/EVEApi/calling_api_method_char_skill_in_training.yml +31 -0
  32. data/spec/cassettes/EVEApi/calling_api_method_char_skill_queue.yml +31 -0
  33. data/spec/cassettes/EVEApi/calling_api_method_char_standings.yml +45 -0
  34. data/spec/cassettes/EVEApi/calling_api_method_char_upcoming_calendar_events.yml +31 -0
  35. data/spec/cassettes/EVEApi/calling_api_method_char_wallet_journal.yml +31 -0
  36. data/spec/cassettes/EVEApi/calling_api_method_char_wallet_transactions.yml +31 -0
  37. data/spec/cassettes/EVEApi/calling_api_method_server_server_status.yml +31 -0
  38. data/spec/cassettes/EVEApi/calling_api_methods_should_return_an_Array_of_method_symobls.yml +160 -0
  39. data/spec/eveapi_spec.rb +41 -29
  40. data/spec/spec_helper.rb +8 -0
  41. metadata +88 -3
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- Yzc3MDRlZTIwNjE5MWQ0YzcxN2YyMTE2MTA3NTcyNTY0NGJlNWFlNg==
4
+ MDA5NDcwZDRmMGI0MTMzZDJlMDQ0N2QyZDZhMDg4NDQ2YTM0NjcxMg==
5
5
  data.tar.gz: !binary |-
6
- NmIyZjYwMjhiYjBkNzBlNGU4NjI2Njg2M2QwMWY0YmQ2Y2ZmODIyMA==
6
+ YWQxZDRjZTNmOGNlODM4YThiMGIxYjY3ZTc5MmRhYTBkZGE2MWIzNA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- Nzk1YmMyMjBhZmY2NGNiM2I5ZjRmM2RkMGQ4MjEwYTdiOWFlZjg5NjVmMzRj
10
- MTI3NDkwY2VkMGJmYjlhNGJlN2U1N2QyMzRlY2E0YzY4NjE3MjNiZmE2NGMw
11
- MDBkOGUyYTBiOWQ4MTAzMDk1OTkxZTM3YzgyYTdjNWFmYjUzZTA=
9
+ MjAyOTRkMzExY2VmNDNhNjdiYjYyZjBkYmFmYWVjNDFlMjc0NWZkMDY5ZjI3
10
+ NDA5ZjMyNTdlZmE5YmE4ODBlMzU1NmVkNjNlOWFhOTY3ZGQ1M2FhOGU1ZDJh
11
+ OGZhOGU2OWUzZDgyNTU4MjljN2ZjNjQyZjI2MjdlODViMTViZTM=
12
12
  data.tar.gz: !binary |-
13
- MGY3YWI0MDQ1N2MyMDZiYTE0Y2I3NWFhMmM5NDIwMGU3ZjcyMmUzYjYzYzE1
14
- MzI5OThmYmI4NWVjMzNmZGVmODg0MDA1ZDk0NWEzZDU4MjkzMzM1OWJiZWZl
15
- YzA4Yzg3Mjg0ZWJjZGFiODQ5MzE3YjkwODM3YjRmMmRiNTlhM2I=
13
+ OTA4ZTJmYzNiYWE2ZDVjZDU1MzdhZWY2ZDBjNmM0ZjA3ZGY0NmJmN2NmOThk
14
+ NjJmMzFlNmQzOTAxZWQxZjY3OWE1ZjA3MDAwMTA1MjRiOTg4MjMwMzYyZWRh
15
+ NWQwM2U3NTg2YzI4Y2YxOTIzMDJkMTE1NTQwZTljY2FhODFiMWE=
@@ -0,0 +1,3 @@
1
+ [submodule "eveapi.wiki"]
2
+ path = eveapi.wiki
3
+ url = https://github.com/aladac/eveapi.wiki.git
data/Gemfile CHANGED
@@ -1,3 +1,10 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
+ group :development do
5
+ if RUBY_VERSION =~ /1.9/
6
+ gem 'pry-debugger', '~> 0.2'
7
+ else
8
+ gem 'pry-byebug', '~> 3.2'
9
+ end
10
+ end
data/README.md CHANGED
@@ -11,7 +11,7 @@ This work in progress in a very early stage. Not documented. Only a couple of me
11
11
 
12
12
  Most methods names can be listed by calling `EVEApi::Client#api_methods`
13
13
  ```ruby
14
- pry(main)> EVEApi::Client.new.api_methods[0..5]
14
+ EVEApi::Client.new.api_methods[0..5]
15
15
  => [
16
16
  [0] :char_chat_channels,
17
17
  [1] :char_bookmarks,
@@ -25,7 +25,31 @@ Most methods requiring arguments other than `character_id`, `key_id`, `vcode` an
25
25
 
26
26
  Because of the way the paths are being built from the method names - some methods may look funky eq. `server_server_status`.
27
27
 
28
- `account_characters`, `char_character_sheet`, `char_wallet_journal`, `server_server_status`, `account_api_key_info`, `api_call_list` should work.
28
+ ## Methods
29
+
30
+ | Method Name | Requires | Output Class |
31
+ | ------------- | ------------- | ------------- |
32
+ | [account_api_key_info](account_api_key_info) | - | `Hash` |
33
+ | [account_account_status](account_account_status) | `key_id`, `vcode` | `Hash` |
34
+ | [account_characters](account_characters) | `key_id`, `vcode` | `Array` |
35
+ | [server_server_status](server_server_status) | - | `Hash` |
36
+ | [char_wallet_transactions](char_wallet_transactions) | `key_id`, `vcode`, `character_id` | `Array` |
37
+ | [char_wallet_journal](char_wallet_journal) | `key_id`, `vcode`, `character_id` | `Array` |
38
+ | [char_standings](char_standings) | `key_id`, `vcode`, `character_id` | `Array` |
39
+ | [char_skill_queue](char_skill_queue) | | |
40
+ | [char_skill_in_training](char_skill_in_training) | | |
41
+ | [char_research](char_research) | | |
42
+ | [char_notifications](char_notifications) | | |
43
+ | [char_medals](char_medals) | | |
44
+ | [char_market_orders](char_market_orders) | | |
45
+ | [char_mail_messages](char_mail_messages) | | |
46
+ | [char_mailing_lists](char_mailing_lists) | | |
47
+ | [char_industry_jobs](char_industry_jobs) | | |
48
+ | [char_contact_notifications](char_contact_notifications) | | |
49
+ | [char_contact_list](char_contact_list) | | |
50
+ | [char_character_sheet](char_character_sheet) | | |
51
+ | [char_asset_list](char_asset_list) | | |
52
+ | [char_account_balance](char_account_balance) | | |
29
53
 
30
54
  ## Description
31
55
 
@@ -43,10 +67,19 @@ Uses [excon](https://github.com/excon/excon), [crack](https://github.com/jnunem
43
67
  ```ruby
44
68
  require 'eveapi'
45
69
  client = EVEApi::Client.new
46
- client.key_id = YOUR_API_KEY_ID
47
- client.vcode = YOUR_API_VCODE
70
+ client.key_id = 4278167
71
+ client.vcode = "7QJg6p5BZNpDBp2FIz39dGwa7jnNaXAuYyLUVitlTQ3rY60VPBcaTpJVfYIkiW5l"
48
72
  client.account_characters
49
- # [{"name"=>"CHARACTER_NAME1", "characterID"=>"CHARACTER_ID1", "corporationName"=>"CORPORATION_NAME1", "corporationID"=>"CORPORATION_ID1", "allianceID"=>"0", "allianceName"=>"", "factionID"=>"0", "factionName"=>""}, {"name"=>"CHARACTER_NAME2", "characterID"=>"CHARACTER_ID2", "corporationName"=>"CORPORATION_NAME2", "corporationID"=>"CORPORATION_ID2", "allianceID"=>"0", "allianceName"=>"", "factionID"=>"0", "factionName"=>""}]
73
+ => {
74
+ :name => "Quint Slade",
75
+ :character_id => "95512059",
76
+ :corporation_name => "Imperial Academy",
77
+ :corporation_id => "1000166",
78
+ :alliance_id => "0",
79
+ :alliance_name => "",
80
+ :faction_id => "0",
81
+ :faction_name => ""
82
+ }
50
83
  ```
51
84
 
52
85
  ## Requirements
data/Rakefile CHANGED
@@ -19,5 +19,48 @@ task :doc => :rdoc
19
19
  require 'rspec/core/rake_task'
20
20
  RSpec::Core::RakeTask.new
21
21
 
22
+ require 'pry'
23
+
24
+ desc 'Run pry console'
25
+ task :console do
26
+ require './lib/eveapi'
27
+ require './lib/eveapi/console'
28
+ Pry.start
29
+ end
30
+
31
+ desc 'Generate method docs'
32
+ task :methods do
33
+ Bundler.require
34
+ require 'awesome_print'
35
+ EVEApi::Client.new.working_methods.each do |m|
36
+ p m
37
+ @client = EVEApi::Client.new
38
+ @client.key_id = 4278167
39
+ @client.vcode = "supersecretstuff"
40
+ @client.character_id = '95512059'
41
+ out = ""
42
+ begin
43
+ out << @client.api_methods_hash.select { |me| me[:name] == m }.first[:desc]
44
+ rescue
45
+ out << "TODO Description (#{m})"
46
+ end
47
+ out << "\n\n"
48
+ out << "```ruby\n@client = EVEApi::Client.new\n"
49
+ out << "@client.key_id = 4278167\n"
50
+ out << "@client.vcode = 'supersecretstuff'\n\n"
51
+ out << "@client.#{m}\n\n"
52
+ begin
53
+ out << @client.send(m).pretty_inspect
54
+ out << '```'
55
+ f = File.new("eveapi.wiki/#{m.to_s}.md","w")
56
+ f.puts out
57
+ f.close
58
+ rescue
59
+ end
60
+ end
61
+ end
62
+
63
+
64
+ task :c => :console
22
65
  task :test => :spec
23
66
  task :default => :spec
@@ -4,7 +4,7 @@ description: "ruby API Client for the space based MMO EVEOnline"
4
4
  license: MIT
5
5
  authors: Adam Ladachowski
6
6
  email: adam@saiden.pl
7
- homepage: https://rubygems.org/gems/eveapi
7
+ homepage: https://github.com/aladac/eveapi
8
8
 
9
9
  required_ruby_version: '>= 1.9'
10
10
 
@@ -18,3 +18,7 @@ development_dependencies:
18
18
  rake: ~> 10.0
19
19
  rdoc: ~> 4.0
20
20
  rspec: ~> 3.0
21
+ vcr: ~> 2.9
22
+ webmock: ~> 1
23
+ pry: ~> 0.10
24
+ awesome_print: ~> 1.6
@@ -4,9 +4,12 @@ $LOAD_PATH << lib_dir unless $LOAD_PATH.include?(lib_dir)
4
4
  require 'eveapi/version'
5
5
  require 'eveapi/client'
6
6
  require 'eveapi/request'
7
+ require 'eveapi/util'
7
8
  require 'excon'
8
9
  require 'crack'
9
10
 
11
+ include EVEApi::Util
12
+
10
13
  class String
11
14
  def camelize
12
15
  self.split("_").each {|s| s.capitalize! }.join("")
@@ -24,7 +24,15 @@ module EVEApi
24
24
  end
25
25
 
26
26
  def api_methods
27
- api_call_list[:calls].map { |m| ( m['type'][0..3].downcase + '_' + m['name'].underscore ).to_sym }
27
+ api_methods_hash.map { |m| m[:name] }
28
+ end
29
+
30
+ def ruby_method_name(m)
31
+ ( m[:type][0..3].downcase + '_' + m[:name].underscore ).to_sym
32
+ end
33
+
34
+ def api_methods_hash
35
+ api_call_list[:calls].map { |m| { name: ruby_method_name(m), desc: m[:description] } }
28
36
  end
29
37
 
30
38
  def method_missing(name, *args, &block)
@@ -33,5 +41,32 @@ module EVEApi
33
41
  request = EVEApi::Request.new @connection.get(path: check_path(name), query: params)
34
42
  request.result
35
43
  end
44
+ def working_methods
45
+ [
46
+ :account_api_key_info,
47
+ :account_account_status,
48
+ :account_characters,
49
+ :server_server_status,
50
+ :char_contracts,
51
+ :char_wallet_transactions,
52
+ :char_wallet_journal,
53
+ :char_upcoming_calendar_events,
54
+ :char_standings,
55
+ :char_skill_queue,
56
+ :char_skill_in_training,
57
+ :char_research,
58
+ :char_notifications,
59
+ :char_medals,
60
+ :char_market_orders,
61
+ :char_mail_messages,
62
+ :char_mailing_lists,
63
+ :char_industry_jobs,
64
+ :char_contact_notifications,
65
+ :char_contact_list,
66
+ :char_character_sheet,
67
+ :char_asset_list,
68
+ :char_account_balance,
69
+ ]
70
+ end
36
71
  end
37
72
  end
@@ -0,0 +1,5 @@
1
+ include EVEApi
2
+ @client = Client.new
3
+ @client.key_id = "4278167"
4
+ @client.vcode = "supersecretstuff"
5
+ @client.character_id = '95512059'
@@ -6,9 +6,9 @@ module EVEApi
6
6
 
7
7
  def initialize(response=nil)
8
8
  @response = response
9
- raise 'No such method' if response.status == 404
9
+ raise "HTTP: #{response.status}" unless response.status == 200
10
10
  @data = parse_xml
11
- @result = self.parse_result
11
+ @result = convert_hash_keys(self.parse_result)
12
12
  raise error if error
13
13
  end
14
14
 
@@ -20,18 +20,28 @@ module EVEApi
20
20
  Crack::XML.parse(response.body)
21
21
  end
22
22
 
23
+ def process_hash(data)
24
+ data.each_value do |v|
25
+ v.process_rows if v.is_a?(Hash)
26
+ end.process_rows
27
+ end
28
+
29
+ def process_array(data)
30
+ data.each do |v|
31
+ v.process_rows if v.is_a?(Hash)
32
+ end
33
+ end
34
+
23
35
  def parse_result
24
- begin
25
- data['eveapi']['result']['rowset']['row']
26
- rescue NoMethodError
27
- data['eveapi']['result']
28
- rescue TypeError
29
- output = {}
30
- data['eveapi']['result']['rowset'].each do |r|
31
- output.merge!({ r['name'].underscore.to_sym => r['row'] })
32
- end
33
- output
36
+ api_result = data['eveapi']['result']
37
+ case api_result['rowset']['row']
38
+ when Array
39
+ return process_array api_result['rowset']['row']
40
+ else
41
+ return api_result['rowset']['row']
34
42
  end
43
+ rescue TypeError, NoMethodError
44
+ return process_hash(api_result)
35
45
  end
36
46
  end
37
47
  end
@@ -0,0 +1,35 @@
1
+ class Hash
2
+ def process_rows
3
+ case self['rowset']
4
+ when Hash
5
+ self.merge!(self['rowset']['name'] => self['rowset']['row'])
6
+ self.delete('rowset')
7
+ when Array
8
+ self['rowset'].each do |rowset|
9
+ self[rowset['name']] = rowset['row']
10
+ end
11
+ self.delete('rowset')
12
+ end
13
+ self.merge!(self.delete(self.keys.first)) if self.length == 1
14
+ return self
15
+ end
16
+ end
17
+
18
+ module EVEApi
19
+ module Util
20
+ def underscore_key(k)
21
+ k.to_s.underscore.to_sym
22
+ end
23
+
24
+ def convert_hash_keys(value)
25
+ case value
26
+ when Array
27
+ value.map { |v| convert_hash_keys(v) }
28
+ when Hash
29
+ Hash[value.map { |k, v| [underscore_key(k), convert_hash_keys(v)] }]
30
+ else
31
+ value
32
+ end
33
+ end
34
+ end
35
+ end
@@ -1,4 +1,4 @@
1
1
  module EVEApi
2
2
  # eveapi version
3
- VERSION = "0.0.3.pre"
3
+ VERSION = "0.0.4.pre"
4
4
  end
@@ -0,0 +1,106 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.eveonline.com/some/BsMethod.xml.aspx?characterID=95512059&keyID=4278167&vCode=supersecretstuff
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - excon/0.45.4
12
+ response:
13
+ status:
14
+ code: 404
15
+ message: ''
16
+ headers:
17
+ Content-Type:
18
+ - text/html; charset=utf-8
19
+ Server:
20
+ - Microsoft-IIS/7.5
21
+ Access-Control-Allow-Origin:
22
+ - "*"
23
+ Date:
24
+ - Wed, 09 Sep 2015 12:35:44 GMT
25
+ Content-Length:
26
+ - '7383'
27
+ body:
28
+ encoding: UTF-8
29
+ string: "<!DOCTYPE html>\r\n<html>\r\n <head><script type=\"text/javascript\">window.NREUM||(NREUM={});NREUM.info
30
+ = {\"beacon\":\"bam.nr-data.net\",\"errorBeacon\":\"bam.nr-data.net\",\"licenseKey\":\"4519cc3c6b\",\"applicationID\":\"2400733\",\"transactionName\":\"b1xaYEADDEoHBxVRX1YWa0BTFhdKJQsFXR8MCQw=\",\"queueTime\":1,\"applicationTime\":3,\"ttGuid\":\"4AEF5D03368A424F\",\"agent\":\"js-agent.newrelic.com/nr-686.min.js\"}</script><script
31
+ type=\"text/javascript\">window.NREUM||(NREUM={}),__nr_require=function(e,n,t){function
32
+ r(t){if(!n[t]){var o=n[t]={exports:{}};e[t][0].call(o.exports,function(n){var
33
+ o=e[t][1][n];return r(o?o:n)},o,o.exports)}return n[t].exports}if(\"function\"==typeof
34
+ __nr_require)return __nr_require;for(var o=0;o<t.length;o++)r(t[o]);return
35
+ r}({QJf3ax:[function(e,n){function t(e){function n(n,t,a){e&&e(n,t,a),a||(a={});for(var
36
+ u=c(n),f=u.length,s=i(a,o,r),p=0;f>p;p++)u[p].apply(s,t);return s}function
37
+ a(e,n){f[e]=c(e).concat(n)}function c(e){return f[e]||[]}function u(){return
38
+ t(n)}var f={};return{on:a,emit:n,create:u,listeners:c,_events:f}}function
39
+ r(){return{}}var o=\"nr@context\",i=e(\"gos\");n.exports=t()},{gos:\"7eSDFh\"}],ee:[function(e,n){n.exports=e(\"QJf3ax\")},{}],3:[function(e,n){function
40
+ t(e){return function(){r(e,[(new Date).getTime()].concat(i(arguments)))}}var
41
+ r=e(\"handle\"),o=e(1),i=e(2);\"undefined\"==typeof window.newrelic&&(newrelic=window.NREUM);var
42
+ a=[\"setPageViewName\",\"addPageAction\",\"setCustomAttribute\",\"finished\",\"addToTrace\",\"inlineHit\",\"noticeError\"];o(a,function(e,n){window.NREUM[n]=t(\"api-\"+n)}),n.exports=window.NREUM},{1:12,2:13,handle:\"D5DuLP\"}],gos:[function(e,n){n.exports=e(\"7eSDFh\")},{}],\"7eSDFh\":[function(e,n){function
43
+ t(e,n,t){if(r.call(e,n))return e[n];var o=t();if(Object.defineProperty&&Object.keys)try{return
44
+ Object.defineProperty(e,n,{value:o,writable:!0,enumerable:!1}),o}catch(i){}return
45
+ e[n]=o,o}var r=Object.prototype.hasOwnProperty;n.exports=t},{}],D5DuLP:[function(e,n){function
46
+ t(e,n,t){return r.listeners(e).length?r.emit(e,n,t):void(r.q&&(r.q[e]||(r.q[e]=[]),r.q[e].push(n)))}var
47
+ r=e(\"ee\").create();n.exports=t,t.ee=r,r.q={}},{ee:\"QJf3ax\"}],handle:[function(e,n){n.exports=e(\"D5DuLP\")},{}],XL7HBI:[function(e,n){function
48
+ t(e){var n=typeof e;return!e||\"object\"!==n&&\"function\"!==n?-1:e===window?0:i(e,o,function(){return
49
+ r++})}var r=1,o=\"nr@id\",i=e(\"gos\");n.exports=t},{gos:\"7eSDFh\"}],id:[function(e,n){n.exports=e(\"XL7HBI\")},{}],G9z0Bl:[function(e,n){function
50
+ t(){var e=d.info=NREUM.info,n=f.getElementsByTagName(\"script\")[0];if(e&&e.licenseKey&&e.applicationID&&n){c(p,function(n,t){n
51
+ in e||(e[n]=t)});var t=\"https\"===s.split(\":\")[0]||e.sslForHttp;d.proto=t?\"https://\":\"http://\",a(\"mark\",[\"onload\",i()]);var
52
+ r=f.createElement(\"script\");r.src=d.proto+e.agent,n.parentNode.insertBefore(r,n)}}function
53
+ r(){\"complete\"===f.readyState&&o()}function o(){a(\"mark\",[\"domContent\",i()])}function
54
+ i(){return(new Date).getTime()}var a=e(\"handle\"),c=e(1),u=window,f=u.document;e(2);var
55
+ s=(\"\"+location).split(\"?\")[0],p={beacon:\"bam.nr-data.net\",errorBeacon:\"bam.nr-data.net\",agent:\"js-agent.newrelic.com/nr-686.min.js\"},d=n.exports={offset:i(),origin:s,features:{}};f.addEventListener?(f.addEventListener(\"DOMContentLoaded\",o,!1),u.addEventListener(\"load\",t,!1)):(f.attachEvent(\"onreadystatechange\",r),u.attachEvent(\"onload\",t)),a(\"mark\",[\"firstbyte\",i()])},{1:12,2:3,handle:\"D5DuLP\"}],loader:[function(e,n){n.exports=e(\"G9z0Bl\")},{}],12:[function(e,n){function
56
+ t(e,n){var t=[],o=\"\",i=0;for(o in e)r.call(e,o)&&(t[i]=n(o,e[o]),i+=1);return
57
+ t}var r=Object.prototype.hasOwnProperty;n.exports=t},{}],13:[function(e,n){function
58
+ t(e,n,t){n||(n=0),\"undefined\"==typeof t&&(t=e?e.length:0);for(var r=-1,o=t-n||0,i=Array(0>o?0:o);++r<o;)i[r]=e[n+r];return
59
+ i}n.exports=t},{}]},{},[\"G9z0Bl\"]);</script>\r\n <title>The resource
60
+ cannot be found.</title>\r\n <meta name=\"viewport\" content=\"width=device-width\"
61
+ />\r\n <style>\r\n body {font-family:\"Verdana\";font-weight:normal;font-size:
62
+ .7em;color:black;} \r\n p {font-family:\"Verdana\";font-weight:normal;color:black;margin-top:
63
+ -5px}\r\n b {font-family:\"Verdana\";font-weight:bold;color:black;margin-top:
64
+ -5px}\r\n H1 { font-family:\"Verdana\";font-weight:normal;font-size:18pt;color:red
65
+ }\r\n H2 { font-family:\"Verdana\";font-weight:normal;font-size:14pt;color:maroon
66
+ }\r\n pre {font-family:\"Consolas\",\"Lucida Console\",Monospace;font-size:11pt;margin:0;padding:0.5em;line-height:14pt}\r\n
67
+ \ .marker {font-weight: bold; color: black;text-decoration: none;}\r\n
68
+ \ .version {color: gray;}\r\n .error {margin-bottom: 10px;}\r\n
69
+ \ .expandable { text-decoration:underline; font-weight:bold; color:navy;
70
+ cursor:hand; }\r\n @media screen and (max-width: 639px) {\r\n pre
71
+ { width: 440px; overflow: auto; white-space: pre-wrap; word-wrap: break-word;
72
+ }\r\n }\r\n @media screen and (max-width: 479px) {\r\n pre
73
+ { width: 280px; }\r\n }\r\n </style>\r\n </head>\r\n\r\n
74
+ \ <body bgcolor=\"white\">\r\n\r\n <span><H1>Server Error in
75
+ '/' Application.<hr width=100% size=1 color=silver></H1>\r\n\r\n <h2>
76
+ <i>The resource cannot be found.</i> </h2></span>\r\n\r\n <font
77
+ face=\"Arial, Helvetica, Geneva, SunSans-Regular, sans-serif \">\r\n\r\n <b>
78
+ Description: </b>HTTP 404. The resource you are looking for (or one of its
79
+ dependencies) could have been removed, had its name changed, or is temporarily
80
+ unavailable. &nbsp;Please review the following URL and make sure that it is
81
+ spelled correctly.\r\n <br><br>\r\n\r\n <b> Requested
82
+ URL: </b>/some/BsMethod.xml.aspx<br><br>\r\n\r\n <hr width=100%
83
+ size=1 color=silver>\r\n\r\n <b>Version Information:</b>&nbsp;Microsoft
84
+ .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.34249\r\n\r\n
85
+ \ </font>\r\n\r\n </body>\r\n</html>\r\n<!-- \r\n[HttpException]:
86
+ The file &#39;/some/BsMethod.xml.aspx&#39; does not exist.\r\n at System.Web.UI.Util.CheckVirtualFileExists(VirtualPath
87
+ virtualPath)\r\n at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath
88
+ virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile,
89
+ Boolean throwIfNotFound, Boolean ensureIsUpToDate)\r\n at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext
90
+ context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp,
91
+ Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate)\r\n
92
+ \ at System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath
93
+ virtualPath, HttpContext context, Boolean allowCrossApp, Boolean throwIfNotFound)\r\n
94
+ \ at System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath
95
+ virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp)\r\n
96
+ \ at System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context,
97
+ String requestType, VirtualPath virtualPath, String physicalPath)\r\n at
98
+ System.Web.HttpApplication.MaterializeHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()\r\n
99
+ \ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&
100
+ completedSynchronously)\r\n--><!-- \r\nThis error page might contain sensitive
101
+ information because ASP.NET is configured to show verbose error messages using
102
+ &lt;customErrors mode=\"Off\"/&gt;. Consider using &lt;customErrors mode=\"On\"/&gt;
103
+ or &lt;customErrors mode=\"RemoteOnly\"/&gt; in production environments.-->"
104
+ http_version:
105
+ recorded_at: Wed, 09 Sep 2015 12:35:44 GMT
106
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,31 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.eveonline.com/server/ServerStatus.xml.aspx?characterID=95512059&keyID=4278167&vCode=supersecretstuff
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - excon/0.45.4
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: ''
16
+ headers:
17
+ Content-Type:
18
+ - application/xml; charset=utf-8
19
+ Access-Control-Allow-Origin:
20
+ - "*"
21
+ Date:
22
+ - Wed, 09 Sep 2015 12:35:44 GMT
23
+ body:
24
+ encoding: UTF-8
25
+ string: "<?xml version='1.0' encoding='UTF-8'?>\r\n<eveapi version=\"2\">\r\n
26
+ \ <currentTime>2015-09-09 12:35:44</currentTime>\r\n <result>\r\n <serverOpen>True</serverOpen>\r\n
27
+ \ <onlinePlayers>13626</onlinePlayers>\r\n </result>\r\n <cachedUntil>2015-09-09
28
+ 12:37:49</cachedUntil>\r\n</eveapi>"
29
+ http_version:
30
+ recorded_at: Wed, 09 Sep 2015 12:35:44 GMT
31
+ recorded_with: VCR 2.9.3