diff --git a/.gitignore b/.gitignore index 6635cf5..76498b8 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,11 @@ node_modules !.env.example vite.config.js.timestamp-* vite.config.ts.timestamp-* + + + +src/routes/api +src/routes/components +static/spotify-test-artwork.png + +server/ \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 08d31a6..e30aeec 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,6 +3,7 @@ FROM oven/bun:latest # ENV ADDRESS_HEADER="X-Forwarded-For" # ENV PROTOCOL_HEADER="X-Forwarded-Proto" ENV HOST_HEADER="Host" +ENV NODE_ENV="development" COPY . . RUN bun i --no-cache -f --no-save diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d6dd6ed --- /dev/null +++ b/LICENSE @@ -0,0 +1,42 @@ +# LICENSE + +Unless otherwise stated, all content on this site and in +this repository is licensed under the Creative Commons CC0 1.0 Universal License. + +The following items represent trademarks or copyrighted material +and are thus excempt from this repository's licensing: + +- static/avatar.png +- static/banner.png +- static/bluesky.svg ([Source](https://bsky.app/)) +- static/codeberg.svg ([Source](https://codeberg.org/)) +- static/discord.svg ([Source](https://discord.com/branding)) +- static/github.svg ([Source](https://github.com/logos)) +- static/keyoxide.png ([Source](https://keyoxide.org/)) +- static/lastfm.svg ([Source](https://www.last.fm/brand)) +- static/spotify.svg ([Source](https://developer.spotify.com/branding-guidelines/)) +- static/telegram.svg ([Source](https://telegram.org/brand_guidelines)) +- static/twitter.svg ([Source](https://about.twitter.com/en_us/company/brand-resources.html)) +- static/wetdry.world.png ([Source](https://wetdry.world/)) +- static/spotify-test-artwork.png + +The following items come from Google's Material Design Icons +and are licensed under the Apache License Version 2.0: + +- static/no-download.svg +- static/download.svg +- static/web.svg + +The following items are direct derivatives of [surfbryce/beautiful-lyrics](https://github.com/surfbryce/beautiful-lyrics) +and thus licensed under the MIT License: + +- src/lib/beautiful-lyrics/* +- src/components/parts/SpotifyContainer.svelte +- src/components/parts/lyrics/* + +The following items are imported from Google Fonts, and despite appearing on +the website, should not be considered part of this repository or its license: + +- [Google Fonts - Rubik](https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,400;0,700;1,400&display=swap) + +Any externally loaded content (such as images, fonts, etc.) is not covered by this license. diff --git a/bun.lockb b/bun.lockb index e32ef2f..f927346 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/package.json b/package.json index c7e8e54..f1a2034 100644 --- a/package.json +++ b/package.json @@ -16,8 +16,10 @@ "@sveltejs/kit": "^2.0.0", "@sveltejs/vite-plugin-svelte": "^3.0.0", "@types/eslint": "8.56.0", + "@types/luxon": "^3.3.7", "@typescript-eslint/eslint-plugin": "^6.0.0", "@typescript-eslint/parser": "^6.0.0", + "bun-types": "^1.0.20", "eslint": "^8.56.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-svelte": "^2.35.1", @@ -33,8 +35,11 @@ "dependencies": { "@catppuccin/palette": "^0.2.0", "@emotion/css": "^11.11.2", + "@svelte-plugins/tooltips": "^3.0.0", "@sveltejs/adapter-cloudflare": "^3.0.1", + "luxon": "^3.4.4", "sass": "^1.69.5", "svelte-adapter-bun": "^0.5.1" - } + }, + "license": "CC0-1.0" } diff --git a/src/app.html b/src/app.html index 72d42d8..2fe0c7d 100644 --- a/src/app.html +++ b/src/app.html @@ -9,6 +9,7 @@ @import url('https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,400;0,700;1,400&display=swap'); * { font-family: 'Rubik', sans-serif; + -webkit-tap-highlight-color: transparent; } %sveltekit.head% diff --git a/src/components/CatppuccinTabber.svelte b/src/components/CatppuccinTabber.svelte index 6be6d1f..42b76d7 100644 --- a/src/components/CatppuccinTabber.svelte +++ b/src/components/CatppuccinTabber.svelte @@ -1,8 +1,9 @@ + + + +
+ + + +
\ No newline at end of file diff --git a/src/components/parts/Centered.svelte b/src/components/parts/Centered.svelte new file mode 100644 index 0000000..2cadcb8 --- /dev/null +++ b/src/components/parts/Centered.svelte @@ -0,0 +1,31 @@ + + +
+ +
\ No newline at end of file diff --git a/src/components/parts/LyricsContainer.svelte b/src/components/parts/LyricsContainer.svelte new file mode 100644 index 0000000..651f398 --- /dev/null +++ b/src/components/parts/LyricsContainer.svelte @@ -0,0 +1,18 @@ + + + + + + +
+ +
\ No newline at end of file diff --git a/src/components/parts/SocialItem.svelte b/src/components/parts/SocialItem.svelte index 5258b5d..8050dc6 100644 --- a/src/components/parts/SocialItem.svelte +++ b/src/components/parts/SocialItem.svelte @@ -23,10 +23,14 @@ font-size: 20px; font-weight: bold; + } img { max-height: 25px; } + a { + text-decoration: none; + } diff --git a/src/components/parts/SpotifyContainer.svelte b/src/components/parts/SpotifyContainer.svelte new file mode 100644 index 0000000..02965ba --- /dev/null +++ b/src/components/parts/SpotifyContainer.svelte @@ -0,0 +1,150 @@ + + + + +
+
+
+
+ Album Art +
+
+
+
+ {songName} +
+
+ {artistName} - {albumName} +
+ +
+
+
+
+
+
+ +
+
\ No newline at end of file diff --git a/src/components/parts/Timestamp.svelte b/src/components/parts/Timestamp.svelte new file mode 100644 index 0000000..41453c3 --- /dev/null +++ b/src/components/parts/Timestamp.svelte @@ -0,0 +1,25 @@ + + + + + + { + content.replace("%%", (DateTime.fromJSDate(new Date(date)).toRelative({ + + }) as string).replace(/( ago)|(in )/, '')) + } + + diff --git a/static/download_FILL0_wght400_GRAD0_opsz24.svg b/static/download_FILL0_wght400_GRAD0_opsz24.svg deleted file mode 100644 index 6a171ea..0000000 --- a/static/download_FILL0_wght400_GRAD0_opsz24.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file