From ba983625028c7673a0659823067fa34527ce1b98 Mon Sep 17 00:00:00 2001 From: Luna Date: Wed, 24 Sep 2025 04:36:54 +0200 Subject: [PATCH] fix image stuff and add delete tournament --- src/lib/stores.js | 2 + src/routes/tournaments/+page.svelte | 62 +++---------------- .../[tournamentguid]/mappools/+page.svelte | 13 +--- .../[tournamentguid]/qualifiers/+page.svelte | 19 ++---- .../qualifiers/[qualifierGuid]/+page.svelte | 15 +++-- .../[tournamentguid]/settings/+page.svelte | 15 ++++- .../[tournamentguid]/teams/+page.svelte | 14 ++--- 7 files changed, 45 insertions(+), 95 deletions(-) diff --git a/src/lib/stores.js b/src/lib/stores.js index f0515c9..407c052 100644 --- a/src/lib/stores.js +++ b/src/lib/stores.js @@ -24,6 +24,8 @@ export const TABotTokenStore = createPersistedStore('TABotTokenTAUI', null); export const TAServerUrl = createPersistedStore('TAServerUrl', "server.tournamentassistant.net"); +export const TAServerAPIPort = createPersistedStore('TAServerAPIPort', "8678"); + export const TAServerPort = createPersistedStore('TAServerPort', "8676"); export const TAServerPlayerPort = createPersistedStore('TAServerPlayerPort', "8675"); diff --git a/src/routes/tournaments/+page.svelte b/src/routes/tournaments/+page.svelte index e97a6e2..9b7fee3 100644 --- a/src/routes/tournaments/+page.svelte +++ b/src/routes/tournaments/+page.svelte @@ -3,7 +3,7 @@ import { onMount, onDestroy } from 'svelte'; import Notification from '$lib/components/notifications/Popup.svelte'; import { discordAuthUrl } from '$lib/config.json'; - import { discordDataStore, discordTokenStore, authTokenStore, TAServerPort, TAServerUrl, client, TAServerPlayerPort } from '$lib/stores'; + import { discordDataStore, discordTokenStore, authTokenStore, TAServerPort, TAServerUrl, client, TAServerPlayerPort, TAServerAPIPort } from '$lib/stores'; import { TAClient, Response_ResponseType, Tournament } from 'moons-ta-client'; import { bufferToImageUrl } from '$lib/services/taImages'; import { v4 as uuidv4 } from "uuid"; @@ -83,35 +83,20 @@ if (t.settings?.tournamentImage) { // If the image is already a string URL if (typeof t.settings.tournamentImage === 'string') { - imageUrl = t.settings.tournamentImage; + imageUrl = `https://${$TAServerUrl}:${$TAServerAPIPort}/api/file/${t.settings.tournamentImage}`; } // If the image is a Uint8Array - else if (typeof t.settings.tournamentImage === 'object') { - // Create and properly dispose of object URLs to prevent memory leaks - try { - imageUrl = bufferToImageUrl(t.settings.tournamentImage); - if (imageUrl.length < 150) { - imageUrl = "/talogo.png" - } - } catch (error) { - console.error('Failed to convert tournament image buffer to URL:', error); - // Fall back to default image - imageUrl = "/talogo.png" - } + else { + imageUrl = "/talogo.png" } } - // Fetch authorized users for this tournament - // This initiates the API call immediately but doesn't block the map function - // const authorisedUsersPromise = await fetchTournamentAuthorisedUsers(t.guid); - return { id: t.guid.substring(0, 8), // Short ID for display name: t.settings?.tournamentName || 'Unnamed Tournament', image: imageUrl, guid: t.guid, myPermissions: t.settings!.myPermissions - // authorisedUsers: authorisedUsersPromise // Wait for the promise to resolve }; })); @@ -129,20 +114,6 @@ } }); - async function fetchTournamentAuthorisedUsers(tournamentGuid: string) { - // Get the authorised users for the tournament - let authorisedUsers = []; - try { - const response = await client.getAuthorizedUsers(tournamentGuid); - console.log("authUsers Found", response); - authorisedUsers = (response as any).details.getAuthorizedUsers.authorizedUsers; - return authorisedUsers; - } catch (error) { - console.error(`Failed to get authorized users for tournament ${tournamentGuid}:`, error); - return authorisedUsers; - } - } - function closeNotification() { showLoginNotification = false; } @@ -242,20 +213,6 @@ } }; - // Convert image to Uint8Array if an image was provided - if (newTournamentImage) { - try { - // old way of making an image empty in TA, changed in fileserver update - // tournament.settings!.tournamentImage = await convertImageToUint8Array(newTournamentImage); - // new way is just an empty string - tournament.settings!.tournamentImage = ""; - console.log("Image converted successfully", tournament.settings!.tournamentImage.length, "bytes"); - } catch (error) { - console.error("Failed to convert image:", error); - // Continue with default image - } - } - // Create the tournament console.log("Creating tournament:", tournament); const response = await client.createTournament( @@ -269,24 +226,17 @@ false, true, true, - ); console.log("Tournament created:", response); const responseTournament = (response.details as any).tournament; - // Add the new tournament to the list (for immediate display) - let imageUrl = '/images/tournaments/default.jpg'; // Default fallback - if (imagePreviewUrl) { - imageUrl = imagePreviewUrl; - } - tournaments = [ ...tournaments, { id: responseTournament.guid.substring(0, 8), name: responseTournament.settings!.tournamentName, - image: imageUrl, + image: responseTournament.settings!.tournamentImage && responseTournament.settings!.tournamentImage.length > 2 ? `https://${$TAServerUrl}:${$TAServerAPIPort}/api/file/${responseTournament.settings.tournamentImage}` : '/talogo.png', guid: responseTournament.guid, myPermissions: responseTournament.settings!.myPermissions // authorisedUsers: [] @@ -364,6 +314,8 @@
+ +
{tournament.name} diff --git a/src/routes/tournaments/[tournamentguid]/mappools/+page.svelte b/src/routes/tournaments/[tournamentguid]/mappools/+page.svelte index 83d0e29..c604381 100644 --- a/src/routes/tournaments/[tournamentguid]/mappools/+page.svelte +++ b/src/routes/tournaments/[tournamentguid]/mappools/+page.svelte @@ -1,5 +1,5 @@