eve_online 0.31.0 → 0.35.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +18 -49
  3. data/.deepsource.toml +5 -0
  4. data/.ruby-version +1 -1
  5. data/Appraisals +0 -12
  6. data/CHANGELOG.md +42 -0
  7. data/Gemfile.lock +55 -51
  8. data/Gemfile.mutant.lock +38 -35
  9. data/README.md +308 -111
  10. data/eve_online.gemspec +3 -3
  11. data/lib/eve_online.rb +24 -6
  12. data/lib/eve_online/esi/alliance_corporations.rb +1 -1
  13. data/lib/eve_online/esi/alliances.rb +1 -1
  14. data/lib/eve_online/esi/base.rb +8 -0
  15. data/lib/eve_online/esi/character_assets.rb +1 -1
  16. data/lib/eve_online/esi/character_calendar.rb +1 -1
  17. data/lib/eve_online/esi/character_calendar_event.rb +1 -1
  18. data/lib/eve_online/esi/{character_bookmarks.rb → character_contracts.rb} +7 -7
  19. data/lib/eve_online/esi/character_location.rb +1 -1
  20. data/lib/eve_online/esi/character_online.rb +1 -1
  21. data/lib/eve_online/esi/character_ship.rb +1 -1
  22. data/lib/eve_online/esi/character_skills.rb +1 -1
  23. data/lib/eve_online/esi/character_wallet.rb +1 -1
  24. data/lib/eve_online/esi/character_wallet_journal.rb +2 -2
  25. data/lib/eve_online/esi/character_wallet_transactions.rb +41 -0
  26. data/lib/eve_online/esi/corporation_assets.rb +1 -1
  27. data/lib/eve_online/esi/corporation_npc.rb +20 -0
  28. data/lib/eve_online/esi/killmail.rb +30 -0
  29. data/lib/eve_online/esi/market_prices.rb +27 -0
  30. data/lib/eve_online/esi/models/aggressor.rb +1 -1
  31. data/lib/eve_online/esi/models/alliance.rb +1 -1
  32. data/lib/eve_online/esi/models/alliance_icon.rb +1 -1
  33. data/lib/eve_online/esi/models/alliance_short.rb +1 -1
  34. data/lib/eve_online/esi/models/ally.rb +1 -1
  35. data/lib/eve_online/esi/models/ancestry.rb +1 -1
  36. data/lib/eve_online/esi/models/asset.rb +1 -1
  37. data/lib/eve_online/esi/models/asset_location.rb +1 -1
  38. data/lib/eve_online/esi/models/asset_name.rb +1 -1
  39. data/lib/eve_online/esi/models/asteroid_belt.rb +1 -1
  40. data/lib/eve_online/esi/models/attributes.rb +1 -1
  41. data/lib/eve_online/esi/models/bloodline.rb +1 -1
  42. data/lib/eve_online/esi/models/blueprint.rb +1 -1
  43. data/lib/eve_online/esi/models/category.rb +1 -1
  44. data/lib/eve_online/esi/models/character.rb +1 -1
  45. data/lib/eve_online/esi/models/character_corporation_history.rb +1 -1
  46. data/lib/eve_online/esi/models/character_industry_job.rb +1 -1
  47. data/lib/eve_online/esi/models/character_location.rb +1 -1
  48. data/lib/eve_online/esi/models/character_order.rb +1 -1
  49. data/lib/eve_online/esi/models/character_portrait.rb +1 -1
  50. data/lib/eve_online/esi/models/character_ship.rb +1 -1
  51. data/lib/eve_online/esi/models/constellation.rb +1 -1
  52. data/lib/eve_online/esi/models/contract.rb +132 -0
  53. data/lib/eve_online/esi/models/coordinates.rb +1 -1
  54. data/lib/eve_online/esi/models/corporation.rb +1 -1
  55. data/lib/eve_online/esi/models/corporation_alliance_history.rb +1 -1
  56. data/lib/eve_online/esi/models/corporation_industry_job.rb +1 -1
  57. data/lib/eve_online/esi/models/corporation_order.rb +1 -1
  58. data/lib/eve_online/esi/models/defender.rb +1 -1
  59. data/lib/eve_online/esi/models/dogma_attribute.rb +1 -1
  60. data/lib/eve_online/esi/models/dogma_attribute_short.rb +1 -1
  61. data/lib/eve_online/esi/models/dogma_effect.rb +1 -1
  62. data/lib/eve_online/esi/models/dogma_effect_modifier.rb +1 -1
  63. data/lib/eve_online/esi/models/dogma_effect_short.rb +1 -1
  64. data/lib/eve_online/esi/models/event.rb +1 -1
  65. data/lib/eve_online/esi/models/event_details.rb +1 -1
  66. data/lib/eve_online/esi/models/faction.rb +1 -1
  67. data/lib/eve_online/esi/models/fatigue.rb +1 -1
  68. data/lib/eve_online/esi/models/graphic.rb +1 -1
  69. data/lib/eve_online/esi/models/group.rb +1 -1
  70. data/lib/eve_online/esi/models/home_location.rb +1 -1
  71. data/lib/eve_online/esi/models/jump_clone.rb +1 -1
  72. data/lib/eve_online/esi/models/killmail.rb +47 -0
  73. data/lib/eve_online/esi/models/killmail_short.rb +1 -1
  74. data/lib/eve_online/esi/models/loyalty_point.rb +1 -1
  75. data/lib/eve_online/esi/models/loyalty_store_offer.rb +1 -1
  76. data/lib/eve_online/esi/models/mail.rb +1 -1
  77. data/lib/eve_online/esi/models/mail_label.rb +1 -1
  78. data/lib/eve_online/esi/models/mail_recipient.rb +1 -1
  79. data/lib/eve_online/esi/models/market_group.rb +1 -1
  80. data/lib/eve_online/esi/models/market_history.rb +1 -1
  81. data/lib/eve_online/esi/models/market_price.rb +29 -0
  82. data/lib/eve_online/esi/models/moon.rb +1 -1
  83. data/lib/eve_online/esi/models/notification.rb +1 -1
  84. data/lib/eve_online/esi/models/offer_required_item.rb +1 -1
  85. data/lib/eve_online/esi/models/online.rb +1 -1
  86. data/lib/eve_online/esi/models/planet.rb +1 -1
  87. data/lib/eve_online/esi/models/planet_short.rb +1 -1
  88. data/lib/eve_online/esi/models/position.rb +1 -1
  89. data/lib/eve_online/esi/models/public_contract.rb +98 -0
  90. data/lib/eve_online/esi/models/public_contract_item.rb +59 -0
  91. data/lib/eve_online/esi/models/race.rb +3 -3
  92. data/lib/eve_online/esi/models/region.rb +1 -1
  93. data/lib/eve_online/esi/models/server_status.rb +1 -1
  94. data/lib/eve_online/esi/models/skill.rb +1 -1
  95. data/lib/eve_online/esi/models/skill_queue_entry.rb +1 -1
  96. data/lib/eve_online/esi/models/standing.rb +1 -1
  97. data/lib/eve_online/esi/models/star.rb +1 -1
  98. data/lib/eve_online/esi/models/stargate.rb +1 -1
  99. data/lib/eve_online/esi/models/station.rb +1 -1
  100. data/lib/eve_online/esi/models/system.rb +1 -1
  101. data/lib/eve_online/esi/models/system_jump.rb +1 -1
  102. data/lib/eve_online/esi/models/system_kill.rb +1 -1
  103. data/lib/eve_online/esi/models/type.rb +1 -1
  104. data/lib/eve_online/esi/models/{wallet_journal_entry.rb → wallet_journal.rb} +4 -4
  105. data/lib/eve_online/esi/models/wallet_transaction.rb +66 -0
  106. data/lib/eve_online/esi/models/war.rb +1 -1
  107. data/lib/eve_online/esi/public_contract.rb +40 -0
  108. data/lib/eve_online/esi/public_contracts.rb +40 -0
  109. data/lib/eve_online/exceptions/error_limited.rb +8 -0
  110. data/lib/eve_online/formulas/blueprint_copy_time.rb +47 -0
  111. data/lib/eve_online/version.rb +1 -1
  112. metadata +25 -13
  113. data/lib/eve_online/esi/character_bookmark_folders.rb +0 -41
  114. data/lib/eve_online/esi/models/bookmark.rb +0 -71
  115. data/lib/eve_online/esi/models/bookmark_folder.rb +0 -24
