add GURT URL support for images

This commit is contained in:
Face
2025-09-11 17:56:32 +03:00
parent 838b9cb506
commit acc51d6aa2

View File

@@ -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: