aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormat <27899617+mat-1@users.noreply.github.com>2022-12-15 20:19:42 -0600
committerGitHub <noreply@github.com>2022-12-15 20:19:42 -0600
commited5eedab8f9fc90dadf5c442cf559572d1b35f0c (patch)
tree01a763fd11810e9970f14f7dae180e95b279de9a /src
parent89bf3d31e36ad3bdfd45461ee6fb69a4c791f848 (diff)
parent103689520f51991a1e9a4ca5829fe2f46d1a32c2 (diff)
downloadskyblock-stats-ed5eedab8f9fc90dadf5c442cf559572d1b35f0c.tar.gz
skyblock-stats-ed5eedab8f9fc90dadf5c442cf559572d1b35f0c.tar.bz2
skyblock-stats-ed5eedab8f9fc90dadf5c442cf559572d1b35f0c.zip
Merge pull request #6 from skyblockstats/sveltekit-v1
Sveltekit v1
Diffstat (limited to 'src')
-rw-r--r--src/app.d.ts8
-rw-r--r--src/app.html27
-rw-r--r--src/hooks.server.ts7
-rw-r--r--src/hooks.ts25
-rw-r--r--src/lib/AuctionPriceScatterplot.svelte2
-rw-r--r--src/lib/BackgroundImage.svelte2
-rw-r--r--src/lib/Collapsible.svelte2
-rw-r--r--src/lib/LoginButton.svelte2
-rw-r--r--src/lib/MayorSkin.svelte24
-rw-r--r--src/lib/layout/Loader.svelte2
-rw-r--r--src/lib/minecraft/inventory.ts2
-rw-r--r--src/params/username.ts5
-rw-r--r--src/routes/+error.svelte (renamed from src/routes/__error.svelte)22
-rw-r--r--src/routes/+layout.svelte (renamed from src/routes/__layout.svelte)0
-rw-r--r--src/routes/+page.server.ts7
-rw-r--r--src/routes/+page.svelte (renamed from src/routes/index.svelte)16
-rw-r--r--src/routes/[player=username]/+page.ts6
-rw-r--r--src/routes/[player].ts14
-rw-r--r--src/routes/auctionprices/+page.svelte (renamed from src/routes/auctionprices.svelte)27
-rw-r--r--src/routes/auctionprices/+page.ts13
-rw-r--r--src/routes/chat/+page.svelte (renamed from src/routes/chat.svelte)0
-rw-r--r--src/routes/election/+page.svelte (renamed from src/routes/election.svelte)30
-rw-r--r--src/routes/election/+page.ts8
-rw-r--r--src/routes/items/+page.svelte (renamed from src/routes/items.svelte)15
-rw-r--r--src/routes/items/+page.ts6
-rw-r--r--src/routes/leaderboard/+page.ts6
-rw-r--r--src/routes/leaderboard/[name].ts12
-rw-r--r--src/routes/leaderboard/[name]/+server.ts7
-rw-r--r--src/routes/leaderboard/index.ts11
-rw-r--r--src/routes/leaderboards/+page.svelte (renamed from src/routes/leaderboards/index.svelte)15
-rw-r--r--src/routes/leaderboards/+page.ts6
-rw-r--r--src/routes/leaderboards/[name]/+page.svelte (renamed from src/routes/leaderboards/[name].svelte)19
-rw-r--r--src/routes/leaderboards/[name]/+page.ts13
-rw-r--r--src/routes/loggedin/+server.ts (renamed from src/routes/loggedin.ts)25
-rw-r--r--src/routes/login.ts36
-rw-r--r--src/routes/login/+server.ts18
-rw-r--r--src/routes/logout/+server.ts (renamed from src/routes/logout.ts)15
-rw-r--r--src/routes/player/+page.server.ts12
-rw-r--r--src/routes/player/[player]/+page.svelte (renamed from src/routes/player/[player]/index.svelte)37
-rw-r--r--src/routes/player/[player]/+page.ts19
-rw-r--r--src/routes/player/[player]/[profile]/+page.svelte (renamed from src/routes/player/[player]/[profile].svelte)97
-rw-r--r--src/routes/player/[player]/[profile]/+page.ts40
-rw-r--r--src/routes/player/[player]/[profile]/sections/AccessoryBagUpgrades.svelte (renamed from src/lib/sections/AccessoryBagUpgrades.svelte)0
-rw-r--r--src/routes/player/[player]/[profile]/sections/Achievements.svelte (renamed from src/lib/sections/Achievements.svelte)0
-rw-r--r--src/routes/player/[player]/[profile]/sections/Armor.svelte (renamed from src/lib/sections/Armor.svelte)0
-rw-r--r--src/routes/player/[player]/[profile]/sections/Auctions.svelte (renamed from src/lib/sections/Auctions.svelte)0
-rw-r--r--src/routes/player/[player]/[profile]/sections/Bank.svelte (renamed from src/lib/sections/Bank.svelte)0
-rw-r--r--src/routes/player/[player]/[profile]/sections/Claimed.svelte (renamed from src/lib/sections/Claimed.svelte)0
-rw-r--r--src/routes/player/[player]/[profile]/sections/Collections.svelte (renamed from src/lib/sections/Collections.svelte)0
-rw-r--r--src/routes/player/[player]/[profile]/sections/Coop.svelte (renamed from src/lib/sections/Coop.svelte)0
-rw-r--r--src/routes/player/[player]/[profile]/sections/Essence.svelte (renamed from src/lib/sections/Essence.svelte)0
-rw-r--r--src/routes/player/[player]/[profile]/sections/FarmingContests.svelte (renamed from src/lib/sections/FarmingContests.svelte)0
-rw-r--r--src/routes/player/[player]/[profile]/sections/Harp.svelte (renamed from src/lib/sections/Harp.svelte)0
-rw-r--r--src/routes/player/[player]/[profile]/sections/Infobox.svelte (renamed from src/lib/sections/Infobox.svelte)0
-rw-r--r--src/routes/player/[player]/[profile]/sections/Inventories.svelte (renamed from src/lib/sections/Inventories.svelte)0
-rw-r--r--src/routes/player/[player]/[profile]/sections/Leaderboards.svelte (renamed from src/lib/sections/Leaderboards.svelte)0
-rw-r--r--src/routes/player/[player]/[profile]/sections/Minions.svelte (renamed from src/lib/sections/Minions.svelte)0
-rw-r--r--src/routes/player/[player]/[profile]/sections/Pets.svelte (renamed from src/lib/sections/Pets.svelte)0
-rw-r--r--src/routes/player/[player]/[profile]/sections/Skills.svelte (renamed from src/lib/sections/Skills.svelte)0
-rw-r--r--src/routes/player/[player]/[profile]/sections/Slayers.svelte (renamed from src/lib/sections/Slayers.svelte)0
-rw-r--r--src/routes/player/[player]/[profile]/sections/StatList.svelte (renamed from src/lib/sections/StatList.svelte)0
-rw-r--r--src/routes/player/[player]/[profile]/sections/Zones.svelte (renamed from src/lib/sections/Zones.svelte)0
-rw-r--r--src/routes/player/index.ts14
-rw-r--r--src/routes/profile/+page.server.ts7
-rw-r--r--src/routes/profile/+page.svelte (renamed from src/routes/profile/index.svelte)71
-rw-r--r--src/routes/profile/+page.ts44
-rw-r--r--src/routes/profile/update/+server.ts (renamed from src/routes/profile/update.ts)69
-rw-r--r--src/routes/verify.ts75
-rw-r--r--src/routes/verify/+page.server.ts75
-rw-r--r--src/routes/verify/+page.svelte (renamed from src/routes/verify.svelte)25
-rw-r--r--src/routes/verify/+page.ts13
71 files changed, 455 insertions, 598 deletions
diff --git a/src/app.d.ts b/src/app.d.ts
index b41fa6f..9f4467d 100644
--- a/src/app.d.ts
+++ b/src/app.d.ts
@@ -3,10 +3,13 @@
// // See https://kit.svelte.dev/docs/typescript
// // for information about these interfaces
declare namespace App {
+ // interface Error { }
+
interface Locals {
sid: string | undefined
}
+ // interface PageData { }
interface Platform {
env: {
@@ -18,9 +21,4 @@ declare namespace App {
}
}
- interface Session {
- sid: string | undefined
- }
-
- // interface Stuff {}
}
diff --git a/src/app.html b/src/app.html
index e0a73a9..b9273a6 100644
--- a/src/app.html
+++ b/src/app.html
@@ -1,14 +1,17 @@
<!DOCTYPE html>
<html lang="en">
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
- <meta name="theme-color" content="#010101">
- <meta property="og:site_name" content="Hypixel SkyBlock Stats">
- <meta property="og:type" content="website"/>
- %svelte.head%
- </head>
- <body>
- %svelte.body%
- </body>
-</html>
+
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+ <meta name="theme-color" content="#010101">
+ <meta property="og:site_name" content="Hypixel SkyBlock Stats">
+ <meta property="og:type" content="website" />
+ %sveltekit.head%
+</head>
+
+<body>
+ %sveltekit.body%
+</body>
+
+</html> \ No newline at end of file
diff --git a/src/hooks.server.ts b/src/hooks.server.ts
new file mode 100644
index 0000000..0d2087b
--- /dev/null
+++ b/src/hooks.server.ts
@@ -0,0 +1,7 @@
+import type { Handle } from '@sveltejs/kit'
+
+export const handle = (async ({ event, resolve }) => {
+ event.locals.sid = event.cookies.get('sid')
+ const response = await resolve(event)
+ return response
+}) satisfies Handle \ No newline at end of file
diff --git a/src/hooks.ts b/src/hooks.ts
deleted file mode 100644
index 3fa9299..0000000
--- a/src/hooks.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import cookie from 'cookie'
-import type { ExternalFetch, GetSession, Handle } from '@sveltejs/kit'
-
-
-export const handle: Handle = async ({ event, resolve }) => {
- const cookies = cookie.parse(event.request.headers.get('cookie') || '')
-
- event.locals.sid = cookies.sid
-
- const response = await resolve(event)
-
- return response
-}
-
-export const getSession: GetSession = async ({ locals }) => {
- return {
- sid: locals.sid
- }
-}
-
-// export const externalFetch: ExternalFetch = async (request) => {
-// const response = await fetch(request)
-
-// return response
-// } \ No newline at end of file
diff --git a/src/lib/AuctionPriceScatterplot.svelte b/src/lib/AuctionPriceScatterplot.svelte
index da1aed2..17a09f1 100644
--- a/src/lib/AuctionPriceScatterplot.svelte
+++ b/src/lib/AuctionPriceScatterplot.svelte
@@ -1,5 +1,5 @@
<script lang="ts">
- import { browser } from '$app/env'
+ import { browser } from '$app/environment'
import type { ItemAuctionsSchema, SimpleAuctionSchema } from './APITypes'
import type { PreviewedAuctionData } from './utils'
diff --git a/src/lib/BackgroundImage.svelte b/src/lib/BackgroundImage.svelte
index 0b2f043..17d8705 100644
--- a/src/lib/BackgroundImage.svelte
+++ b/src/lib/BackgroundImage.svelte
@@ -1,6 +1,6 @@
<script lang="ts">
import { onDestroy, onMount } from 'svelte'
- import { browser } from '$app/env'
+ import { browser } from '$app/environment'
export let url: string
let styleHtml = `<style class="background-image-style">:root{--background:url(${url})}</style>`
diff --git a/src/lib/Collapsible.svelte b/src/lib/Collapsible.svelte
index a7b6105..68fee79 100644
--- a/src/lib/Collapsible.svelte
+++ b/src/lib/Collapsible.svelte
@@ -4,7 +4,7 @@
Collapsible content that works without JS but is enhanced by it.
-->
<script lang="ts">
- import { browser } from '$app/env'
+ import { browser } from '$app/environment'
import { onMount } from 'svelte'
import { cleanId } from './utils'
diff --git a/src/lib/LoginButton.svelte b/src/lib/LoginButton.svelte
index bba078e..7ebf5d7 100644
--- a/src/lib/LoginButton.svelte
+++ b/src/lib/LoginButton.svelte
@@ -6,7 +6,7 @@
{#if loggedIn}
<a href="/profile"><button class="login-button">Edit profile</button></a>
{:else}
- <a href="/login">
+ <a href="/login" rel="external">
<button class="login-button"
><img src="/discord-mark-light.svg" alt="Discord logo" />Log in with Discord</button
>
diff --git a/src/lib/MayorSkin.svelte b/src/lib/MayorSkin.svelte
index ad0a9a8..193a3d5 100644
--- a/src/lib/MayorSkin.svelte
+++ b/src/lib/MayorSkin.svelte
@@ -16,6 +16,7 @@
// special mayors
derpy: 'be0f89466528ad5eca5a6506adddd896ff78c4fd21facaa74a8c4a809c89207',
scorpius: '8f26fa0c47536e78e337257d898af8b1ebc87c0894503375234035ff2c7ef8f0',
+ finnegan: 'e7747fbee9fb39be39b00d3d483eb2f88b4bae82417ab5cb1b1aa930dd7b6689',
// unique mayors
technoblade: '786c039d969d1839155255e38e7b06a626ea9f8baf9cb55e0a77311efe18a3e',
@@ -23,14 +24,21 @@
faith: '64b39d0756b92b8b7599d1f971580088954e21c5f60c673d0d4f63693fb002b5',
}
- let url: string
+ let url: string | undefined
$: {
- if (name.toLowerCase() === 'derpy') url = '/villager.png'
- else url = `https://mc-heads.net/body/${skinIds[name.toLowerCase()]}`
+ if (name.toLowerCase() === 'jerry') url = '/villager.png'
+ else {
+ const skinId = skinIds[name.toLowerCase()]
+ url = skinId ? `https://mc-heads.net/body/${skinId}` : undefined
+ }
}
</script>
-<img src={url} alt="Mayor {toTitleCase(name)}" />
+{#if url}
+ <img src={url} alt="Mayor {toTitleCase(name)}" />
+{:else}
+ <div class="no-skin-found">Unknown mayor</div>
+{/if}
<style>
img {
@@ -39,4 +47,12 @@
height: 12em;
margin: 0 auto;
}
+
+ .no-skin-found {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ height: 12em;
+ margin: 0 auto;
+ }
</style>
diff --git a/src/lib/layout/Loader.svelte b/src/lib/layout/Loader.svelte
index 3884e55..dd04924 100644
--- a/src/lib/layout/Loader.svelte
+++ b/src/lib/layout/Loader.svelte
@@ -1,5 +1,5 @@
<script lang="ts">
- import { browser } from '$app/env'
+ import { browser } from '$app/environment'
import { navigating } from '$app/stores'
let progress = 0
diff --git a/src/lib/minecraft/inventory.ts b/src/lib/minecraft/inventory.ts
index 227ed0c..5bd79c2 100644
--- a/src/lib/minecraft/inventory.ts
+++ b/src/lib/minecraft/inventory.ts
@@ -1,6 +1,6 @@
import * as skyblockAssets from 'skyblock-assets'
import { vanilla } from '$lib/packs'
-import { browser } from '$app/env'
+import { browser } from '$app/environment'
export interface Item {
id?: string
diff --git a/src/params/username.ts b/src/params/username.ts
new file mode 100644
index 0000000..855481a
--- /dev/null
+++ b/src/params/username.ts
@@ -0,0 +1,5 @@
+import type { ParamMatcher } from '@sveltejs/kit'
+
+export const match = ((param) => {
+ return /^\w{2,16}$/.test(param)
+}) satisfies ParamMatcher \ No newline at end of file
diff --git a/src/routes/__error.svelte b/src/routes/+error.svelte
index 3057f19..83b4407 100644
--- a/src/routes/__error.svelte
+++ b/src/routes/+error.svelte
@@ -1,22 +1,12 @@
-<script lang="ts" context="module">
- import type { Load } from '@sveltejs/kit'
-
- export const load: Load = async ({ error, status }) => {
- return {
- props: {
- error,
- status,
- },
- }
- }
-</script>
-
<script lang="ts">
import Header from '$lib/Header.svelte'
import Head from '$lib/Head.svelte'
- export let status: number
- export let error: Error
+ import { page } from '$app/stores'
+
+ // sveltekit bug: types of error and status say they can be null but they can't
+ let error = $page.error!
+ let status = $page.status!
</script>
<Head title={error.message} />
@@ -26,7 +16,7 @@
<div>
<h1>{status}</h1>
<p>{error.message}</p>
- <a href="/" sveltekit:prefetch>Home</a>
+ <a href="/" data-sveltekit-preload-data="hover">Home</a>
</div>
</main>
diff --git a/src/routes/__layout.svelte b/src/routes/+layout.svelte
index 74e29b9..74e29b9 100644
--- a/src/routes/__layout.svelte
+++ b/src/routes/+layout.svelte
diff --git a/src/routes/+page.server.ts b/src/routes/+page.server.ts
new file mode 100644
index 0000000..4596c1b
--- /dev/null
+++ b/src/routes/+page.server.ts
@@ -0,0 +1,7 @@
+import type { ServerLoad } from '@sveltejs/kit'
+
+export const load = (({ locals }) => {
+ return {
+ loggedIn: locals.sid !== undefined,
+ }
+}) satisfies ServerLoad
diff --git a/src/routes/index.svelte b/src/routes/+page.svelte
index 851f70e..3c518fb 100644
--- a/src/routes/index.svelte
+++ b/src/routes/+page.svelte
@@ -1,15 +1,3 @@
-<script lang="ts" context="module">
- import type { Load } from '@sveltejs/kit'
-
- export const load: Load = async ({ params, fetch, session }) => {
- return {
- props: {
- loggedIn: session.sid !== undefined,
- },
- }
- }
-</script>
-
<script lang="ts">
import Username from '$lib/minecraft/Username.svelte'
import SearchUser from '$lib/SearchUser.svelte'
@@ -17,10 +5,12 @@
import Head from '$lib/Head.svelte'
import Emoji from '$lib/Emoji.svelte'
import LoginButton from '$lib/LoginButton.svelte'
+ import type { PageData } from './$types'
export const hydrate = false
- export let loggedIn: boolean
+ export let data: PageData
+ export let loggedIn: boolean = data.loggedIn
</script>
<svelte:head>
diff --git a/src/routes/[player=username]/+page.ts b/src/routes/[player=username]/+page.ts
new file mode 100644
index 0000000..289cd48
--- /dev/null
+++ b/src/routes/[player=username]/+page.ts
@@ -0,0 +1,6 @@
+import { redirect } from '@sveltejs/kit'
+import type { PageLoad } from './$types'
+
+export const load = (({ params }) => {
+ throw redirect(303, `/player/${params.player}`)
+}) satisfies PageLoad \ No newline at end of file
diff --git a/src/routes/[player].ts b/src/routes/[player].ts
deleted file mode 100644
index 3f79368..0000000
--- a/src/routes/[player].ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import type { ParamMatcher, RequestHandler } from '@sveltejs/kit'
-
-export const match: ParamMatcher = (param) => {
- return /^\w{2,16}$/.test(param)
-}
-
-export const get: RequestHandler = async ({ params }) => {
- return {
- status: 303,
- headers: {
- location: `/player/${params.player}`
- }
- }
-} \ No newline at end of file
diff --git a/src/routes/auctionprices.svelte b/src/routes/auctionprices/+page.svelte
index ac75c86..844af04 100644
--- a/src/routes/auctionprices.svelte
+++ b/src/routes/auctionprices/+page.svelte
@@ -1,21 +1,3 @@
-<script lang="ts" context="module">
- import type { Load } from '@sveltejs/kit'
- import { fetchApi } from '$lib/api'
-
- export const load: Load = async ({ params, fetch }) => {
- const auctionItemsPromise = fetchApi(`auctionitems`, fetch).then(r => r.json()