@@ -20,13 +20,13 @@ Gem::Specification.new do |spec|
20
20
  "changelog_uri" => "https://github.com/evemonk/eve_online/blob/master/CHANGELOG.md",
21
21
  "documentation_uri" => "https://github.com/evemonk/eve_online/blob/master/README.md",
22
22
  "homepage_uri" => "https://github.com/evemonk/eve_online",
23
- "source_code_uri" => "https://github.com/evemonk/eve_online",
23
+ "source_code_uri" => "https://github.com/evemonk/eve_online"
24
24
  }
25
25
 
26
26
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features|bin)/}) }
27
27
  spec.require_paths = ["lib"]
28
28
 
29
- spec.required_ruby_version = ">= 2.4"
29
+ spec.required_ruby_version = ">= 2.5"
30
30
 
31
31
  spec.add_development_dependency "bundler"
32
32
  spec.add_development_dependency "rake"
@@ -38,5 +38,5 @@ Gem::Specification.new do |spec|
38
38
  spec.add_development_dependency "mdl"
39
39
  spec.add_development_dependency "appraisal"
40
40
 
41
- spec.add_runtime_dependency "activesupport", ">= 4.2.0"
41
+ spec.add_runtime_dependency "activesupport", ">= 5.2.0"
42
42
  end
