readability: extract magic constants

- HTTP_TIMEOUT_MS for HTTP connection/request timeout
- SCREENSHOT_REGEX_PATTERN for itch.io screenshot URL regex
This commit is contained in:
Jose Falanga 2026-08-19 16:20:21 -03:00
parent d06cba872c
commit 75f0463bc6

View file

@ -12,6 +12,8 @@ extends BoxArtProvider
const _boxart_dir := "user://boxart/itch" const _boxart_dir := "user://boxart/itch"
const _meta_cache_file := "itch_art_meta.json" const _meta_cache_file := "itch_art_meta.json"
const HTTP_TIMEOUT_MS := 15000
const SCREENSHOT_REGEX_PATTERN := "https://img\\.itch\\.zone/aW1hZ2Uv[^\"]*/original/[^\"]*"
@export var use_caching: bool = true @export var use_caching: bool = true
var http_image := HTTPImageFetcher.new() var http_image := HTTPImageFetcher.new()
@ -225,7 +227,7 @@ func _fetch_game_page_metadata(game: Dictionary) -> Dictionary:
if err != OK: if err != OK:
logger.warn("HTTP connect failed for %s: %d" % [page_url, err]) logger.warn("HTTP connect failed for %s: %d" % [page_url, err])
return {} return {}
var deadline := Time.get_ticks_msec() + 15000 var deadline := Time.get_ticks_msec() + HTTP_TIMEOUT_MS
while http.get_status() == HTTPClient.STATUS_CONNECTING or http.get_status() == HTTPClient.STATUS_RESOLVING: while http.get_status() == HTTPClient.STATUS_CONNECTING or http.get_status() == HTTPClient.STATUS_RESOLVING:
http.poll() http.poll()
if Time.get_ticks_msec() > deadline: if Time.get_ticks_msec() > deadline:
@ -239,7 +241,7 @@ func _fetch_game_page_metadata(game: Dictionary) -> Dictionary:
return {} return {}
http.request(HTTPClient.METHOD_GET, "/" + "/".join(parts.slice(3)), PackedStringArray()) http.request(HTTPClient.METHOD_GET, "/" + "/".join(parts.slice(3)), PackedStringArray())
deadline = Time.get_ticks_msec() + 15000 deadline = Time.get_ticks_msec() + HTTP_TIMEOUT_MS
while http.get_status() == HTTPClient.STATUS_REQUESTING: while http.get_status() == HTTPClient.STATUS_REQUESTING:
http.poll() http.poll()
if Time.get_ticks_msec() > deadline: if Time.get_ticks_msec() > deadline:
@ -268,7 +270,7 @@ func _fetch_game_page_metadata(game: Dictionary) -> Dictionary:
return {} return {}
var shot_re := RegEx.new() var shot_re := RegEx.new()
shot_re.compile("https://img\\.itch\\.zone/aW1hZ2Uv[^\"]*/original/[^\"]*") shot_re.compile(SCREENSHOT_REGEX_PATTERN)
var screenshots: Array = [] var screenshots: Array = []
for m in shot_re.search_all(html): for m in shot_re.search_all(html):
var url: String = m.get_string(0) var url: String = m.get_string(0)