From cacbd7f8abe5390a363fa8a20eb4e39e067daf26 Mon Sep 17 00:00:00 2001 From: nxrmqlly Date: Sun, 20 Oct 2024 00:56:18 +0530 Subject: [PATCH] visual changes, max res filter, new font --- backend/controllers/get.go | 2 +- backend/models/video.go | 20 +-- biome.json | 10 ++ frontend/src/App.svelte | 110 +++++++++++----- .../src/assets/fonts/Satoshi-Regular.woff | Bin 0 -> 33024 bytes frontend/src/components/ThemeSwitcher.svelte | 15 ++- frontend/src/components/VideoModal.svelte | 123 ++++++++++-------- frontend/src/style.css | 15 ++- 8 files changed, 188 insertions(+), 107 deletions(-) create mode 100644 biome.json create mode 100644 frontend/src/assets/fonts/Satoshi-Regular.woff diff --git a/backend/controllers/get.go b/backend/controllers/get.go index 1b0d179..09b9ce0 100644 --- a/backend/controllers/get.go +++ b/backend/controllers/get.go @@ -17,7 +17,7 @@ func (a *App) GetVideoInfo(videoURL string) (models.VideoInfo, error) { // Capture the output output, err := cmd.CombinedOutput() if err != nil { - return models.VideoInfo{}, fmt.Errorf("yt-dlp error: %w", err) + return models.VideoInfo{}, fmt.Errorf("%s; output: %s", err, output) } // Parse the JSON output diff --git a/backend/models/video.go b/backend/models/video.go index b944086..ae8ad0b 100644 --- a/backend/models/video.go +++ b/backend/models/video.go @@ -1,13 +1,15 @@ package models type VideoInfo struct { - URL string `json:"webpage_url"` - ID string `json:"id"` - Title string `json:"title"` - FPS int `json:"fps"` - Uploader string `json:"uploader"` - UploaderURL string `json:"uploader_url"` - Duration int `json:"duration"` // Duration in seconds - ViewCount int `json:"view_count"` - Thumbnail string `json:"thumbnail"` + URL string `json:"webpage_url"` + ID string `json:"id"` + Title string `json:"title"` + FPS float32 `json:"fps"` + Uploader string `json:"uploader"` + UploaderURL string `json:"uploader_url"` + Duration int `json:"duration"` // Duration in seconds + ViewCount int `json:"view_count"` + Thumbnail string `json:"thumbnail"` + Height int `json:"height"` + Width int `json:"width"` } diff --git a/biome.json b/biome.json new file mode 100644 index 0000000..e01fe55 --- /dev/null +++ b/biome.json @@ -0,0 +1,10 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", + "linter": { + "rules": { + "style": { + "useConst": "off" + } + } + } +} \ No newline at end of file diff --git a/frontend/src/App.svelte b/frontend/src/App.svelte index 687256f..eb91a53 100644 --- a/frontend/src/App.svelte +++ b/frontend/src/App.svelte @@ -1,17 +1,24 @@ - -
- - -

Youtube Downloader

- -
- - -
-
-

Works with almost anything. Blazingly fast, I guess.

-

Made by @nxrmqlly with ❤ using Go and Svelte

-
- - {#if showModal} - - {/if} - - {#if showToast} - - {/if} - -
- + +
+ + +

Youtube Downloader

+ +
+ + + +
+
+

Works with almost anything. Blazingly fast, I guess.

+

Made by @nxrmqlly with ❤ using Go and Svelte

+
+ + {#if showModal} + + {/if} + + {#if showToast} + + {/if} + +
\ No newline at end of file diff --git a/frontend/src/assets/fonts/Satoshi-Regular.woff b/frontend/src/assets/fonts/Satoshi-Regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..03ac1952552e948a80dcbe4c886a6461ad7b58ea GIT binary patch literal 33024 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 if1J$nghK+h3Hwj~ZwTV|*#HL$rwjt}(;74y2 literal 0 HcmV?d00001 diff --git a/frontend/src/components/ThemeSwitcher.svelte b/frontend/src/components/ThemeSwitcher.svelte index 2850ce8..6cb6edf 100644 --- a/frontend/src/components/ThemeSwitcher.svelte +++ b/frontend/src/components/ThemeSwitcher.svelte @@ -16,9 +16,11 @@ function toggleTheme() { isDarkMode = !isDarkMode; if (!isDarkMode) { document.documentElement.style.setProperty("--bg-color", "#100a0d"); + document.documentElement.style.setProperty("--duo-bg-color", "#212021"); document.documentElement.style.setProperty("--fg-color", "#f6f3f4"); } else { document.documentElement.style.setProperty("--bg-color", "#f6f3f4"); + document.documentElement.style.setProperty("--duo-bg-color", "#f6f3f4"); document.documentElement.style.setProperty("--fg-color", "#100a0d"); } } @@ -36,15 +38,14 @@ onMount(() => { top: 1rem; right: 1rem; color: var(--fg-color); - border: 1px solid var(--bg-color); - border-radius: 50%; /* Make it circular */ - width: 50px; /* Set width */ - height: 50px; /* Set height */ + border-radius: 50%; + width: 4rem; + height: 4rem; display: flex; align-items: center; justify-content: center; cursor: pointer; - font-size: 1.5rem; /* Increase font size for emoji */ + font-size: 1.5rem; } .switcher:hover { @@ -54,8 +55,8 @@ onMount(() => {
{#if isDarkMode} - + {:else} - + {/if}
diff --git a/frontend/src/components/VideoModal.svelte b/frontend/src/components/VideoModal.svelte index f8865ce..d913277 100644 --- a/frontend/src/components/VideoModal.svelte +++ b/frontend/src/components/VideoModal.svelte @@ -1,6 +1,7 @@