@@ -14,6 +14,7 @@ require "eve_online/exceptions/bad_gateway"
14
14
  require "eve_online/exceptions/service_unavailable"
15
15
  require "eve_online/exceptions/no_content"
16
16
  require "eve_online/exceptions/not_modified"
17
+ require "eve_online/exceptions/error_limited"
17
18
 
18
19
  # ESI API
19
20
  require "eve_online/esi/base"
@@ -30,9 +31,6 @@ require "eve_online/esi/corporation_assets"
30
31
  require "eve_online/esi/corporation_assets_locations"
31
32
  require "eve_online/esi/corporation_assets_names"
32
33
 
33
- require "eve_online/esi/character_bookmarks"
34
- require "eve_online/esi/character_bookmark_folders"
35
-
36
34
  require "eve_online/esi/character_calendar"
37
35
  require "eve_online/esi/character_calendar_event"
38
36
 
@@ -47,9 +45,14 @@ require "eve_online/esi/character_standings"
47
45
  require "eve_online/esi/character_clones"
48
46
  require "eve_online/esi/character_implants"
49
47
 
48
+ require "eve_online/esi/character_contracts"
49
+ require "eve_online/esi/public_contracts"
50
+ require "eve_online/esi/public_contract"
51
+
50
52
  require "eve_online/esi/corporation"
51
53
  require "eve_online/esi/corporation_alliance_history"
52
54
  require "eve_online/esi/corporation_blueprints"
55
+ require "eve_online/esi/corporation_npc"
53
56
 
54
57
  require "eve_online/esi/dogma_attributes"
55
58
  require "eve_online/esi/dogma_attribute"
@@ -61,6 +64,7 @@ require "eve_online/esi/corporation_industry_jobs"
61
64
 
62
65
  require "eve_online/esi/character_killmails_recent"
63
66
  require "eve_online/esi/corporation_killmails_recent"
67
+ require "eve_online/esi/killmail"
64
68
 
65
69
  require "eve_online/esi/character_location"
66
70
  require "eve_online/esi/character_online"
@@ -84,6 +88,7 @@ require "eve_online/esi/corporation_orders"
84
88
  require "eve_online/esi/market_history"
85
89
  require "eve_online/esi/market_groups"
86
90
  require "eve_online/esi/market_group"
91
+ require "eve_online/esi/market_prices"
87
92
 
88
93
  require "eve_online/esi/character_attributes"
89
94
  require "eve_online/esi/character_skill_queue"
