Check-in by ben on 2025-11-09 05:17:04 Some items have an uploader name with no id nor email. In that case, show a name without any search for other items by the same uploader. INSERTED DELETED 13 6 src/details.m4 13 6 TOTAL over 1 changed file Index: src/details.m4 ================================================================== --- src/details.m4 +++ src/details.m4 @@ -14,11 +14,12 @@ incl(src/web.awk) function main( add_date, col, cols, cmd, creator, descr, dir, i, iaout, id, item_id, item_server, item_size, label, language, license, output, pub_date, scanner, signature, str, thumb, - title, topic, topics, type, uploader_account, uploader_email, url) + title, topic, topics, type, uploader_account, uploader_email, + uploader_name, url) { item_id = search signature = "details/" item_id str = cache_init(signature) @@ -55,10 +56,12 @@ topics = 0 delete topic type = "" uploader_account = "" uploader_email = "" + uploader_name = "Unknown" + while ((cmd | getline) > 0) { if ($1 == ".dir" && $2 == "s") { dir = $3 } else if ($1 == ".files[].name" && $2 == "s") { if ($3 == "__ia_thumb.jpg") { @@ -176,14 +179,16 @@ # scrape uploader name from item web page HTML url = api_ssl_endpoint "/details/" item_id api_request(url, "GET", iaout) while ((getline 0) { - if (/item-upload-info__uploader-name/ && - match($0, /\/details\/[^"]*"/)) - { - uploader_account = substr($0, RSTART + 9, RLENGTH - 10) + if (match($0, /item-upload-info__uploader-name/)) { + if (match($0, /\/details\/[^"]*"/)) { + uploader_account = substr($0, RSTART + 9, RLENGTH - 10) + } else if (match($0, />[^<]*<\/span>/)) { + uploader_name = substr($0, RSTART + 1, RLENGTH - 8) + } } } close(iaout) if (cols > 0) { @@ -200,14 +205,16 @@ print "# Uploaded by" >>output if (length(uploader_account) > 0) { label = shorten(uploader_account, 70) printf "1%s\t%s/account?%s/%s\t%s\t%s\n", label, cgipath, uploader_account, uploader_email, server, port >>output - } else { + } else if (length(uploader_email) > 0) { label = shorten(uploader_email, 70) printf "1%s\t%s/search?uploader:%s\t%s\t%s\n", label, cgipath, uploader_email, server, port >>output + } else { + printf "%s\n", uploader_name >>output } print "" >>output print "# Similar items" >>output printf "1View similar items\t%s/search?similar:%s\t%s\t%s\n",