eve_online 0.8.0 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/README.md +560 -17
- data/eve_online.gemspec +1 -0
- data/lib/eve_online.rb +33 -0
- data/lib/eve_online/account/api_key_info.rb +19 -14
- data/lib/eve_online/account/characters.rb +10 -5
- data/lib/eve_online/account/status.rb +4 -4
- data/lib/eve_online/base.rb +9 -4
- data/lib/eve_online/base_xml.rb +9 -4
- data/lib/eve_online/blueprint.rb +9 -9
- data/lib/eve_online/bookmark.rb +13 -11
- data/lib/eve_online/bookmark_folder.rb +21 -16
- data/lib/eve_online/character.rb +8 -8
- data/lib/eve_online/character_implants.rb +7 -1
- data/lib/eve_online/character_jump_clone_implants.rb +29 -0
- data/lib/eve_online/character_jump_clones.rb +7 -1
- data/lib/eve_online/character_skills.rb +7 -1
- data/lib/eve_online/characters/account_balance.rb +14 -8
- data/lib/eve_online/characters/asset_list.rb +12 -5
- data/lib/eve_online/characters/blueprints.rb +12 -5
- data/lib/eve_online/characters/bookmarks.rb +22 -17
- data/lib/eve_online/characters/calendar_event_attendees.rb +2 -0
- data/lib/eve_online/characters/character_sheet.rb +48 -37
- data/lib/eve_online/characters/chat_channels.rb +23 -0
- data/lib/eve_online/characters/contact_list.rb +2 -0
- data/lib/eve_online/characters/contact_notifications.rb +30 -0
- data/lib/eve_online/characters/contract_bids.rb +23 -0
- data/lib/eve_online/characters/contract_items.rb +24 -0
- data/lib/eve_online/characters/contracts.rb +26 -0
- data/lib/eve_online/characters/fac_war_stats.rb +23 -0
- data/lib/eve_online/characters/industry_jobs.rb +23 -0
- data/lib/eve_online/characters/industry_jobs_history.rb +23 -0
- data/lib/eve_online/characters/kill_mails.rb +25 -0
- data/lib/eve_online/characters/locations.rb +32 -0
- data/lib/eve_online/characters/mail_bodies.rb +30 -0
- data/lib/eve_online/characters/mail_messages.rb +23 -0
- data/lib/eve_online/characters/mailing_lists.rb +23 -0
- data/lib/eve_online/characters/market_orders.rb +55 -0
- data/lib/eve_online/characters/medals.rb +2 -0
- data/lib/eve_online/characters/notification_texts.rb +32 -0
- data/lib/eve_online/characters/notifications.rb +23 -0
- data/lib/eve_online/characters/planetary_colonies.rb +23 -0
- data/lib/eve_online/characters/planetary_links.rb +24 -0
- data/lib/eve_online/characters/planetary_pins.rb +24 -0
- data/lib/eve_online/characters/planetary_routes.rb +24 -0
- data/lib/eve_online/characters/research.rb +23 -0
- data/lib/eve_online/characters/skill_in_training.rb +10 -8
- data/lib/eve_online/characters/skill_queue.rb +51 -0
- data/lib/eve_online/characters/standings.rb +23 -21
- data/lib/eve_online/characters/upcoming_calendar_events.rb +12 -5
- data/lib/eve_online/characters/wallet_journal.rb +57 -0
- data/lib/eve_online/characters/wallet_transactions.rb +24 -0
- data/lib/eve_online/contact_notification.rb +42 -0
- data/lib/eve_online/corporations/market_orders.rb +55 -0
- data/lib/eve_online/eve/character_id.rb +9 -9
- data/lib/eve_online/event.rb +12 -10
- data/lib/eve_online/implant.rb +2 -2
- data/lib/eve_online/item.rb +7 -7
- data/lib/eve_online/jump_clone.rb +4 -4
- data/lib/eve_online/jump_clone_implant.rb +29 -0
- data/lib/eve_online/market_order.rb +91 -0
- data/lib/eve_online/server/status.rb +2 -2
- data/lib/eve_online/skill.rb +4 -4
- data/lib/eve_online/skill_queue_entry.rb +51 -0
- data/lib/eve_online/sovereignty/campaigns.rb +1 -1
- data/lib/eve_online/standing.rb +3 -3
- data/lib/eve_online/version.rb +1 -1
- data/lib/eve_online/wallet_journal_entry.rb +97 -0
- metadata +46 -2
@@ -0,0 +1,23 @@
|
|
1
|
+
module EveOnline
|
2
|
+
module Characters
|
3
|
+
# https://eveonline-third-party-documentation.readthedocs.io/en/latest/xmlapi/character/char_notifications.html
|
4
|
+
class Notifications < BaseXML
|
5
|
+
API_ENDPOINT = 'https://api.eveonline.com/char/Notifications.xml.aspx'.freeze
|
6
|
+
|
7
|
+
ACCESS_MASK = 16_384
|
8
|
+
|
9
|
+
attr_reader :key_id, :v_code, :character_id
|
10
|
+
|
11
|
+
def initialize(key_id, v_code, character_id)
|
12
|
+
super()
|
13
|
+
@key_id = key_id
|
14
|
+
@v_code = v_code
|
15
|
+
@character_id = character_id
|
16
|
+
end
|
17
|
+
|
18
|
+
def url
|
19
|
+
"#{ API_ENDPOINT }?keyID=#{ key_id }&vCode=#{ v_code }&characterID=#{ character_id }"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module EveOnline
|
2
|
+
module Characters
|
3
|
+
# https://eveonline-third-party-documentation.readthedocs.io/en/latest/xmlapi/character/char_planetarycolonies.html
|
4
|
+
class PlanetaryColonies < BaseXML
|
5
|
+
API_ENDPOINT = 'https://api.eveonline.com/char/PlanetaryColonies.xml.aspx'.freeze
|
6
|
+
|
7
|
+
ACCESS_MASK = 2
|
8
|
+
|
9
|
+
attr_reader :key_id, :v_code, :character_id
|
10
|
+
|
11
|
+
def initialize(key_id, v_code, character_id)
|
12
|
+
super()
|
13
|
+
@key_id = key_id
|
14
|
+
@v_code = v_code
|
15
|
+
@character_id = character_id
|
16
|
+
end
|
17
|
+
|
18
|
+
def url
|
19
|
+
"#{ API_ENDPOINT }?keyID=#{ key_id }&vCode=#{ v_code }&characterID=#{ character_id }"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module EveOnline
|
2
|
+
module Characters
|
3
|
+
# https://eveonline-third-party-documentation.readthedocs.io/en/latest/xmlapi/character/char_planetarylinks.html
|
4
|
+
class PlanetaryLinks < BaseXML
|
5
|
+
API_ENDPOINT = 'https://api.eveonline.com/char/PlanetaryLinks.xml.aspx'.freeze
|
6
|
+
|
7
|
+
ACCESS_MASK = 2
|
8
|
+
|
9
|
+
attr_reader :key_id, :v_code, :character_id, :planet_id
|
10
|
+
|
11
|
+
def initialize(key_id, v_code, character_id, planet_id)
|
12
|
+
super()
|
13
|
+
@key_id = key_id
|
14
|
+
@v_code = v_code
|
15
|
+
@character_id = character_id
|
16
|
+
@planet_id = planet_id
|
17
|
+
end
|
18
|
+
|
19
|
+
def url
|
20
|
+
"#{ API_ENDPOINT }?keyID=#{ key_id }&vCode=#{ v_code }&characterID=#{ character_id }&planetID=#{ planet_id }"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module EveOnline
|
2
|
+
module Characters
|
3
|
+
# https://eveonline-third-party-documentation.readthedocs.io/en/latest/xmlapi/character/char_planetarypins.html
|
4
|
+
class PlanetaryPins < BaseXML
|
5
|
+
API_ENDPOINT = 'https://api.eveonline.com/char/PlanetaryPins.xml.aspx'.freeze
|
6
|
+
|
7
|
+
ACCESS_MASK = 2
|
8
|
+
|
9
|
+
attr_reader :key_id, :v_code, :character_id, :planet_id
|
10
|
+
|
11
|
+
def initialize(key_id, v_code, character_id, planet_id)
|
12
|
+
super()
|
13
|
+
@key_id = key_id
|
14
|
+
@v_code = v_code
|
15
|
+
@character_id = character_id
|
16
|
+
@planet_id = planet_id
|
17
|
+
end
|
18
|
+
|
19
|
+
def url
|
20
|
+
"#{ API_ENDPOINT }?keyID=#{ key_id }&vCode=#{ v_code }&characterID=#{ character_id }&planetID=#{ planet_id }"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module EveOnline
|
2
|
+
module Characters
|
3
|
+
# https://eveonline-third-party-documentation.readthedocs.io/en/latest/xmlapi/character/char_planetaryroutes.html
|
4
|
+
class PlanetaryRoutes < BaseXML
|
5
|
+
API_ENDPOINT = 'https://api.eveonline.com/char/PlanetaryRoutes.xml.aspx'.freeze
|
6
|
+
|
7
|
+
ACCESS_MASK = 2
|
8
|
+
|
9
|
+
attr_reader :key_id, :v_code, :character_id, :planet_id
|
10
|
+
|
11
|
+
def initialize(key_id, v_code, character_id, planet_id)
|
12
|
+
super()
|
13
|
+
@key_id = key_id
|
14
|
+
@v_code = v_code
|
15
|
+
@character_id = character_id
|
16
|
+
@planet_id = planet_id
|
17
|
+
end
|
18
|
+
|
19
|
+
def url
|
20
|
+
"#{ API_ENDPOINT }?keyID=#{ key_id }&vCode=#{ v_code }&characterID=#{ character_id }&planetID=#{ planet_id }"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module EveOnline
|
2
|
+
module Characters
|
3
|
+
# https://eveonline-third-party-documentation.readthedocs.io/en/latest/xmlapi/character/char_research.html
|
4
|
+
class Research < BaseXML
|
5
|
+
API_ENDPOINT = 'https://api.eveonline.com/char/Research.xml.aspx'.freeze
|
6
|
+
|
7
|
+
ACCESS_MASK = 65_536
|
8
|
+
|
9
|
+
attr_reader :key_id, :v_code, :character_id
|
10
|
+
|
11
|
+
def initialize(key_id, v_code, character_id)
|
12
|
+
super()
|
13
|
+
@key_id = key_id
|
14
|
+
@v_code = v_code
|
15
|
+
@character_id = character_id
|
16
|
+
end
|
17
|
+
|
18
|
+
def url
|
19
|
+
"#{ API_ENDPOINT }?keyID=#{ key_id }&vCode=#{ v_code }&characterID=#{ character_id }"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -4,6 +4,8 @@ module EveOnline
|
|
4
4
|
class SkillInTraining < BaseXML
|
5
5
|
API_ENDPOINT = 'https://api.eveonline.com/char/SkillInTraining.xml.aspx'.freeze
|
6
6
|
|
7
|
+
ACCESS_MASK = 131_072
|
8
|
+
|
7
9
|
attr_reader :key_id, :v_code, :character_id
|
8
10
|
|
9
11
|
def initialize(key_id, v_code, character_id)
|
@@ -27,35 +29,35 @@ module EveOnline
|
|
27
29
|
end
|
28
30
|
|
29
31
|
def current_tq_time
|
30
|
-
|
32
|
+
parse_datetime_with_timezone(result.fetch('currentTQTime'))
|
31
33
|
end
|
32
34
|
|
33
35
|
def training_end_time
|
34
|
-
|
36
|
+
parse_datetime_with_timezone(result.fetch('trainingEndTime'))
|
35
37
|
end
|
36
38
|
|
37
39
|
def training_start_time
|
38
|
-
|
40
|
+
parse_datetime_with_timezone(result.fetch('trainingStartTime'))
|
39
41
|
end
|
40
42
|
|
41
43
|
def training_type_id
|
42
|
-
|
44
|
+
result.fetch('trainingTypeID').to_i
|
43
45
|
end
|
44
46
|
|
45
47
|
def training_start_sp
|
46
|
-
|
48
|
+
result.fetch('trainingStartSP').to_i
|
47
49
|
end
|
48
50
|
|
49
51
|
def training_destination_sp
|
50
|
-
|
52
|
+
result.fetch('trainingDestinationSP').to_i
|
51
53
|
end
|
52
54
|
|
53
55
|
def training_to_level
|
54
|
-
|
56
|
+
result.fetch('trainingToLevel').to_i
|
55
57
|
end
|
56
58
|
|
57
59
|
def skill_in_training
|
58
|
-
|
60
|
+
result.fetch('skillInTraining').to_i
|
59
61
|
end
|
60
62
|
|
61
63
|
def url
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module EveOnline
|
2
|
+
module Characters
|
3
|
+
# https://eveonline-third-party-documentation.readthedocs.io/en/latest/xmlapi/character/char_skillqueue.html
|
4
|
+
class SkillQueue < BaseXML
|
5
|
+
API_ENDPOINT = 'https://api.eveonline.com/char/SkillQueue.xml.aspx'.freeze
|
6
|
+
|
7
|
+
ACCESS_MASK = 262_144
|
8
|
+
|
9
|
+
attr_reader :key_id, :v_code, :character_id
|
10
|
+
|
11
|
+
def initialize(key_id, v_code, character_id)
|
12
|
+
super()
|
13
|
+
@key_id = key_id
|
14
|
+
@v_code = v_code
|
15
|
+
@character_id = character_id
|
16
|
+
end
|
17
|
+
|
18
|
+
def skills
|
19
|
+
case row
|
20
|
+
when Hash
|
21
|
+
[SkillQueueEntry.new(row)]
|
22
|
+
when Array
|
23
|
+
output = []
|
24
|
+
row.each do |blueprint|
|
25
|
+
output << SkillQueueEntry.new(blueprint)
|
26
|
+
end
|
27
|
+
output
|
28
|
+
else
|
29
|
+
raise ArgumentError
|
30
|
+
end
|
31
|
+
end
|
32
|
+
memoize :skills
|
33
|
+
|
34
|
+
def url
|
35
|
+
"#{ API_ENDPOINT }?keyID=#{ key_id }&vCode=#{ v_code }&characterID=#{ character_id }"
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
def rowset
|
41
|
+
result.fetch('rowset')
|
42
|
+
end
|
43
|
+
memoize :rowset
|
44
|
+
|
45
|
+
def row
|
46
|
+
rowset.fetch('row')
|
47
|
+
end
|
48
|
+
memoize :row
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -4,6 +4,8 @@ module EveOnline
|
|
4
4
|
class Standings < BaseXML
|
5
5
|
API_ENDPOINT = 'https://api.eveonline.com/char/Standings.xml.aspx'.freeze
|
6
6
|
|
7
|
+
ACCESS_MASK = 524_288
|
8
|
+
|
7
9
|
attr_reader :key_id, :v_code, :character_id
|
8
10
|
|
9
11
|
def initialize(key_id, v_code, character_id)
|
@@ -14,34 +16,31 @@ module EveOnline
|
|
14
16
|
end
|
15
17
|
|
16
18
|
def agents
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
output << Standing.new(agent)
|
21
|
-
end
|
22
|
-
output
|
19
|
+
output = []
|
20
|
+
agents_rowset.each do |agent|
|
21
|
+
output << Standing.new(agent)
|
23
22
|
end
|
23
|
+
output
|
24
24
|
end
|
25
|
+
memoize :agents
|
25
26
|
|
26
27
|
def npc_corporations
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
output << Standing.new(agent)
|
31
|
-
end
|
32
|
-
output
|
28
|
+
output = []
|
29
|
+
npc_corporations_rowset.each do |agent|
|
30
|
+
output << Standing.new(agent)
|
33
31
|
end
|
32
|
+
output
|
34
33
|
end
|
34
|
+
memoize :npc_corporations
|
35
35
|
|
36
36
|
def factions
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
output << Standing.new(agent)
|
41
|
-
end
|
42
|
-
output
|
37
|
+
output = []
|
38
|
+
factions_rowset.each do |agent|
|
39
|
+
output << Standing.new(agent)
|
43
40
|
end
|
41
|
+
output
|
44
42
|
end
|
43
|
+
memoize :factions
|
45
44
|
|
46
45
|
def url
|
47
46
|
"#{ API_ENDPOINT }?keyID=#{ key_id }&vCode=#{ v_code }&characterID=#{ character_id }"
|
@@ -50,16 +49,19 @@ module EveOnline
|
|
50
49
|
private
|
51
50
|
|
52
51
|
def agents_rowset
|
53
|
-
|
52
|
+
result.fetch('characterNPCStandings').fetch('rowset').reject { |a| a.fetch('@name') != 'agents' }.first.fetch('row')
|
54
53
|
end
|
54
|
+
memoize :agents_rowset
|
55
55
|
|
56
56
|
def npc_corporations_rowset
|
57
|
-
|
57
|
+
result.fetch('characterNPCStandings').fetch('rowset').reject { |a| a.fetch('@name') != 'NPCCorporations' }.first.fetch('row')
|
58
58
|
end
|
59
|
+
memoize :npc_corporations_rowset
|
59
60
|
|
60
61
|
def factions_rowset
|
61
|
-
|
62
|
+
result.fetch('characterNPCStandings').fetch('rowset').reject { |a| a.fetch('@name') != 'factions' }.first.fetch('row')
|
62
63
|
end
|
64
|
+
memoize :factions_rowset
|
63
65
|
end
|
64
66
|
end
|
65
67
|
end
|
@@ -4,6 +4,8 @@ module EveOnline
|
|
4
4
|
class UpcomingCalendarEvents < BaseXML
|
5
5
|
API_ENDPOINT = 'https://api.eveonline.com/char/UpcomingCalendarEvents.xml.aspx'.freeze
|
6
6
|
|
7
|
+
ACCESS_MASK = 1_048_576
|
8
|
+
|
7
9
|
attr_reader :key_id, :v_code, :character_id
|
8
10
|
|
9
11
|
def initialize(key_id, v_code, character_id)
|
@@ -27,18 +29,23 @@ module EveOnline
|
|
27
29
|
raise ArgumentError
|
28
30
|
end
|
29
31
|
end
|
32
|
+
memoize :events
|
30
33
|
|
31
|
-
def
|
32
|
-
|
34
|
+
def url
|
35
|
+
"#{ API_ENDPOINT }?keyID=#{ key_id }&vCode=#{ v_code }&characterID=#{ character_id }"
|
33
36
|
end
|
34
37
|
|
38
|
+
private
|
39
|
+
|
35
40
|
def rowset
|
36
|
-
|
41
|
+
result.fetch('rowset')
|
37
42
|
end
|
43
|
+
memoize :rowset
|
38
44
|
|
39
|
-
def
|
40
|
-
|
45
|
+
def row
|
46
|
+
rowset.fetch('row')
|
41
47
|
end
|
48
|
+
memoize :row
|
42
49
|
end
|
43
50
|
end
|
44
51
|
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
module EveOnline
|
2
|
+
module Characters
|
3
|
+
# https://eveonline-third-party-documentation.readthedocs.io/en/latest/xmlapi/character/char_walletjournal.html
|
4
|
+
class WalletJournal < BaseXML
|
5
|
+
API_ENDPOINT = 'https://api.eveonline.com/char/WalletJournal.xml.aspx'.freeze
|
6
|
+
|
7
|
+
ACCESS_MASK = 2_097_152
|
8
|
+
|
9
|
+
attr_reader :key_id, :v_code, :character_id, :account_key, :from_id, :row_count
|
10
|
+
|
11
|
+
def initialize(key_id, v_code, character_id, options = {})
|
12
|
+
super()
|
13
|
+
@key_id = key_id
|
14
|
+
@v_code = v_code
|
15
|
+
@character_id = character_id
|
16
|
+
@account_key = options.fetch(:account_key, 1000)
|
17
|
+
@from_id = options.fetch(:from_id, nil)
|
18
|
+
@row_count = options.fetch(:row_count, nil)
|
19
|
+
end
|
20
|
+
|
21
|
+
def wallet_journal_entries
|
22
|
+
case row
|
23
|
+
when Hash
|
24
|
+
[WalletJournalEntry.new(row)]
|
25
|
+
when Array
|
26
|
+
output = []
|
27
|
+
row.each do |blueprint|
|
28
|
+
output << WalletJournalEntry.new(blueprint)
|
29
|
+
end
|
30
|
+
output
|
31
|
+
else
|
32
|
+
raise ArgumentError
|
33
|
+
end
|
34
|
+
end
|
35
|
+
memoize :wallet_journal_entries
|
36
|
+
|
37
|
+
def url
|
38
|
+
output = "#{ API_ENDPOINT }?keyID=#{ key_id }&vCode=#{ v_code }&characterID=#{ character_id }&accountKey=#{ account_key }"
|
39
|
+
output = "#{ output }&fromID=#{ from_id }" if from_id
|
40
|
+
output = "#{ output }&rowCount=#{ row_count }" if row_count
|
41
|
+
output
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def rowset
|
47
|
+
result.fetch('rowset')
|
48
|
+
end
|
49
|
+
memoize :rowset
|
50
|
+
|
51
|
+
def row
|
52
|
+
rowset.fetch('row')
|
53
|
+
end
|
54
|
+
memoize :row
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module EveOnline
|
2
|
+
module Characters
|
3
|
+
# https://eveonline-third-party-documentation.readthedocs.io/en/latest/xmlapi/character/char_wallettransactions.html
|
4
|
+
class WalletTransactions < BaseXML
|
5
|
+
API_ENDPOINT = 'https://api.eveonline.com/char/WalletTransactions.xml.aspx'.freeze
|
6
|
+
|
7
|
+
ACCESS_MASK = 4_194_304
|
8
|
+
|
9
|
+
attr_reader :key_id, :v_code, :character_id # TODO: :account_key
|
10
|
+
|
11
|
+
def initialize(key_id, v_code, character_id) # TODO: account_key
|
12
|
+
super()
|
13
|
+
@key_id = key_id
|
14
|
+
@v_code = v_code
|
15
|
+
@character_id = character_id
|
16
|
+
# @account_key = account_key TODO: add
|
17
|
+
end
|
18
|
+
|
19
|
+
def url
|
20
|
+
"#{ API_ENDPOINT }?keyID=#{ key_id }&vCode=#{ v_code }&characterID=#{ character_id }"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|