mmi 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 54e9d7ed91e3ac72f8c78ba1d9bb550de696e87b134e4bd1f5db393e99e7d7d2
4
- data.tar.gz: 55df81f836288de4d0166c03488b7a3362992e6fc76304ccba2dc085758b1bb8
3
+ metadata.gz: ac664a5f071c4eeb437b6e1f501130373baa722e3e97277bd627de91db6340b0
4
+ data.tar.gz: ec0937a098b99dd02302ee3c0256ad1d6e3e3e6f14e7ef72e76dfb7924e52beb
5
5
  SHA512:
6
- metadata.gz: 2c9e1954062c87ea12251b23103fee16b141a9c1f78ca88199c70441649090c16f5bb09481e5d6b158903f6553c201a754608346b12dbc208400fa973eebab73
7
- data.tar.gz: '0481cffce09c9bf0439c1b739cb53cfeba1779a994c4b0ee203f45c3c17becd0164cc8c4b6c7400da01e26605e4e2065c4eeb141f0c6054fef06722f7bd7def2'
6
+ metadata.gz: 7eac5b99470ab80d174bdac020fd0f2872907d2bc2fc117ac102806d5dc6a2a58e410b6f96811376a0d8c32d8970c155b119ecf1d6620436211769b011676b4b
7
+ data.tar.gz: 600c32a227d7458a3f034e00c40347fd35bf11a4699f76ebd35521d9ee5a366e55740b70cfe8122ab96b468c9b985131cfc7218468231ed0c5c9edb8a04ce7ad
@@ -160,7 +160,18 @@ module Mmi
160
160
  end
161
161
  when Mmi::Source::Modrinth
162
162
  mod_version = CLI::UI::Prompt.ask('Choose a version.') do |handler|
163
- asset.cached_mod_versions.select do |version|
163
+ version_filter_parameters =
164
+ case processor.parsed_modloader
165
+ when Mmi::Modloader::Fabric
166
+ {
167
+ loader: 'fabric',
168
+ game_version: processor.parsed_modloader.mcversion,
169
+ }
170
+ else
171
+ {}
172
+ end
173
+
174
+ asset.cached_mod_versions(**version_filter_parameters).select do |version|
164
175
  version['files'].any?
165
176
  end.each do |version|
166
177
  handler.option("#{version['name']} (for game versions #{version['game_versions'].join('/')})") do
@@ -6,8 +6,8 @@ module Mmi
6
6
  BASE_URL = URI('https://api.modrinth.com/v2/')
7
7
 
8
8
  class << self
9
- def project_versions(mod_slug)
10
- JSON.parse((BASE_URL + "project/#{mod_slug}/version").open.read)
9
+ def project_versions(mod_slug, loader: nil, game_version: nil)
10
+ JSON.parse((BASE_URL + "project/#{mod_slug}/version?#{URI.encode_www_form(loaders: (%Q{["#{loader}"]} if loader), game_versions: (%Q{["#{game_version}"]} if game_version))}").open.read)
11
11
  end
12
12
  end
13
13
  end
@@ -42,14 +42,16 @@ module Mmi
42
42
  end
43
43
  end
44
44
 
45
- def cached_mod_versions
46
- @cached_mod_versions ||= Mmi::ModrinthApi.project_versions(self.name)
45
+ def cached_mod_versions(loader: nil, game_version: nil)
46
+ (@cached_mod_versions ||= Hash.new)[{loader: loader, game_version: game_version}] ||= Mmi::ModrinthApi.project_versions(self.name, loader: loader, game_version: game_version)
47
47
  end
48
48
 
49
49
  def download_url
50
50
  cached_mod_versions.select do |version|
51
51
  version['name'] == self.version
52
- end.first['files'].select do |files|
52
+ end.map do |version|
53
+ version['files']
54
+ end.flatten(1).select do |files|
53
55
  files['filename'] == self.version_file
54
56
  end.first['url'].gsub(/ /, '%20')
55
57
  end
data/lib/mmi/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Mmi
2
- VERSION = '0.2.1'.freeze
2
+ VERSION = '0.2.2'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mmi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - expeehaa
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-02-24 00:00:00.000000000 Z
11
+ date: 2024-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cli-ui
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '4.22'
55
+ - !ruby/object:Gem::Dependency
56
+ name: faraday-retry
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: pry
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -185,7 +199,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
185
199
  - !ruby/object:Gem::Version
186
200
  version: '0'
187
201
  requirements: []
188
- rubygems_version: 3.4.1
202
+ rubygems_version: 3.5.9
189
203
  signing_key:
190
204
  specification_version: 4
191
205
  summary: Program to install minecraft modloaders, mods and other assets through a