From 51e67a3970adf58eb291235f777093234b01d0cd Mon Sep 17 00:00:00 2001 From: JovannMC Date: Mon, 10 Feb 2025 21:40:15 +0300 Subject: [PATCH] feat: warn when converting videos if vertd instance isn't found + add an easter egg if you try to upload the vertd server yw realmy --- src/lib/sections/settings/Vertd.svelte | 11 ++++++++-- src/lib/store/index.svelte.ts | 1 + src/routes/convert/+page.svelte | 30 +++++++++++++++++++++++++- 3 files changed, 39 insertions(+), 3 deletions(-) diff --git a/src/lib/sections/settings/Vertd.svelte b/src/lib/sections/settings/Vertd.svelte index 811f484..e1971b5 100644 --- a/src/lib/sections/settings/Vertd.svelte +++ b/src/lib/sections/settings/Vertd.svelte @@ -5,6 +5,7 @@ import type { ISettings } from "./index.svelte"; import clsx from "clsx"; import Dropdown from "$lib/components/functional/Dropdown.svelte"; + import { vertdLoaded } from "$lib/store/index.svelte"; let vertdCommit = $state(null); let abortController: AbortController | null = null; @@ -12,7 +13,7 @@ const { settings }: { settings: ISettings } = $props(); $effect(() => { - if (settings.vertdURL) { + if (settings.vertdURL) { if (abortController) abortController.abort(); abortController = new AbortController(); const { signal } = abortController; @@ -21,17 +22,23 @@ fetch(`${settings.vertdURL}/api/version`, { signal }) .then((res) => { if (!res.ok) throw new Error("bad response"); + vertdLoaded.set(false); return res.json(); }) .then((data) => { vertdCommit = data.data; + vertdLoaded.set(true); }) .catch((err) => { - if (err.name !== "AbortError") vertdCommit = null; + if (err.name !== "AbortError") { + vertdCommit = null; + vertdLoaded.set(false); + } }); } else { if (abortController) abortController.abort(); vertdCommit = null; + vertdLoaded.set(false); } return () => { diff --git a/src/lib/store/index.svelte.ts b/src/lib/store/index.svelte.ts index a7b0c07..3011321 100644 --- a/src/lib/store/index.svelte.ts +++ b/src/lib/store/index.svelte.ts @@ -231,6 +231,7 @@ export const showGradient = writable(true); export const gradientColor = writable(""); export const goingLeft = writable(false); export const dropping = writable(false); +export const vertdLoaded = writable(false); export const isMobile = writable(false); export const effects = writable(true); diff --git a/src/routes/convert/+page.svelte b/src/routes/convert/+page.svelte index 299ece3..29d9d90 100644 --- a/src/routes/convert/+page.svelte +++ b/src/routes/convert/+page.svelte @@ -4,11 +4,13 @@ import Uploader from "$lib/components/functional/Uploader.svelte"; import Panel from "$lib/components/visual/Panel.svelte"; import ProgressBar from "$lib/components/visual/ProgressBar.svelte"; + import { converters } from "$lib/converters"; import { effects, files, gradientColor, showGradient, + vertdLoaded, } from "$lib/store/index.svelte"; import { VertFile } from "$lib/types"; import { @@ -96,12 +98,38 @@ {#if !file.converter} + {#if file.name.startsWith("vertd")} +
+

+ We can't convert this file. +

+

+ what are you doing..? you're supposed to run the vertd + server! +

+
+ {:else} +
+

+ We can't convert this file. +

+

+ Only image, video, and audio files are supported +

+
+ {/if} + {:else if isVideo && !$vertdLoaded}

We can't convert this file.

- Only image, video, and audio files are supported + Could not find the vertd instance to start video conversion. + Are you sure the instance URL is set correctly?

{:else}