@@ -121,6 +126,7 @@ require "eve_online/esi/universe_type"
121
126
 
122
127
  require "eve_online/esi/character_wallet"
123
128
  require "eve_online/esi/character_wallet_journal"
129
+ require "eve_online/esi/character_wallet_transactions"
124
130
 
125
131
  require "eve_online/esi/wars"
126
132
  require "eve_online/esi/war"
@@ -149,22 +155,25 @@ require "eve_online/esi/models/character_order"
149
155
  require "eve_online/esi/models/character_location"
150
156
  require "eve_online/esi/models/character_ship"
151
157
  require "eve_online/esi/models/blueprint"
152
- require "eve_online/esi/models/bookmark"
153
- require "eve_online/esi/models/bookmark_folder"
154
158
  require "eve_online/esi/models/standing"
159
+ require "eve_online/esi/models/contract"
160
+ require "eve_online/esi/models/public_contract"
161
+ require "eve_online/esi/models/public_contract_item"
155
162
  require "eve_online/esi/models/fatigue"
156
163
  require "eve_online/esi/models/notification"
157
164
  require "eve_online/esi/models/event"
158
165
  require "eve_online/esi/models/event_details"
159
166
  require "eve_online/esi/models/type"
160
167
  require "eve_online/esi/models/jump_clone"
161
- require "eve_online/esi/models/wallet_journal_entry"
168
+ require "eve_online/esi/models/wallet_journal"
169
+ require "eve_online/esi/models/wallet_transaction"
162
170
  require "eve_online/esi/models/corporation_order"
163
171
  require "eve_online/esi/models/home_location"
164
172
  require "eve_online/esi/models/server_status"
165
173
 
166
174
  require "eve_online/esi/models/market_history"
167
175
  require "eve_online/esi/models/market_group"
176
+ require "eve_online/esi/models/market_price"
168
177
 
169
178
  require "eve_online/esi/models/corporation"
170
179
  require "eve_online/esi/models/corporation_alliance_history"
@@ -218,6 +227,15 @@ require "eve_online/esi/models/ally"
218
227
  require "eve_online/esi/models/allies"
219
228
  require "eve_online/esi/models/defender"
220
229
  require "eve_online/esi/models/killmail_short"
230
+ require "eve_online/esi/models/killmail"
231
+
232
+ require "eve_online/formulas/blueprint_copy_time"
221
233
 
222
234
  module EveOnline
223
235
  end
236
+
237
+ # class Net::HTTPErrorLimited < Net::HTTPClientError # 420
238
+ # HAS_BODY = false
239
+ # end
240
+ #
241
+ # Net::HTTPResponse::CODE_TO_OBJ.merge!("420"=>Net::HTTPErrorLimited)
@@ -3,7 +3,7 @@
3
3
  module EveOnline
4
4
  module ESI
5
5
  class AllianceCorporations < Base
6
- API_PATH = "/v1/alliances/%<alliance_id>s/corporations/"
6
+ API_PATH = "/v2/alliances/%<alliance_id>s/corporations/"
7
7
 
8
8
  attr_reader :alliance_id
9
9
 
@@ -3,7 +3,7 @@
3
3
  module EveOnline
4
4
  module ESI
5
5
  class Alliances < Base
6
- API_PATH = "/v1/alliances/"
6
+ API_PATH = "/v2/alliances/"
7
7
 
8
8
  def alliance_ids
9
9
  response
@@ -86,6 +86,14 @@ module EveOnline
86
86
  resource.header["X-Pages"]&.to_i
87
87
  end
88
88
 
89
+ def error_limit_remain
90
+ resource.header["X-ESI-Error-Limit-Remain"]&.to_i
91
+ end
92
+
93
+ def error_limit_reset
94
+ resource.header["X-ESI-Error-Limit-Reset"]&.to_i
95
+ end
96
+
89
97
  def client
90
98
  @client ||= begin
91
99
  http = Net::HTTP.new(uri.host, uri.port)
@@ -3,7 +3,7 @@
3
3
  module EveOnline
4
4
  module ESI
5
5
  class CharacterAssets < Base
