From 1ba59be463abe60448b0eb7da157251c393c0590 Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Wed, 3 Sep 2025 10:29:13 +0200 Subject: bgurls --- webAO/__tests__/tryBackgroundUrls.test.ts | 28 ++++++++++++++++++++++++++++ webAO/__tests__/tryUrls.test.ts | 28 ---------------------------- webAO/dom/updateBackgroundPreview.ts | 4 ++-- webAO/packets/handlers/handleBN.ts | 22 +++++++++++----------- webAO/utils/tryBackgroundUrls.ts | 15 +++++++++++++++ webAO/utils/tryUrls.ts | 15 --------------- webAO/viewport/utils/setSide.ts | 4 ++-- 7 files changed, 58 insertions(+), 58 deletions(-) create mode 100644 webAO/__tests__/tryBackgroundUrls.test.ts delete mode 100644 webAO/__tests__/tryUrls.test.ts create mode 100644 webAO/utils/tryBackgroundUrls.ts delete mode 100644 webAO/utils/tryUrls.ts diff --git a/webAO/__tests__/tryBackgroundUrls.test.ts b/webAO/__tests__/tryBackgroundUrls.test.ts new file mode 100644 index 0000000..cfbf3f9 --- /dev/null +++ b/webAO/__tests__/tryBackgroundUrls.test.ts @@ -0,0 +1,28 @@ +import fileExists from "../utils/fileExists"; +import tryBackgroundUrls from "../utils/tryBackgroundUrls"; +import transparentPng from "../constants/transparentPng"; +jest.mock("../utils/fileExists"); + +const mockFileExists = fileExists as jest.MockedFunction; + +describe("tryBackgroundUrls", () => { + it("Should try multiple file extensions", async () => { + const url = "localhost/stoneddiscord/assets"; + mockFileExists + .mockReturnValueOnce(Promise.resolve(false)) + .mockReturnValueOnce(Promise.resolve(false)) + .mockReturnValueOnce(Promise.resolve(false)) + .mockReturnValueOnce(Promise.resolve(true)); + const actual = await tryBackgroundUrls(url); + const expected = "localhost/stoneddiscord/assets.apng"; + expect(actual).toBe(expected); + }); + + it("Should return a transparent png if it cant find any assets", async () => { + const url = "localhost/stoneddiscord/assets"; + mockFileExists.mockReturnValue(Promise.resolve(false)); + const actual = await tryBackgroundUrls(url); + const expected = transparentPng; + expect(actual).toBe(expected); + }); +}); diff --git a/webAO/__tests__/tryUrls.test.ts b/webAO/__tests__/tryUrls.test.ts deleted file mode 100644 index 4a32f32..0000000 --- a/webAO/__tests__/tryUrls.test.ts +++ /dev/null @@ -1,28 +0,0 @@ -import fileExists from "../utils/fileExists"; -import tryUrls from "../utils/tryUrls"; -import transparentPng from "../constants/transparentPng"; -jest.mock("../utils/fileExists"); - -const mockFileExists = fileExists as jest.MockedFunction; - -describe("tryUrls", () => { - it("Should try multiple file extensions", async () => { - const url = "localhost/stoneddiscord/assets"; - mockFileExists - .mockReturnValueOnce(Promise.resolve(false)) - .mockReturnValueOnce(Promise.resolve(false)) - .mockReturnValueOnce(Promise.resolve(false)) - .mockReturnValueOnce(Promise.resolve(true)); - const actual = await tryUrls(url); - const expected = "localhost/stoneddiscord/assets.apng"; - expect(actual).toBe(expected); - }); - - it("Should return a transparent png if it cant find any assets", async () => { - const url = "localhost/stoneddiscord/assets"; - mockFileExists.mockReturnValue(Promise.resolve(false)); - const actual = await tryUrls(url); - const expected = transparentPng; - expect(actual).toBe(expected); - }); -}); diff --git a/webAO/dom/updateBackgroundPreview.ts b/webAO/dom/updateBackgroundPreview.ts index 61eec58..61186e0 100644 --- a/webAO/dom/updateBackgroundPreview.ts +++ b/webAO/dom/updateBackgroundPreview.ts @@ -1,5 +1,5 @@ import { AO_HOST } from "../client/aoHost"; -import tryUrls from "../utils/tryUrls"; +import tryBackgroundUrls from "../utils/tryBackgroundUrls"; /** * Update background preview. @@ -20,7 +20,7 @@ export function updateBackgroundPreview() { } else { background_filename.style.display = "none"; } - tryUrls( + tryBackgroundUrls( `${AO_HOST}background/${encodeURI( background_select.value.toLowerCase(), )}/defenseempty`, diff --git a/webAO/packets/handlers/handleBN.ts b/webAO/packets/handlers/handleBN.ts index aeea03b..5e9e8f8 100644 --- a/webAO/packets/handlers/handleBN.ts +++ b/webAO/packets/handlers/handleBN.ts @@ -5,7 +5,7 @@ import { updateBackgroundPreview } from "../../dom/updateBackgroundPreview"; import { getIndexFromSelect } from "../../dom/getIndexFromSelect"; import { switchPanTilt } from "../../dom/switchPanTilt"; import transparentPng from "../../constants/transparentPng"; -import tryUrls from "../../utils/tryUrls"; +import tryBackgroundUrls from "../../utils/tryBackgroundUrls"; /** * Handles a background change. @@ -28,21 +28,21 @@ export const handleBN = (args: string[]) => { client.viewport.getBackgroundName(); } - tryUrls( + tryBackgroundUrls( `${AO_HOST}background/${encodeURI(args[1].toLowerCase())}/defenseempty`, ).then((resp) => { (document.getElementById("bg_preview")).src = resp; }); - tryUrls(`${bgfolder}defensedesk`).then((resp) => { + tryBackgroundUrls(`${bgfolder}defensedesk`).then((resp) => { (document.getElementById("client_def_bench")).src = resp; }); - tryUrls(`${bgfolder}stand`).then((resp) => { + tryBackgroundUrls(`${bgfolder}stand`).then((resp) => { (document.getElementById("client_wit_bench")).src = resp; }); - tryUrls(`${bgfolder}prosecutiondesk`).then((resp) => { + tryBackgroundUrls(`${bgfolder}prosecutiondesk`).then((resp) => { (document.getElementById("client_pro_bench")).src = resp; }); - tryUrls(`${bgfolder}court`).then((resp) => { + tryBackgroundUrls(`${bgfolder}court`).then((resp) => { (document.getElementById("client_court")).src = resp; if (resp !== transparentPng) { (document.getElementById("client_pantilt")).checked = @@ -50,19 +50,19 @@ export const handleBN = (args: string[]) => { switchPanTilt(); } }); - tryUrls(`${bgfolder}defenseempty`).then((resp) => { + tryBackgroundUrls(`${bgfolder}defenseempty`).then((resp) => { (document.getElementById("client_court_def")).src = resp; }); - tryUrls(`${bgfolder}transition_def`).then((resp) => { + tryBackgroundUrls(`${bgfolder}transition_def`).then((resp) => { (document.getElementById("client_court_deft")).src = resp; }); - tryUrls(`${bgfolder}witnessempty`).then((resp) => { + tryBackgroundUrls(`${bgfolder}witnessempty`).then((resp) => { (document.getElementById("client_court_wit")).src = resp; }); - tryUrls(`${bgfolder}transition_pro`).then((resp) => { + tryBackgroundUrls(`${bgfolder}transition_pro`).then((resp) => { (document.getElementById("client_court_prot")).src = resp; }); - tryUrls(`${bgfolder}prosecutorempty`).then((resp) => { + tryBackgroundUrls(`${bgfolder}prosecutorempty`).then((resp) => { (document.getElementById("client_court_pro")).src = resp; }); diff --git a/webAO/utils/tryBackgroundUrls.ts b/webAO/utils/tryBackgroundUrls.ts new file mode 100644 index 0000000..154978b --- /dev/null +++ b/webAO/utils/tryBackgroundUrls.ts @@ -0,0 +1,15 @@ +import fileExists from "./fileExists"; +import transparentPng from "../constants/transparentPng"; +const urlExtensionsToTry = [".png", ".gif", ".webp", ".apng"]; +const tryBackgroundUrls = async (url: string) => { + for (let i = 0; i < urlExtensionsToTry.length; i++) { + const extension = urlExtensionsToTry[i]; + const fullFileUrl = url + extension; + const exists = await fileExists(fullFileUrl); + if (exists) { + return fullFileUrl; + } + } + return transparentPng; +}; +export default tryBackgroundUrls; diff --git a/webAO/utils/tryUrls.ts b/webAO/utils/tryUrls.ts deleted file mode 100644 index 127bc5b..0000000 --- a/webAO/utils/tryUrls.ts +++ /dev/null @@ -1,15 +0,0 @@ -import fileExists from "./fileExists"; -import transparentPng from "../constants/transparentPng"; -const urlExtensionsToTry = [".png", ".gif", ".webp", ".apng"]; -const tryUrls = async (url: string) => { - for (let i = 0; i < urlExtensionsToTry.length; i++) { - const extension = urlExtensionsToTry[i]; - const fullFileUrl = url + extension; - const exists = await fileExists(fullFileUrl); - if (exists) { - return fullFileUrl; - } - } - return transparentPng; -}; -export default tryUrls; diff --git a/webAO/viewport/utils/setSide.ts b/webAO/viewport/utils/setSide.ts index fd229e1..5966a52 100644 --- a/webAO/viewport/utils/setSide.ts +++ b/webAO/viewport/utils/setSide.ts @@ -1,7 +1,7 @@ import { positions } from "../constants/positions"; import { AO_HOST } from "../../client/aoHost"; import { client } from "../../client"; -import tryUrls from "../../utils/tryUrls"; +import tryBackgroundUrls from "../../utils/tryBackgroundUrls"; import findImgSrc from "../../utils/findImgSrc"; /** @@ -55,7 +55,7 @@ export const set_side = async ({ if (showSpeedLines === true) { court.src = `${AO_HOST}themes/default/${encodeURI(speedLines)}`; } else { - court.src = await tryUrls(client.viewport.getBackgroundFolder() + bg); + court.src = await tryBackgroundUrls(client.viewport.getBackgroundFolder() + bg); } if (showDesk === true && desk) { -- cgit