From 3162071cb27510954dde918af629ed5d75deb583 Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Wed, 3 Sep 2025 08:39:19 +0200 Subject: get list of extensions to try from host --- webAO/client/fetchLists.ts | 14 +++++++++++--- webAO/client/handleCharacterInfo.ts | 6 +++--- webAO/client/setEmote.ts | 3 +-- 3 files changed, 15 insertions(+), 8 deletions(-) (limited to 'webAO/client') diff --git a/webAO/client/fetchLists.ts b/webAO/client/fetchLists.ts index 2489c97..2aff60a 100644 --- a/webAO/client/fetchLists.ts +++ b/webAO/client/fetchLists.ts @@ -50,8 +50,6 @@ export const fetchEvidenceList = async () => { try { const evidata = await request(`${AO_HOST}evidence.json`); const evi_array = JSON.parse(evidata); - // the try catch will fail before here when there is no file - evi_array.forEach((evi: string) => { evi_select.add(new Option(evi)); }); @@ -64,8 +62,18 @@ export const fetchManifest = async () => { try { const manifestdata = await request(`${AO_HOST}manifest.txt`); client.manifest = manifestdata.split(/\r\n|\n\r|\n|\r/); - // the try catch will fail before here when there is no file } catch (err) { console.warn("there was no manifest.txt file"); } }; + +export const fetchExtensions = async () => { + try { + const extensiondata = await request(`${AO_HOST}extensions.json`); + const allextensions = JSON.parse(extensiondata); + client.charicon_extensions = allextensions.charicon_extensions|| [".png", ".webp"]; + client.emote_extensions = allextensions.emote_extensions || [".gif", ".png", ".apng", ".webp", ".webp.static"]; + } catch (err) { + console.warn("there was no extensions.json file"); + } +}; diff --git a/webAO/client/handleCharacterInfo.ts b/webAO/client/handleCharacterInfo.ts index 3f81e57..a364b5e 100644 --- a/webAO/client/handleCharacterInfo.ts +++ b/webAO/client/handleCharacterInfo.ts @@ -6,13 +6,13 @@ import fileExists from "../utils/fileExists"; import { AO_HOST } from "./aoHost"; export const getCharIcon = async (img: HTMLImageElement, charname: string) => { - const extensions = [".png", ".webp"]; + const charicon_extensions = [".png", ".webp"]; img.alt = charname; const charIconBaseUrl = `${AO_HOST}characters/${encodeURI( charname.toLowerCase(), )}/char_icon`; - for (let i = 0; i < extensions.length; i++) { - const fileUrl = charIconBaseUrl + extensions[i]; + for (let i = 0; i < charicon_extensions.length; i++) { + const fileUrl = charIconBaseUrl + charicon_extensions[i]; const exists = await fileExists(fileUrl); if (exists) { img.alt = charname; diff --git a/webAO/client/setEmote.ts b/webAO/client/setEmote.ts index 70f23ac..4c05afc 100644 --- a/webAO/client/setEmote.ts +++ b/webAO/client/setEmote.ts @@ -23,9 +23,8 @@ const setEmote = async ( const emoteSelector = document.getElementById( `client_${position}${pairID}_img`, ) as HTMLImageElement; - const extensionsMap = [".gif", ".png", ".apng", ".webp", ".webp.static"]; - for (const extension of extensionsMap) { + for (const extension of client.emote_extensions) { // Hides all sprites before creating a new sprite if ( -- cgit