add GURT URL support for images
This commit is contained in:
@@ -1,14 +1,29 @@
|
|||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
func fetch_image(url: String) -> ImageTexture:
|
func fetch_image(url: String) -> ImageTexture:
|
||||||
var http_request = HTTPRequest.new()
|
|
||||||
add_child(http_request)
|
|
||||||
|
|
||||||
if url.is_empty():
|
if url.is_empty():
|
||||||
return null
|
return null
|
||||||
|
|
||||||
var network_request = NetworkManager.start_request(url, "GET", false)
|
var network_request = NetworkManager.start_request(url, "GET", false)
|
||||||
|
|
||||||
|
var body: PackedByteArray
|
||||||
|
var response_code: int
|
||||||
|
var headers: PackedStringArray
|
||||||
|
var response_headers = {}
|
||||||
|
|
||||||
|
if url.begins_with("gurt://"):
|
||||||
|
var gurt_body = await fetch_gurt_resource(url, true)
|
||||||
|
if gurt_body.is_empty():
|
||||||
|
return null
|
||||||
|
|
||||||
|
body = gurt_body
|
||||||
|
response_code = 200
|
||||||
|
headers = PackedStringArray()
|
||||||
|
else:
|
||||||
|
# Handle HTTP/HTTPS URLs
|
||||||
|
var http_request = HTTPRequest.new()
|
||||||
|
add_child(http_request)
|
||||||
|
|
||||||
var request_headers = PackedStringArray()
|
var request_headers = PackedStringArray()
|
||||||
request_headers.append("User-Agent: " + UserAgent.get_user_agent())
|
request_headers.append("User-Agent: " + UserAgent.get_user_agent())
|
||||||
|
|
||||||
@@ -26,13 +41,12 @@ func fetch_image(url: String) -> ImageTexture:
|
|||||||
var response = await http_request.request_completed
|
var response = await http_request.request_completed
|
||||||
|
|
||||||
var result = response[0] # HTTPClient.Result
|
var result = response[0] # HTTPClient.Result
|
||||||
var response_code = response[1] # int
|
response_code = response[1] # int
|
||||||
var headers = response[2] # PackedStringArray
|
headers = response[2] # PackedStringArray
|
||||||
var body = response[3] # PackedByteArray
|
body = response[3] # PackedByteArray
|
||||||
|
|
||||||
http_request.queue_free()
|
http_request.queue_free()
|
||||||
|
|
||||||
var response_headers = {}
|
|
||||||
for header in headers:
|
for header in headers:
|
||||||
var parts = header.split(":", 1)
|
var parts = header.split(":", 1)
|
||||||
if parts.size() == 2:
|
if parts.size() == 2:
|
||||||
|
|||||||
Reference in New Issue
Block a user