import "pkg:/source/utils/misc.bs"
' Returns an image URL for the specified item, or empty string if tag validation fails
' @param id - The item ID
' @param version - Image type/version (default: "Primary")
' @param params - URL parameters object. If "tag" or "Tag" key exists but contains
' invalid/empty value, function returns empty string to prevent 404 requests
function ImageURL(id, version = "Primary", params = {})
' Validate tag parameter if provided - return empty string for invalid tags to prevent 404 requests
if params.doesExist("tag") or params.doesExist("Tag")
tagValue = invalid
if params.doesExist("tag")
tagValue = params.tag
else if params.doesExist("Tag")
tagValue = params.Tag
end if
' Return empty string if tag is invalid or empty to prevent 404 requests
if not isValidAndNotEmpty(tagValue)
return ""
end if
end if
' set defaults for image dimensions if not provided
if not isValid(params.maxHeight)
params.maxHeight = "384"
end if
if not isValid(params.maxWidth)
params.maxWidth = "196"
end if
if not isValid(params.quality)
params.quality = "90"
end if
url = Substitute("Items/{0}/Images/{1}", id, version)
' ?maxHeight=384&maxWidth=256&tag=<tag>&quality=90"
fullURL = buildURL(url, params)
' Return empty string if server URL not configured (buildURL returns invalid)
if not isValid(fullURL) then return ""
return fullURL
end function
function UserImageURL(id, params = {})
' Validate tag parameter if provided - return empty string for invalid tags to prevent 404 requests
if params.doesExist("tag") or params.doesExist("Tag")
tagValue = invalid
if params.doesExist("tag")
tagValue = params.tag
else if params.doesExist("Tag")
tagValue = params.Tag
end if
' Return empty string if tag is invalid or empty to prevent 404 requests
if not isValidAndNotEmpty(tagValue)
return ""
end if
end if
' set defaults
if not isValid(params.maxHeight)
params.append({ "maxHeight": "300" })
end if
if not isValid(params.maxWidth)
params.append({ "maxWidth": "300" })
end if
if not isValid(params.quality)
params.append({ "quality": "90" })
end if
fullURL = GetApi().GetUserImageURL(id, "primary", 0, params)
' Return empty string if server URL not configured (buildURL returns invalid)
if not isValid(fullURL) then return ""
return fullURL
end function