6
- API_PATH = "/v3/characters/%<character_id>s/assets/"
6
+ API_PATH = "/v5/characters/%<character_id>s/assets/"
7
7
 
8
8
  attr_reader :character_id, :page
9
9
 
@@ -3,7 +3,7 @@
3
3
  module EveOnline
4
4
  module ESI
5
5
  class CharacterCalendar < Base
6
- API_PATH = "/v1/characters/%<character_id>s/calendar/"
6
+ API_PATH = "/v2/characters/%<character_id>s/calendar/"
7
7
 
8
8
  attr_reader :character_id, :from_event
9
9
 
@@ -5,7 +5,7 @@ module EveOnline
5
5
  class CharacterCalendarEvent < Base
6
6
  extend Forwardable
7
7
 
8
- API_PATH = "/v3/characters/%<character_id>s/calendar/%<event_id>s/"
8
+ API_PATH = "/v4/characters/%<character_id>s/calendar/%<event_id>s/"
9
9
 
10
10
  attr_reader :character_id, :event_id
11
11
 
@@ -2,8 +2,8 @@
2
2
 
3
3
  module EveOnline
4
4
  module ESI
5
- class CharacterBookmarks < Base
6
- API_PATH = "/v2/characters/%<character_id>s/bookmarks/"
5
+ class CharacterContracts < Base
6
+ API_PATH = "/v1/characters/%<character_id>s/contracts/"
7
7
 
8
8
  attr_reader :character_id, :page
9
9
 
@@ -14,19 +14,19 @@ module EveOnline
14
14
  @page = options.fetch(:page, 1)
15
15
  end
16
16
 
17
- def bookmarks
18
- @bookmarks ||=
17
+ def contracts
18
+ @contracts ||=
19
19
  begin
20
20
  output = []
21
- response.each do |bookmark|
22
- output << Models::Bookmark.new(bookmark)
21
+ response.each do |contract|
22
+ output << Models::Contract.new(contract)
23
23
  end
24
24
  output
25
25
  end
26
26
  end
27
27
 
28
28
  def scope
29
- "esi-bookmarks.read_character_bookmarks.v1"
29
+ "esi-contracts.read_character_contracts.v1"
30
30
  end
31
31
 
32
32
  def additional_query_params
@@ -7,7 +7,7 @@ module EveOnline
7
7
  class CharacterLocation < Base
8
8
  extend Forwardable
9
9
 
10
- API_PATH = "/v1/characters/%<character_id>s/location/"
10
+ API_PATH = "/v2/characters/%<character_id>s/location/"
11
11
 
12
12
  attr_reader :character_id
13
13
 
@@ -7,7 +7,7 @@ module EveOnline
7
7
  class CharacterOnline < Base
8
8
  extend Forwardable
9
9
 
10
- API_PATH = "/v2/characters/%<character_id>s/online/"
10
+ API_PATH = "/v3/characters/%<character_id>s/online/"
11
11
 
12
12
  attr_reader :character_id
13
13
 
@@ -7,7 +7,7 @@ module EveOnline
7
7
  class CharacterShip < Base
8
8
  extend Forwardable
9
9
 
10
- API_PATH = "/v1/characters/%<character_id>s/ship/"
10
+ API_PATH = "/v2/characters/%<character_id>s/ship/"
11
11
 
12
12
  attr_reader :character_id
13
13
 
@@ -16,7 +16,7 @@ module EveOnline
16
16
  def as_json
17
17
  {
18
18
  total_sp: total_sp,
19
- unallocated_sp: unallocated_sp,
19
+ unallocated_sp: unallocated_sp
20
20
  }
21
21
  end
22
22
 
@@ -15,7 +15,7 @@ module EveOnline
15
15
 
16
16
  def as_json
17
17
  {
18
- wallet: wallet,
18
+ wallet: wallet
19
19
  }
20
20
  end
21
21
 
@@ -18,8 +18,8 @@ module EveOnline
18
18
  @wallet_journal_entries ||=
19
19
  begin
20
20
  output = []
