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.
- checksums.yaml +8 -8
- data/.gitmodules +3 -0
- data/Gemfile +7 -0
- data/README.md +38 -5
- data/Rakefile +43 -0
- data/gemspec.yml +5 -1
- data/lib/eveapi.rb +3 -0
- data/lib/eveapi/client.rb +36 -1
- data/lib/eveapi/console.rb +5 -0
- data/lib/eveapi/request.rb +22 -12
- data/lib/eveapi/util.rb +35 -0
- data/lib/eveapi/version.rb +1 -1
- data/spec/cassettes/EVEApi/calling_a_method_not_present_in_the_EVEApi_should_fail.yml +106 -0
- data/spec/cassettes/EVEApi/calling_a_method_present_in_the_EVEApi_should_success.yml +31 -0
- data/spec/cassettes/EVEApi/calling_api_method_account_account_status.yml +33 -0
- data/spec/cassettes/EVEApi/calling_api_method_account_api_key_info.yml +35 -0
- data/spec/cassettes/EVEApi/calling_api_method_account_characters.yml +34 -0
- data/spec/cassettes/EVEApi/calling_api_method_char_account_balance.yml +32 -0
- data/spec/cassettes/EVEApi/calling_api_method_char_asset_list.yml +79 -0
- data/spec/cassettes/EVEApi/calling_api_method_char_character_sheet.yml +79 -0
- data/spec/cassettes/EVEApi/calling_api_method_char_contact_list.yml +47 -0
- data/spec/cassettes/EVEApi/calling_api_method_char_contact_notifications.yml +31 -0
- data/spec/cassettes/EVEApi/calling_api_method_char_contracts.yml +31 -0
- data/spec/cassettes/EVEApi/calling_api_method_char_industry_jobs.yml +31 -0
- data/spec/cassettes/EVEApi/calling_api_method_char_mail_messages.yml +31 -0
- data/spec/cassettes/EVEApi/calling_api_method_char_mailing_lists.yml +31 -0
- data/spec/cassettes/EVEApi/calling_api_method_char_market_orders.yml +31 -0
- data/spec/cassettes/EVEApi/calling_api_method_char_medals.yml +32 -0
- data/spec/cassettes/EVEApi/calling_api_method_char_notifications.yml +31 -0
- data/spec/cassettes/EVEApi/calling_api_method_char_research.yml +31 -0
- data/spec/cassettes/EVEApi/calling_api_method_char_skill_in_training.yml +31 -0
- data/spec/cassettes/EVEApi/calling_api_method_char_skill_queue.yml +31 -0
- data/spec/cassettes/EVEApi/calling_api_method_char_standings.yml +45 -0
- data/spec/cassettes/EVEApi/calling_api_method_char_upcoming_calendar_events.yml +31 -0
- data/spec/cassettes/EVEApi/calling_api_method_char_wallet_journal.yml +31 -0
- data/spec/cassettes/EVEApi/calling_api_method_char_wallet_transactions.yml +31 -0
- data/spec/cassettes/EVEApi/calling_api_method_server_server_status.yml +31 -0
- data/spec/cassettes/EVEApi/calling_api_methods_should_return_an_Array_of_method_symobls.yml +160 -0
- data/spec/eveapi_spec.rb +41 -29
- data/spec/spec_helper.rb +8 -0
- metadata +88 -3
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MDA5NDcwZDRmMGI0MTMzZDJlMDQ0N2QyZDZhMDg4NDQ2YTM0NjcxMg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YWQxZDRjZTNmOGNlODM4YThiMGIxYjY3ZTc5MmRhYTBkZGE2MWIzNA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MjAyOTRkMzExY2VmNDNhNjdiYjYyZjBkYmFmYWVjNDFlMjc0NWZkMDY5ZjI3
|
10
|
+
NDA5ZjMyNTdlZmE5YmE4ODBlMzU1NmVkNjNlOWFhOTY3ZGQ1M2FhOGU1ZDJh
|
11
|
+
OGZhOGU2OWUzZDgyNTU4MjljN2ZjNjQyZjI2MjdlODViMTViZTM=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
OTA4ZTJmYzNiYWE2ZDVjZDU1MzdhZWY2ZDBjNmM0ZjA3ZGY0NmJmN2NmOThk
|
14
|
+
NjJmMzFlNmQzOTAxZWQxZjY3OWE1ZjA3MDAwMTA1MjRiOTg4MjMwMzYyZWRh
|
15
|
+
NWQwM2U3NTg2YzI4Y2YxOTIzMDJkMTE1NTQwZTljY2FhODFiMWE=
|
data/.gitmodules
ADDED
data/Gemfile
CHANGED
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
|
-
|
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
|
-
|
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 =
|
47
|
-
client.vcode =
|
70
|
+
client.key_id = 4278167
|
71
|
+
client.vcode = "7QJg6p5BZNpDBp2FIz39dGwa7jnNaXAuYyLUVitlTQ3rY60VPBcaTpJVfYIkiW5l"
|
48
72
|
client.account_characters
|
49
|
-
|
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
|
data/gemspec.yml
CHANGED
@@ -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://
|
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
|
data/lib/eveapi.rb
CHANGED
@@ -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("")
|
data/lib/eveapi/client.rb
CHANGED
@@ -24,7 +24,15 @@ module EVEApi
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def api_methods
|
27
|
-
|
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
|
data/lib/eveapi/request.rb
CHANGED
@@ -6,9 +6,9 @@ module EVEApi
|
|
6
6
|
|
7
7
|
def initialize(response=nil)
|
8
8
|
@response = response
|
9
|
-
raise
|
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
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
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
|
data/lib/eveapi/util.rb
ADDED
@@ -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
|
data/lib/eveapi/version.rb
CHANGED
@@ -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. 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> 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 '/some/BsMethod.xml.aspx' 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
|
+
<customErrors mode=\"Off\"/>. Consider using <customErrors mode=\"On\"/>
|
103
|
+
or <customErrors mode=\"RemoteOnly\"/> 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
|