eve_online 0.8.0 → 0.9.0
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 +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
|