mirror of
https://github.com/cyberarm/w3d_hub_linux_launcher.git
synced 2025-12-16 09:12:35 +00:00
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:
@@ -128,13 +128,14 @@ class W3DHub
|
|||||||
# client requests package details: data={"packages":[{"category":"games","name":"apb.ico","subcategory":"apb","version":""}]}
|
# client requests package details: data={"packages":[{"category":"games","name":"apb.ico","subcategory":"apb","version":""}]}
|
||||||
def self.package_details(internet, packages)
|
def self.package_details(internet, packages)
|
||||||
body = URI.encode_www_form("data": JSON.dump({ packages: 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?
|
if response.success?
|
||||||
hash = JSON.parse(response.read, symbolize_names: true)
|
hash = JSON.parse(response.read, symbolize_names: true)
|
||||||
hash[:packages].map { |pkg| Package.new(pkg) }
|
hash[:packages].map { |pkg| Package.new(pkg) }
|
||||||
else
|
else
|
||||||
pp response, body
|
|
||||||
false
|
false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -507,7 +507,14 @@ class W3DHub
|
|||||||
# Check for and integrity of local manifest
|
# Check for and integrity of local manifest
|
||||||
internet = Async::HTTP::Internet.instance
|
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))
|
if File.exist?(Cache.package_path(category, subcategory, name, version))
|
||||||
verified = verify_package(package)
|
verified = verify_package(package)
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ class W3DHub
|
|||||||
packages = build_package_list(manifests)
|
packages = build_package_list(manifests)
|
||||||
return false if failed?
|
return false if failed?
|
||||||
|
|
||||||
# verify_files(manifests, packages)
|
verify_files(manifests, packages)
|
||||||
# return false if failed?
|
return false if failed?
|
||||||
|
|
||||||
fetch_packages(packages)
|
fetch_packages(packages)
|
||||||
return false if failed?
|
return false if failed?
|
||||||
|
|||||||
Reference in New Issue
Block a user