diff options
| author | stonedDiscord <Tukz@gmx.de> | 2025-09-03 08:39:19 +0200 |
|---|---|---|
| committer | stonedDiscord <Tukz@gmx.de> | 2025-09-03 08:39:19 +0200 |
| commit | 3162071cb27510954dde918af629ed5d75deb583 (patch) | |
| tree | 2e9e81b5942f50ac6e470049b0fe3093a4eb4672 /webAO | |
| parent | 8e46e304f4defc7f9f4eb01922812b28a8585307 (diff) | |
get list of extensions to try from host
Diffstat (limited to 'webAO')
| -rw-r--r-- | webAO/client.ts | 4 | ||||
| -rw-r--r-- | webAO/client/fetchLists.ts | 14 | ||||
| -rw-r--r-- | webAO/client/handleCharacterInfo.ts | 6 | ||||
| -rw-r--r-- | webAO/client/setEmote.ts | 3 |
4 files changed, 19 insertions, 8 deletions
diff --git a/webAO/client.ts b/webAO/client.ts index 4d8390a..28679c0 100644 --- a/webAO/client.ts +++ b/webAO/client.ts @@ -151,6 +151,8 @@ class Client extends EventEmitter { connect: () => void; loadResources: () => void; isLowMemory: () => void; + charicon_extensions: string[]; + emote_extensions: string[]; constructor(connectionString: string) { super(); @@ -209,6 +211,8 @@ class Client extends EventEmitter { this.temp_packet = ""; loadResources; isLowMemory; + this.charicon_extensions = [".png", ".webp"]; + this.emote_extensions = [".gif", ".png", ".apng", ".webp", ".webp.static"]; } /** 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 ( |
