Put a bandaid on Api.package_details by using Async::HTTP::Client instead of directly using Async::HTTP::Internet- TODO: use :Client instead of ::Internet, enabled verify_files task in installer

This commit is contained in:
2021-12-29 08:37:54 -06:00
parent 82add3cc9d
commit d880d1525f
3 changed files with 13 additions and 5 deletions

View File

@@ -128,13 +128,14 @@ class W3DHub
# client requests package details: data={"packages":[{"category":"games","name":"apb.ico","subcategory":"apb","version":""}]}
def self.package_details(internet, packages)
body = URI.encode_www_form("data": JSON.dump({ packages: packages }))
response = internet.post("#{ENDPOINT}/apis/launcher/1/get-package-details", FORM_ENCODED_HEADERS, body)
endpoint = Async::HTTP::Endpoint.parse("#{ENDPOINT}/apis/launcher/1/get-package-details", protocol: Async::HTTP::Protocol::HTTP10)
client = Async::HTTP::Client.new(endpoint)
response = client.post("#{ENDPOINT}/apis/launcher/1/get-package-details", FORM_ENCODED_HEADERS, body)
if response.success?
hash = JSON.parse(response.read, symbolize_names: true)
hash[:packages].map { |pkg| Package.new(pkg) }
else
pp response, body
false
end
end

View File

@@ -507,7 +507,14 @@ class W3DHub
# Check for and integrity of local manifest
internet = Async::HTTP::Internet.instance
package = Api.package_details(internet, [{ category: category, subcategory: subcategory, name: name, version: version }]).first
package = nil
array = Api.package_details(internet, [{ category: category, subcategory: subcategory, name: name, version: version }])
if array.is_a?(Array)
package = array.first
else
fail!("Failed to fetch manifest package details!")
return
end
if File.exist?(Cache.package_path(category, subcategory, name, version))
verified = verify_package(package)

View File

@@ -15,8 +15,8 @@ class W3DHub
packages = build_package_list(manifests)
return false if failed?
# verify_files(manifests, packages)
# return false if failed?
verify_files(manifests, packages)
return false if failed?
fetch_packages(packages)
return false if failed?