From 0e9ca059e653019dd9e076dc72f9e239371e6731 Mon Sep 17 00:00:00 2001 From: phozzzzzz Date: Fri, 8 May 2026 20:47:17 -0700 Subject: [PATCH 1/2] Fix profile refresh edge cases --- src/api/profiles.ts | 5 +++-- src/db/mongo/profiles.ts | 13 +++++++++++++ .../@[player=playerId]/[profile]/+page.server.ts | 7 +++++-- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/api/profiles.ts b/src/api/profiles.ts index fbdacd2..4d018d8 100644 --- a/src/api/profiles.ts +++ b/src/api/profiles.ts @@ -1,7 +1,7 @@ import { getStats } from '$lib/stats'; import type { ProfileMemberDetails, StoredProfile, StoredProfileMember } from '$mongo/collections'; import { - getStoredProfileMembers, + getStoredProfileMembersForPlayer, profileMemberExists, updateStoredProfile, updateStoredProfileMember @@ -19,6 +19,7 @@ export async function parseProfilesResponse( for (const profile of profiles) { const parsed = await parseProfile(profile); + parsedProfiles.push(parsed); for (const [memberId, member] of Object.entries(profile.members)) { const parsedMember = await parseProfileMember(profile, memberId, member); @@ -44,7 +45,7 @@ export async function parseProfilesResponse( } // Mark newly missing profile members as removed for the requester - const existingProfiles = await getStoredProfileMembers(requesterUuid); + const existingProfiles = await getStoredProfileMembersForPlayer(requesterUuid); // Update "removed" status for each profile member of the requester for (const existing of existingProfiles) { diff --git a/src/db/mongo/profiles.ts b/src/db/mongo/profiles.ts index 6d1a98c..9f4d2bc 100644 --- a/src/db/mongo/profiles.ts +++ b/src/db/mongo/profiles.ts @@ -91,6 +91,19 @@ export async function getStoredProfileMembers(profileId: string) { .toArray(); } +export async function getStoredProfileMembersForPlayer(playerId: string) { + playerId = playerId.replace(/-/g, ''); + + return await MONGO.collection(Collections.ProfileMembers) + .find( + { + 'id.player': playerId + }, + { projection: { _id: false } } + ) + .toArray(); +} + export async function getStoredProfileMember(playerId: string, profileId: string) { playerId = playerId.replace(/-/g, ''); profileId = profileId.replace(/-/g, ''); diff --git a/src/routes/@[player=playerId]/[profile]/+page.server.ts b/src/routes/@[player=playerId]/[profile]/+page.server.ts index 78fbcfb..b4cd15b 100644 --- a/src/routes/@[player=playerId]/[profile]/+page.server.ts +++ b/src/routes/@[player=playerId]/[profile]/+page.server.ts @@ -6,8 +6,11 @@ export const load = (async ({ parent, params }) => { const { profile } = params; const { profiles, account } = await parent(); - const selected = - profiles.find((p) => p.cuteName?.toUpperCase() === profile.toUpperCase() || p.id === profile) ?? profiles[0]; + const selected = profiles.find((p) => p.cuteName?.toUpperCase() === profile.toUpperCase() || p.id === profile); + + if (!selected) { + throw error(404, 'Profile not found!'); + } const member = await getProfileMember(account.id, selected.id); From ec604e6fbebad5040f1589a2c0ad07dc8e839b8c Mon Sep 17 00:00:00 2001 From: phozzzzzz Date: Fri, 8 May 2026 20:50:09 -0700 Subject: [PATCH 2/2] Use current SkyBlock asset host --- tailwind.config.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tailwind.config.js b/tailwind.config.js index 58a0f58..a6a5204 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -21,8 +21,8 @@ export default { } }, backgroundImage: () => ({ - 'hero-pattern': 'url(https://sky.shiiyu.moe/resources/img/bg.webp)', - 'footer-texture': 'url(https://sky.shiiyu.moe/resources/img/footer-texture.png)' + 'hero-pattern': 'url(https://sky.shiiiyu.moe/resources/img/bg.webp)', + 'footer-texture': 'url(https://sky.shiiiyu.moe/resources/img/footer-texture.png)' }), textShadow: { sm: '0 1px 2px rgba(0, 0, 0, 0.1)',