Add online_awaited_request function

This commit is contained in:
JeremyStar™ 2024-03-24 21:57:32 +01:00
parent 203018db6f
commit 2200de33fa
2 changed files with 14 additions and 0 deletions

View file

@ -20,6 +20,12 @@ The returned `Dictionary` has the following structure (example):
| ---------------------------------------------------------------------- The HTTP response code | ---------------------------------------------------------------------- The HTTP response code
------------------------------------------------------------------------------------ Equal to @GlobalScope.Error. If not 0/Error.OK = the request failed ------------------------------------------------------------------------------------ Equal to @GlobalScope.Error. If not 0/Error.OK = the request failed
``` ```
### *Variant* <u>oneline_awaited_request</u>(*String* <u>url</u>, *bool* <u>return_utf8</u> = *true*, *bool* <u>ignore_http_code</u> = *false* *HTTPClient.Method* <u>method</u> = *HTTPClient.Method.METHOD_GET*, *PackedStringArray* <u>headers</u> = *PackedStringArray([])*, *String* <u>data</u> = *""*)
Returns a file from the internet without returning the godot code, http code or headers. Useful for oneliners.
Returns `null` on error. To ignore HTTP errors (ie. non-200 statuses) set `ignore_http_code` to `true`.
Returns a UTF-8 string with `return_utf8` turned on, returns bytes when turned off.
### *Array[Dictionary]* <u>batch_awaited_request</u>(*PackedStringArray* <u>urls</u>, *HTTPClient.Method* <u>method</u> = *HTTPClient.Method.METHOD_GET*, *PackedStringArray* <u>headers</u> = *PackedStringArray([])*, *String* <u>data</u> = *""*) ### *Array[Dictionary]* <u>batch_awaited_request</u>(*PackedStringArray* <u>urls</u>, *HTTPClient.Method* <u>method</u> = *HTTPClient.Method.METHOD_GET*, *PackedStringArray* <u>headers</u> = *PackedStringArray([])*, *String* <u>data</u> = *""*)
Requests multiple file from the internet, awaitable. Requests multiple file from the internet, awaitable.

View file

@ -40,6 +40,14 @@ func awaited_request(url: String, method: HTTPClient.Method = HTTPClient.Method.
list_complete.erase(id) list_complete.erase(id)
return dldata return dldata
func oneline_awaited_request(url: String, return_utf8: bool = true, ignore_http_code: bool = false, method: HTTPClient.Method = HTTPClient.Method.METHOD_GET, headers: PackedStringArray = PackedStringArray([]), data: String = "") -> Variant:
var dldata: Dictionary = await awaited_request(url, method, headers, data)
if dldata["result"] != Error.OK: return null
elif !ignore_http_code and dldata["http_code"] != 200: return null
else:
if return_utf8: return dldata["body_utf8"]
else: return dldata["body"]
func batch_awaited_request(urls: PackedStringArray, method: HTTPClient.Method = HTTPClient.Method.METHOD_GET, headers: PackedStringArray = PackedStringArray([]), data: String = "") -> Array[Dictionary]: func batch_awaited_request(urls: PackedStringArray, method: HTTPClient.Method = HTTPClient.Method.METHOD_GET, headers: PackedStringArray = PackedStringArray([]), data: String = "") -> Array[Dictionary]:
logger.verbf("Edl", "Creating " + str(urls.size()) + " awaited request(s)") logger.verbf("Edl", "Creating " + str(urls.size()) + " awaited request(s)")
var dldata: Array[Dictionary]= [] var dldata: Array[Dictionary]= []