Make content URL gen safer using builtin URL helper

This commit is contained in:
Dominic Grimm 2022-08-02 20:44:09 +02:00
parent 750f91452b
commit 5ebb7e02a7
2 changed files with 10 additions and 6 deletions

View file

@ -1,5 +1,5 @@
export const API_ROOT_URL = "http://techgames.gnetx.com/infoscreen";
export const CONTENT_ROOT_URL = `${API_ROOT_URL}/listings`;
export const API_ROOT_URL = new URL("http://techgames.gnetx.com/infoscreen");
export const CONTENT_ROOT_URL = new URL("/listings", API_ROOT_URL);
export enum ListingType {
IMAGE = "IMAGE",
@ -25,6 +25,6 @@ export async function fetchData(): Promise<Data> {
return await response.json();
}
export function generateContentURL(content: string): string {
return `${CONTENT_ROOT_URL}/${encodeURIComponent(content)}`;
export function generateContentURL(content: string): URL {
return new URL(encodeURIComponent(content), CONTENT_ROOT_URL);
}

View file

@ -42,7 +42,9 @@
{#if data.listings[listingIndex].type == api.ListingType.IMAGE}
<img
class="center dynamic-size"
src={api.generateContentURL(data.listings[listingIndex].content)}
src={api
.generateContentURL(data.listings[listingIndex].content)
.toString()}
alt={data.listings[listingIndex].name}
on:load={() =>
handleTime(
@ -63,7 +65,9 @@
on:ended={() => updateListingIndex(data.listings.length)}
>
<source
src={api.generateContentURL(data.listings[listingIndex].content)}
src={api
.generateContentURL(data.listings[listingIndex].content)
.toString()}
/>
<track kind="captions" />
<b class="error">Videos are not supported!</b>