eve_online 0.11.0 → 0.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +4 -0
- data/.travis.yml +27 -10
- data/Gemfile +1 -1
- data/LICENSE.txt +1 -1
- data/README.md +297 -121
- data/gemfiles/activesupport_51.gemfile +5 -0
- data/gemfiles/activesupport_edge.gemfile +5 -0
- data/lib/eve_online.rb +52 -45
- data/lib/eve_online/esi/character.rb +13 -11
- data/lib/eve_online/esi/character_loyalty_points.rb +1 -1
- data/lib/eve_online/esi/character_portrait.rb +5 -5
- data/lib/eve_online/esi/models/loyalty_point.rb +2 -2
- data/lib/eve_online/esi/models/skill.rb +3 -3
- data/lib/eve_online/esi/server_status.rb +40 -0
- data/lib/eve_online/exceptions/{exception.rb → base.rb} +1 -1
- data/lib/eve_online/exceptions/invalid_character_id_exception.rb +6 -0
- data/lib/eve_online/exceptions/timeout_exception.rb +1 -1
- data/lib/eve_online/exceptions/unauthorized_exception.rb +6 -0
- data/lib/eve_online/version.rb +1 -1
- data/lib/eve_online/{account/characters.rb → xml/account_characters.rb} +2 -2
- data/lib/eve_online/xml/account_status.rb +31 -0
- data/lib/eve_online/{account → xml}/api_key_info.rb +11 -22
- data/lib/eve_online/xml/base.rb +84 -0
- data/lib/eve_online/{characters/account_balance.rb → xml/character_account_balance.rb} +2 -2
- data/lib/eve_online/{characters/asset_list.rb → xml/character_asset_list.rb} +2 -2
- data/lib/eve_online/{characters/blueprints.rb → xml/character_blueprints.rb} +2 -2
- data/lib/eve_online/{characters/bookmarks.rb → xml/character_bookmarks.rb} +2 -2
- data/lib/eve_online/{characters/calendar_event_attendees.rb → xml/character_calendar_event_attendees.rb} +2 -2
- data/lib/eve_online/{characters/chat_channels.rb → xml/character_chat_channels.rb} +2 -2
- data/lib/eve_online/{characters/contact_list.rb → xml/character_contact_list.rb} +2 -2
- data/lib/eve_online/{characters/contact_notifications.rb → xml/character_contact_notifications.rb} +2 -2
- data/lib/eve_online/{characters/contract_bids.rb → xml/character_contract_bids.rb} +2 -2
- data/lib/eve_online/{characters/contract_items.rb → xml/character_contract_items.rb} +2 -2
- data/lib/eve_online/{characters/contracts.rb → xml/character_contracts.rb} +2 -2
- data/lib/eve_online/{characters/fac_war_stats.rb → xml/character_fac_war_stats.rb} +2 -2
- data/lib/eve_online/{characters/industry_jobs.rb → xml/character_industry_jobs.rb} +2 -2
- data/lib/eve_online/{characters/industry_jobs_history.rb → xml/character_industry_jobs_history.rb} +2 -2
- data/lib/eve_online/{characters/kill_mails.rb → xml/character_kill_mails.rb} +2 -2
- data/lib/eve_online/{characters/locations.rb → xml/character_locations.rb} +2 -2
- data/lib/eve_online/{characters/mail_bodies.rb → xml/character_mail_bodies.rb} +2 -2
- data/lib/eve_online/{characters/mail_messages.rb → xml/character_mail_messages.rb} +2 -2
- data/lib/eve_online/{characters/mailing_lists.rb → xml/character_mailing_lists.rb} +2 -2
- data/lib/eve_online/{characters/market_orders.rb → xml/character_market_orders.rb} +2 -2
- data/lib/eve_online/{characters/medals.rb → xml/character_medals.rb} +2 -2
- data/lib/eve_online/{characters/notification_texts.rb → xml/character_notification_texts.rb} +2 -2
- data/lib/eve_online/{characters/notifications.rb → xml/character_notifications.rb} +2 -2
- data/lib/eve_online/{characters/planetary_colonies.rb → xml/character_planetary_colonies.rb} +2 -2
- data/lib/eve_online/{characters/planetary_links.rb → xml/character_planetary_links.rb} +2 -2
- data/lib/eve_online/{characters/planetary_pins.rb → xml/character_planetary_pins.rb} +2 -2
- data/lib/eve_online/{characters/planetary_routes.rb → xml/character_planetary_routes.rb} +2 -2
- data/lib/eve_online/{characters/research.rb → xml/character_research.rb} +2 -2
- data/lib/eve_online/{characters → xml}/character_sheet.rb +16 -7
- data/lib/eve_online/{characters/skill_in_training.rb → xml/character_skill_in_training.rb} +2 -2
- data/lib/eve_online/{characters/skill_queue.rb → xml/character_skill_queue.rb} +2 -2
- data/lib/eve_online/{characters/standings.rb → xml/character_standings.rb} +2 -2
- data/lib/eve_online/{characters/upcoming_calendar_events.rb → xml/character_upcoming_calendar_events.rb} +2 -2
- data/lib/eve_online/{characters/wallet_journal.rb → xml/character_wallet_journal.rb} +2 -2
- data/lib/eve_online/{characters/wallet_transactions.rb → xml/character_wallet_transactions.rb} +2 -2
- data/lib/eve_online/{corporations/market_orders.rb → xml/corporation_market_orders.rb} +2 -2
- data/lib/eve_online/xml/models/account_status.rb +40 -0
- data/lib/eve_online/xml/models/account_type_object.rb +22 -0
- data/lib/eve_online/xml/models/api_key_info.rb +35 -0
- data/lib/eve_online/{server/status.rb → xml/server_status.rb} +2 -2
- metadata +53 -45
- data/lib/eve_online/account/status.rb +0 -47
- data/lib/eve_online/account_type_object.rb +0 -18
data/lib/eve_online.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
require 'eve_online/version'
|
2
2
|
|
3
|
-
require 'eve_online/exceptions/
|
3
|
+
require 'eve_online/exceptions/base'
|
4
4
|
require 'eve_online/exceptions/timeout_exception'
|
5
|
+
require 'eve_online/exceptions/unauthorized_exception'
|
6
|
+
require 'eve_online/exceptions/invalid_character_id_exception'
|
5
7
|
|
6
8
|
require 'eve_online/base'
|
7
9
|
require 'eve_online/base_xml'
|
@@ -26,56 +28,60 @@ require 'eve_online/standing'
|
|
26
28
|
require 'eve_online/contact_notification'
|
27
29
|
require 'eve_online/wallet_journal_entry'
|
28
30
|
require 'eve_online/market_order'
|
29
|
-
require 'eve_online/account_type_object'
|
30
|
-
|
31
|
-
require 'eve_online/account/api_key_info'
|
32
|
-
require 'eve_online/account/characters'
|
33
|
-
require 'eve_online/account/status'
|
34
|
-
|
35
|
-
require 'eve_online/characters/account_balance'
|
36
|
-
require 'eve_online/characters/asset_list'
|
37
|
-
require 'eve_online/characters/blueprints'
|
38
|
-
require 'eve_online/characters/bookmarks'
|
39
|
-
require 'eve_online/characters/calendar_event_attendees'
|
40
|
-
require 'eve_online/characters/contact_list'
|
41
|
-
require 'eve_online/characters/contact_notifications'
|
42
|
-
require 'eve_online/characters/medals'
|
43
|
-
require 'eve_online/characters/character_sheet'
|
44
|
-
require 'eve_online/characters/upcoming_calendar_events'
|
45
|
-
require 'eve_online/characters/skill_in_training'
|
46
|
-
require 'eve_online/characters/standings'
|
47
|
-
require 'eve_online/characters/contracts'
|
48
|
-
require 'eve_online/characters/chat_channels'
|
49
|
-
require 'eve_online/characters/contract_bids'
|
50
|
-
require 'eve_online/characters/contract_items'
|
51
|
-
require 'eve_online/characters/fac_war_stats'
|
52
|
-
require 'eve_online/characters/industry_jobs'
|
53
|
-
require 'eve_online/characters/industry_jobs_history'
|
54
|
-
require 'eve_online/characters/kill_mails'
|
55
|
-
require 'eve_online/characters/locations'
|
56
|
-
require 'eve_online/characters/mail_bodies'
|
57
|
-
require 'eve_online/characters/mailing_lists'
|
58
|
-
require 'eve_online/characters/mail_messages'
|
59
|
-
require 'eve_online/characters/market_orders'
|
60
|
-
require 'eve_online/characters/notifications'
|
61
|
-
require 'eve_online/characters/notification_texts'
|
62
|
-
require 'eve_online/characters/planetary_colonies'
|
63
|
-
require 'eve_online/characters/planetary_links'
|
64
|
-
require 'eve_online/characters/planetary_pins'
|
65
|
-
require 'eve_online/characters/planetary_routes'
|
66
|
-
require 'eve_online/characters/research'
|
67
|
-
require 'eve_online/characters/skill_queue'
|
68
|
-
require 'eve_online/characters/wallet_journal'
|
69
|
-
require 'eve_online/characters/wallet_transactions'
|
70
|
-
|
71
|
-
require 'eve_online/corporations/market_orders'
|
72
31
|
|
73
32
|
require 'eve_online/eve/character_id'
|
74
|
-
require 'eve_online/server/status'
|
75
33
|
|
76
34
|
require 'eve_online/sovereignty/campaigns'
|
77
35
|
|
36
|
+
# XML API
|
37
|
+
require 'eve_online/xml/base'
|
38
|
+
require 'eve_online/xml/account_status'
|
39
|
+
require 'eve_online/xml/api_key_info'
|
40
|
+
require 'eve_online/xml/account_characters'
|
41
|
+
require 'eve_online/xml/character_account_balance'
|
42
|
+
require 'eve_online/xml/character_asset_list'
|
43
|
+
require 'eve_online/xml/character_blueprints'
|
44
|
+
require 'eve_online/xml/character_bookmarks'
|
45
|
+
require 'eve_online/xml/character_sheet'
|
46
|
+
require 'eve_online/xml/character_medals'
|
47
|
+
require 'eve_online/xml/character_skill_queue'
|
48
|
+
require 'eve_online/xml/character_chat_channels'
|
49
|
+
require 'eve_online/xml/character_calendar_event_attendees'
|
50
|
+
require 'eve_online/xml/character_contact_list'
|
51
|
+
require 'eve_online/xml/character_contact_notifications'
|
52
|
+
require 'eve_online/xml/character_upcoming_calendar_events'
|
53
|
+
require 'eve_online/xml/character_skill_in_training'
|
54
|
+
require 'eve_online/xml/character_standings'
|
55
|
+
require 'eve_online/xml/character_contracts'
|
56
|
+
require 'eve_online/xml/character_contract_bids'
|
57
|
+
require 'eve_online/xml/character_contract_items'
|
58
|
+
require 'eve_online/xml/character_fac_war_stats'
|
59
|
+
require 'eve_online/xml/character_industry_jobs'
|
60
|
+
require 'eve_online/xml/character_industry_jobs_history'
|
61
|
+
require 'eve_online/xml/character_kill_mails'
|
62
|
+
require 'eve_online/xml/character_locations'
|
63
|
+
require 'eve_online/xml/character_mail_bodies'
|
64
|
+
require 'eve_online/xml/character_mailing_lists'
|
65
|
+
require 'eve_online/xml/character_mail_messages'
|
66
|
+
require 'eve_online/xml/character_market_orders'
|
67
|
+
require 'eve_online/xml/character_notifications'
|
68
|
+
require 'eve_online/xml/character_notification_texts'
|
69
|
+
require 'eve_online/xml/character_planetary_colonies'
|
70
|
+
require 'eve_online/xml/character_planetary_links'
|
71
|
+
require 'eve_online/xml/character_planetary_pins'
|
72
|
+
require 'eve_online/xml/character_planetary_routes'
|
73
|
+
require 'eve_online/xml/character_research'
|
74
|
+
require 'eve_online/xml/character_wallet_journal'
|
75
|
+
require 'eve_online/xml/character_wallet_transactions'
|
76
|
+
|
77
|
+
require 'eve_online/xml/server_status'
|
78
|
+
|
79
|
+
require 'eve_online/xml/corporation_market_orders'
|
80
|
+
|
81
|
+
require 'eve_online/xml/models/account_status'
|
82
|
+
require 'eve_online/xml/models/api_key_info'
|
78
83
|
require 'eve_online/xml/models/skill_queue_entry'
|
84
|
+
require 'eve_online/xml/models/account_type_object'
|
79
85
|
|
80
86
|
# ESI API
|
81
87
|
require 'eve_online/esi/base'
|
@@ -85,6 +91,7 @@ require 'eve_online/esi/character_portrait'
|
|
85
91
|
require 'eve_online/esi/character_skills'
|
86
92
|
require 'eve_online/esi/character_skill_queue'
|
87
93
|
require 'eve_online/esi/character_loyalty_points'
|
94
|
+
require 'eve_online/esi/server_status'
|
88
95
|
|
89
96
|
require 'eve_online/esi/models/loyalty_point'
|
90
97
|
require 'eve_online/esi/models/skill_queue_entry'
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module EveOnline
|
2
2
|
module ESI
|
3
3
|
class Character < Base
|
4
|
-
API_ENDPOINT = 'https://esi.tech.ccp.is/
|
4
|
+
API_ENDPOINT = 'https://esi.tech.ccp.is/v4/characters/%s/?datasource=tranquility'.freeze
|
5
5
|
|
6
6
|
attr_reader :character_id
|
7
7
|
|
@@ -26,43 +26,45 @@ module EveOnline
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def corporation_id
|
29
|
-
response
|
29
|
+
response['corporation_id']
|
30
30
|
end
|
31
31
|
|
32
32
|
def birthday
|
33
|
-
|
33
|
+
birthday = response['birthday']
|
34
|
+
|
35
|
+
parse_datetime_with_timezone(birthday) if birthday
|
34
36
|
end
|
35
37
|
|
36
38
|
def name
|
37
|
-
response
|
39
|
+
response['name']
|
38
40
|
end
|
39
41
|
|
40
42
|
def gender
|
41
|
-
response
|
43
|
+
response['gender']
|
42
44
|
end
|
43
45
|
|
44
46
|
def race_id
|
45
|
-
response
|
47
|
+
response['race_id']
|
46
48
|
end
|
47
49
|
|
48
50
|
def bloodline_id
|
49
|
-
response
|
51
|
+
response['bloodline_id']
|
50
52
|
end
|
51
53
|
|
52
54
|
def description
|
53
|
-
response
|
55
|
+
response['description']
|
54
56
|
end
|
55
57
|
|
56
58
|
def alliance_id
|
57
|
-
response
|
59
|
+
response['alliance_id']
|
58
60
|
end
|
59
61
|
|
60
62
|
def ancestry_id
|
61
|
-
response
|
63
|
+
response['ancestry_id']
|
62
64
|
end
|
63
65
|
|
64
66
|
def security_status
|
65
|
-
response
|
67
|
+
response['security_status']
|
66
68
|
end
|
67
69
|
|
68
70
|
def scope; end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module EveOnline
|
2
2
|
module ESI
|
3
3
|
class CharacterLoyaltyPoints < Base
|
4
|
-
API_ENDPOINT = 'https://esi.tech.ccp.is/
|
4
|
+
API_ENDPOINT = 'https://esi.tech.ccp.is/v1/characters/%s/loyalty/points/?datasource=tranquility'.freeze
|
5
5
|
|
6
6
|
attr_reader :character_id
|
7
7
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module EveOnline
|
2
2
|
module ESI
|
3
3
|
class CharacterPortrait < Base
|
4
|
-
API_ENDPOINT = 'https://esi.tech.ccp.is/
|
4
|
+
API_ENDPOINT = 'https://esi.tech.ccp.is/v2/characters/%s/portrait/?datasource=tranquility'.freeze
|
5
5
|
|
6
6
|
attr_reader :character_id
|
7
7
|
|
@@ -30,19 +30,19 @@ module EveOnline
|
|
30
30
|
end
|
31
31
|
|
32
32
|
def small
|
33
|
-
response
|
33
|
+
response['px64x64']
|
34
34
|
end
|
35
35
|
|
36
36
|
def medium
|
37
|
-
response
|
37
|
+
response['px128x128']
|
38
38
|
end
|
39
39
|
|
40
40
|
def large
|
41
|
-
response
|
41
|
+
response['px256x256']
|
42
42
|
end
|
43
43
|
|
44
44
|
def huge
|
45
|
-
response
|
45
|
+
response['px512x512']
|
46
46
|
end
|
47
47
|
|
48
48
|
def gigantic
|
@@ -17,15 +17,15 @@ module EveOnline
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def skill_id
|
20
|
-
options
|
20
|
+
options['skill_id']
|
21
21
|
end
|
22
22
|
|
23
23
|
def skillpoints_in_skill
|
24
|
-
options
|
24
|
+
options['skillpoints_in_skill']
|
25
25
|
end
|
26
26
|
|
27
27
|
def current_skill_level
|
28
|
-
options
|
28
|
+
options['current_skill_level']
|
29
29
|
end
|
30
30
|
end
|
31
31
|
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module EveOnline
|
2
|
+
module ESI
|
3
|
+
class ServerStatus < Base
|
4
|
+
API_ENDPOINT = 'https://esi.tech.ccp.is/v1/status/?datasource=tranquility'.freeze
|
5
|
+
|
6
|
+
def as_json
|
7
|
+
{
|
8
|
+
start_time: start_time,
|
9
|
+
players: players,
|
10
|
+
server_version: server_version,
|
11
|
+
vip: vip
|
12
|
+
}
|
13
|
+
end
|
14
|
+
|
15
|
+
def start_time
|
16
|
+
start_time = response['start_time']
|
17
|
+
|
18
|
+
parse_datetime_with_timezone(start_time) if start_time
|
19
|
+
end
|
20
|
+
|
21
|
+
def players
|
22
|
+
response['players']
|
23
|
+
end
|
24
|
+
|
25
|
+
def server_version
|
26
|
+
response['server_version']
|
27
|
+
end
|
28
|
+
|
29
|
+
def vip
|
30
|
+
response['vip']
|
31
|
+
end
|
32
|
+
|
33
|
+
def scope; end
|
34
|
+
|
35
|
+
def url
|
36
|
+
API_ENDPOINT
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
data/lib/eve_online/version.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module EveOnline
|
2
|
-
module
|
2
|
+
module XML
|
3
3
|
# https://eveonline-third-party-documentation.readthedocs.org/en/latest/xmlapi/account/account_characters.html
|
4
|
-
class
|
4
|
+
class AccountCharacters < Base
|
5
5
|
API_ENDPOINT = 'https://api.eveonline.com/account/Characters.xml.aspx'.freeze
|
6
6
|
|
7
7
|
attr_reader :key_id, :v_code
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'forwardable'
|
2
|
+
|
3
|
+
module EveOnline
|
4
|
+
module XML
|
5
|
+
# https://eveonline-third-party-documentation.readthedocs.org/en/latest/xmlapi/account/account_accountstatus.html
|
6
|
+
class AccountStatus < Base
|
7
|
+
extend Forwardable
|
8
|
+
|
9
|
+
API_ENDPOINT = 'https://api.eveonline.com/account/AccountStatus.xml.aspx'.freeze
|
10
|
+
|
11
|
+
attr_reader :key_id, :v_code, :model
|
12
|
+
|
13
|
+
def_delegators :model, :as_json, :paid_until, :create_date, :logon_count, :logon_minutes
|
14
|
+
|
15
|
+
def initialize(key_id, v_code)
|
16
|
+
super()
|
17
|
+
@key_id = key_id
|
18
|
+
@v_code = v_code
|
19
|
+
end
|
20
|
+
|
21
|
+
def model
|
22
|
+
Models::AccountStatus.new(result)
|
23
|
+
end
|
24
|
+
memoize :model
|
25
|
+
|
26
|
+
def url
|
27
|
+
"#{ API_ENDPOINT }?keyID=#{ key_id }&vCode=#{ v_code }"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -1,26 +1,27 @@
|
|
1
|
+
require 'forwardable'
|
2
|
+
|
1
3
|
module EveOnline
|
2
|
-
module
|
4
|
+
module XML
|
3
5
|
# https://eveonline-third-party-documentation.readthedocs.org/en/latest/xmlapi/account/account_apikeyinfo.html
|
4
|
-
class ApiKeyInfo <
|
6
|
+
class ApiKeyInfo < Base
|
7
|
+
extend Forwardable
|
8
|
+
|
5
9
|
API_ENDPOINT = 'https://api.eveonline.com/account/APIKeyInfo.xml.aspx'.freeze
|
6
10
|
|
7
11
|
attr_reader :key_id, :v_code
|
8
12
|
|
13
|
+
def_delegators :model, :as_json, :expires, :api_key_type, :access_mask
|
14
|
+
|
9
15
|
def initialize(key_id, v_code)
|
10
16
|
super()
|
11
17
|
@key_id = key_id
|
12
18
|
@v_code = v_code
|
13
19
|
end
|
14
20
|
|
15
|
-
def
|
16
|
-
|
17
|
-
expires: expires,
|
18
|
-
api_key_type: api_key_type,
|
19
|
-
access_mask: access_mask,
|
20
|
-
current_time: current_time,
|
21
|
-
cached_until: cached_until
|
22
|
-
}
|
21
|
+
def model
|
22
|
+
Models::ApiKeyInfo.new(key)
|
23
23
|
end
|
24
|
+
memoize :model
|
24
25
|
|
25
26
|
def characters
|
26
27
|
case row
|
@@ -38,18 +39,6 @@ module EveOnline
|
|
38
39
|
end
|
39
40
|
memoize :characters
|
40
41
|
|
41
|
-
def expires
|
42
|
-
parse_datetime_with_timezone(key.fetch('@expires'))
|
43
|
-
end
|
44
|
-
|
45
|
-
def api_key_type
|
46
|
-
AccountTypeObject.new(key.fetch('@type')).value
|
47
|
-
end
|
48
|
-
|
49
|
-
def access_mask
|
50
|
-
key.fetch('@accessMask').to_i
|
51
|
-
end
|
52
|
-
|
53
42
|
def url
|
54
43
|
"#{ API_ENDPOINT }?keyID=#{ key_id }&vCode=#{ v_code }"
|
55
44
|
end
|