21
- response.each do |wallet_journal_entry|
22
- output << Models::WalletJournalEntry.new(wallet_journal_entry)
21
+ response.each do |wallet_journal|
22
+ output << Models::WalletJournal.new(wallet_journal)
23
23
  end
24
24
  output
25
25
  end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EveOnline
4
+ module ESI
5
+ class CharacterWalletTransactions < Base
6
+ API_PATH = "/v1/characters/%<character_id>s/wallet/transactions/"
7
+
8
+ attr_reader :character_id, :from_id
9
+
10
+ def initialize(options)
11
+ super
12
+
13
+ @character_id = options.fetch(:character_id)
14
+ @from_id = options.fetch(:from_id, nil)
15
+ end
16
+
17
+ def wallet_transactions
18
+ @wallet_transactions ||=
19
+ begin
20
+ output = []
21
+ response.each do |wallet_transaction|
22
+ output << Models::WalletTransaction.new(wallet_transaction)
23
+ end
24
+ output
25
+ end
26
+ end
27
+
28
+ def scope
29
+ "esi-wallet.read_character_wallet.v1"
30
+ end
31
+
32
+ def additional_query_params
33
+ [:from_id]
34
+ end
35
+
36
+ def path
37
+ format(API_PATH, character_id: character_id)
38
+ end
39
+ end
40
+ end
41
+ end
@@ -3,7 +3,7 @@
3
3
  module EveOnline
4
4
  module ESI
5
5
  class CorporationAssets < Base
6
- API_PATH = "/v3/corporations/%<corporation_id>s/assets/"
6
+ API_PATH = "/v5/corporations/%<corporation_id>s/assets/"
7
7
 
8
8
  attr_reader :corporation_id, :page
9
9
 
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EveOnline
4
+ module ESI
5
+ class CorporationNPC < Base
6
+ API_PATH = "/v1/corporations/npccorps/"
7
+
8
+ def corporation_npc_ids
9
+ response
10
+ end
11
+
12
+ def scope
13
+ end
14
+
15
+ def path
16
+ API_PATH
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EveOnline
4
+ module ESI
5
+ class Killmail < Base
6
+ API_PATH = "/v1/killmails/%<killmail_id>s/%<killmail_hash>s/"
7
+
8
+ attr_reader :killmail_id, :killmail_hash
9
+
10
+ def initialize(options)
11
+ super
12
+
13
+ @killmail_id = options.fetch(:killmail_id)
14
+ @killmail_hash = options.fetch(:killmail_hash)
15
+ end
16
+
17
+ # TODO: implement
18
+ def as_json
19
+ {}
20
+ end
21
+
22
+ def scope
23
+ end
24
+
25
+ def path
26
+ format(API_PATH, killmail_id: killmail_id, killmail_hash: killmail_hash)
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EveOnline
4
+ module ESI
5
+ class MarketPrices < Base
6
+ API_PATH = "/v1/markets/prices/"
7
+
8
+ def market_prices
9
+ @market_prices ||=
10
+ begin
11
+ output = []
12
+ response.each do |market_price|
13
+ output << Models::MarketPrice.new(market_price)
14
+ end
15
+ output
16
+ end
17
+ end
18
+
19
+ def scope
20
+ end
21
+
22
+ def path
23
+ API_PATH
24
+ end
25
+ end
26
+ end
27
+ end
@@ -9,7 +9,7 @@ module EveOnline
9
9
  alliance_id: alliance_id,
10
10
  corporation_id: corporation_id,
11
11
  isk_destroyed: isk_destroyed,
12
- ships_killed: ships_killed,
12
+ ships_killed: ships_killed
13
13
  }
14
14
  end
15
15
 
@@ -12,7 +12,7 @@ module EveOnline
12
12
  executor_corporation_id: executor_corporation_id,
13
13
  faction_id: faction_id,
14
14
  name: name,
15
- ticker: ticker,
15
+ ticker: ticker
16
16
  }
17
17
  end
18
18
 
@@ -7,7 +7,7 @@ module EveOnline
7
7
  def as_json
8
8
  {
9
9
  icon_medium: icon_medium,
10
- icon_small: icon_small,
10
+ icon_small: icon_small
11
11
  }
12
12
  end
13
13