From a46ccf72cef30eccf4cb3f9cdea9c461bb44f8b2 Mon Sep 17 00:00:00 2001 From: Caleb Mabry Date: Fri, 15 Jul 2022 00:44:10 -0400 Subject: Resolving issue with name display and encoding issue --- webAO/client.ts | 9 ++++++--- webAO/utils/__tests__/paths.test.ts | 13 +++++++++++++ webAO/utils/paths.ts | 1 + 3 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 webAO/utils/__tests__/paths.test.ts create mode 100644 webAO/utils/paths.ts diff --git a/webAO/client.ts b/webAO/client.ts index 2af1ab9..99462cd 100644 --- a/webAO/client.ts +++ b/webAO/client.ts @@ -8,7 +8,7 @@ import FingerprintJS from '@fingerprintjs/fingerprintjs'; import { EventEmitter } from 'events'; import tryUrls from './utils/tryUrls' import { - escapeChat, prepChat, safeTags, + escapeChat, prepChat, safeTags, unescapeChat, } from './encoding'; import mlConfig from './utils/aoml'; // Load some defaults for the background and evidence dropdowns @@ -30,6 +30,7 @@ import getAnimLength from './utils/getAnimLength.js'; import getResources from './utils/getResources.js'; import transparentPng from './constants/transparentPng'; import downloadFile from './services/downloadFile' +import { getFilenameFromPath } from './utils/paths'; const version = process.env.npm_package_version; let client: Client; @@ -1180,7 +1181,9 @@ class Client extends EventEmitter { addTrack(trackname: string) { const newentry = document.createElement('OPTION'); - newentry.text = trackname; + const songName = getFilenameFromPath(trackname); + newentry.text = unescapeChat(songName); + newentry.value = trackname; (document.getElementById('client_musiclist')).options.add(newentry); this.musics.push(trackname); } @@ -1271,7 +1274,7 @@ class Client extends EventEmitter { for (let i = 1; i < args.length - 1; i++) { // Check when found the song for the first time - const trackname = safeTags(args[i]); + const trackname = args[i]; const trackindex = i - 1; document.getElementById('client_loadingtext').innerHTML = `Loading Music ${i}/${this.music_list_length}`; (document.getElementById('client_loadingbar')).value = this.char_list_length + this.evidence_list_length + i; diff --git a/webAO/utils/__tests__/paths.test.ts b/webAO/utils/__tests__/paths.test.ts new file mode 100644 index 0000000..4f41d09 --- /dev/null +++ b/webAO/utils/__tests__/paths.test.ts @@ -0,0 +1,13 @@ +import {getFilenameFromPath} from '../paths' +jest.mock('../fileExists') + +describe('getFilenameFromPath', () => { + const EXAMPLE_PATH = "localhost/stoneddiscord/assets.png" + it('Should get the last value from a path', async () => { + const actual = getFilenameFromPath(EXAMPLE_PATH); + const expected = 'assets.png'; + expect(actual).toBe(expected); + }); +}) + + diff --git a/webAO/utils/paths.ts b/webAO/utils/paths.ts new file mode 100644 index 0000000..f4284b6 --- /dev/null +++ b/webAO/utils/paths.ts @@ -0,0 +1 @@ +export const getFilenameFromPath = (path: string) => path.substring(path.lastIndexOf('/') + 1) -- cgit