[+] Show aqua net pfp instead of in-game pfp

This commit is contained in:
Azalea
2024-03-06 00:37:35 -05:00
parent 2a10471e0b
commit 52ec890e2c
9 changed files with 22 additions and 21 deletions

View File

@@ -6,7 +6,7 @@
import Home from "./pages/Home.svelte"; import Home from "./pages/Home.svelte";
import Ranking from "./pages/Ranking.svelte"; import Ranking from "./pages/Ranking.svelte";
import { USER } from "./libs/sdk"; import { USER } from "./libs/sdk";
import type { UserMe } from "./libs/generalTypes"; import type { AquaNetUser } from "./libs/generalTypes";
import Settings from "./pages/User/Settings.svelte"; import Settings from "./pages/User/Settings.svelte";
import { pfp } from "./libs/ui" import { pfp } from "./libs/ui"
@@ -22,7 +22,7 @@
-webkit-text-fill-color: transparent;`) -webkit-text-fill-color: transparent;`)
export let url = ""; export let url = "";
let me: UserMe let me: AquaNetUser
if (USER.isLoggedIn()) USER.me().then(m => me = m).catch(e => console.error(e)) if (USER.isLoggedIn()) USER.me().then(m => me = m).catch(e => console.error(e))

View File

@@ -12,7 +12,7 @@ export interface Card {
ghost: boolean ghost: boolean
} }
export interface UserMe { export interface AquaNetUser {
username: string username: string
email: string email: string
displayName: string displayName: string
@@ -80,6 +80,7 @@ export interface RankCount {
export interface GenericGameSummary { export interface GenericGameSummary {
name: string name: string
iconId: number iconId: number
aquaUser?: AquaNetUser
serverRank: number serverRank: number
accuracy: number accuracy: number
rating: number rating: number

View File

@@ -6,7 +6,7 @@ import type {
GenericGameSummary, GenericGameSummary,
GenericRanking, GenericRanking,
TrendEntry, TrendEntry,
UserMe AquaNetUser
} from "./generalTypes"; } from "./generalTypes";
import type { GameName } from "./scoring"; import type { GameName } from "./scoring";
@@ -111,7 +111,7 @@ export const USER = {
login, login,
confirmEmail: (token: string) => confirmEmail: (token: string) =>
post('/api/v2/user/confirm-email', { token }), post('/api/v2/user/confirm-email', { token }),
me: (): Promise<UserMe> => { me: (): Promise<AquaNetUser> => {
ensureLoggedIn() ensureLoggedIn()
return post('/api/v2/user/me', {}) return post('/api/v2/user/me', {})
}, },

View File

@@ -16,7 +16,7 @@ import CalHeatmap from 'cal-heatmap'
// @ts-expect-error Cal-heatmap does not have proper types // @ts-expect-error Cal-heatmap does not have proper types
import CalTooltip from 'cal-heatmap/plugins/Tooltip' import CalTooltip from 'cal-heatmap/plugins/Tooltip'
import { AQUA_HOST, DEFAULT_PFP } from "./config"; import { AQUA_HOST, DEFAULT_PFP } from "./config";
import type { UserMe } from "./generalTypes"; import type { AquaNetUser } from "./generalTypes";
export function title(t: string) { export function title(t: string) {
document.title = `AquaNet - ${t}` document.title = `AquaNet - ${t}`
@@ -154,7 +154,7 @@ export function tooltip(element: HTMLElement, params: { text: string } | string)
} }
} }
export function pfp(node: HTMLImageElement, me: UserMe) { export function pfp(node: HTMLImageElement, me?: AquaNetUser) {
node.src = me.profilePicture ? `${AQUA_HOST}/uploads/net/portrait/${me.profilePicture}` : DEFAULT_PFP node.src = me?.profilePicture ? `${AQUA_HOST}/uploads/net/portrait/${me.profilePicture}` : DEFAULT_PFP
node.onerror = e => pfpNotFound(e as Event) node.onerror = e => pfpNotFound(e as Event)
} }

View File

@@ -4,13 +4,13 @@
import SetupInstructions from "./Home/SetupInstructions.svelte"; import SetupInstructions from "./Home/SetupInstructions.svelte";
import { DISCORD_INVITE, FADE_IN, FADE_OUT } from "../libs/config"; import { DISCORD_INVITE, FADE_IN, FADE_OUT } from "../libs/config";
import { USER } from "../libs/sdk.js"; import { USER } from "../libs/sdk.js";
import type { UserMe } from "../libs/generalTypes"; import type { AquaNetUser } from "../libs/generalTypes";
import StatusOverlays from "../components/StatusOverlays.svelte"; import StatusOverlays from "../components/StatusOverlays.svelte";
import ActionCard from "../components/ActionCard.svelte"; import ActionCard from "../components/ActionCard.svelte";
USER.ensureLoggedIn(); USER.ensureLoggedIn();
let me: UserMe let me: AquaNetUser
let error = "" let error = ""
let tab = 0; let tab = 0;

View File

@@ -2,7 +2,7 @@
<script lang="ts"> <script lang="ts">
import { fade, slide } from "svelte/transition" import { fade, slide } from "svelte/transition"
import type { Card, CardSummary, CardSummaryGame, ConfirmProps, UserMe } from "../../libs/generalTypes"; import type { Card, CardSummary, CardSummaryGame, ConfirmProps, AquaNetUser } from "../../libs/generalTypes";
import { CARD, USER } from "../../libs/sdk"; import { CARD, USER } from "../../libs/sdk";
import moment from "moment" import moment from "moment"
import Icon from "@iconify/svelte"; import Icon from "@iconify/svelte";
@@ -13,7 +13,7 @@
let showConfirm: ConfirmProps | null = null let showConfirm: ConfirmProps | null = null
let error: string = "" let error: string = ""
let me: UserMe | null = null let me: AquaNetUser | null = null
let accountCardSummary: CardSummary | null = null let accountCardSummary: CardSummary | null = null
// Fetch data for current user // Fetch data for current user

View File

@@ -3,11 +3,11 @@
<script lang="ts"> <script lang="ts">
import { fade, slide } from "svelte/transition"; import { fade, slide } from "svelte/transition";
import { USER } from "../../libs/sdk"; import { USER } from "../../libs/sdk";
import type { UserMe } from "../../libs/generalTypes"; import type { AquaNetUser } from "../../libs/generalTypes";
import { codeToHtml } from 'shiki' import { codeToHtml } from 'shiki'
import { AQUA_CONNECTION, DISCORD_INVITE, FADE_IN, FADE_OUT } from "../../libs/config"; import { AQUA_CONNECTION, DISCORD_INVITE, FADE_IN, FADE_OUT } from "../../libs/config";
let user: UserMe let user: AquaNetUser
let keychip: string; let keychip: string;
let keychipCode: string; let keychipCode: string;
let getStartedRequesting = false; let getStartedRequesting = false;

View File

@@ -2,7 +2,7 @@
<script lang="ts"> <script lang="ts">
import { slide } from "svelte/transition"; import { slide } from "svelte/transition";
import type { UserMe } from "../../libs/generalTypes"; import type { AquaNetUser } from "../../libs/generalTypes";
import { USER } from "../../libs/sdk"; import { USER } from "../../libs/sdk";
import StatusOverlays from "../../components/StatusOverlays.svelte"; import StatusOverlays from "../../components/StatusOverlays.svelte";
import Icon from "@iconify/svelte"; import Icon from "@iconify/svelte";
@@ -10,7 +10,7 @@
USER.ensureLoggedIn() USER.ensureLoggedIn()
let me: UserMe; let me: AquaNetUser;
let error: string; let error: string;
let submitting = "" let submitting = ""
@@ -25,7 +25,7 @@
// Fetch user data // Fetch user data
const getMe = () => USER.me().then(m => { const getMe = () => USER.me().then(m => {
me = m me = m
values = fields.map(([field]) => me[field as keyof UserMe]) values = fields.map(([field]) => me[field as keyof AquaNetUser])
}).catch(e => error = e.message) }).catch(e => error = e.message)
getMe() getMe()

View File

@@ -1,6 +1,6 @@
<script lang="ts"> <script lang="ts">
import { CHARTJS_OPT, coverNotFound, pfpNotFound, registerChart, renderCal, title, tooltip } from "../libs/ui"; import { CHARTJS_OPT, coverNotFound, pfpNotFound, registerChart, renderCal, title, tooltip, pfp } from "../libs/ui";
import type { GenericGamePlaylog, GenericGameSummary, MusicMeta, TrendEntry, UserMe } from "../libs/generalTypes"; import type { GenericGamePlaylog, GenericGameSummary, MusicMeta, TrendEntry, AquaNetUser } from "../libs/generalTypes";
import { DATA_HOST } from "../libs/config"; import { DATA_HOST } from "../libs/config";
import 'cal-heatmap/cal-heatmap.css'; import 'cal-heatmap/cal-heatmap.css';
import { Line } from 'svelte-chartjs'; import { Line } from 'svelte-chartjs';
@@ -17,7 +17,7 @@
export let game: GameName = "mai2" export let game: GameName = "mai2"
let calElement: HTMLElement let calElement: HTMLElement
let error: string; let error: string;
let me: UserMe let me: AquaNetUser
title(`User ${username}`) title(`User ${username}`)
interface MusicAndPlay extends MusicMeta, GenericGamePlaylog {} interface MusicAndPlay extends MusicMeta, GenericGamePlaylog {}
@@ -56,7 +56,7 @@
<main id="user-home" class="content"> <main id="user-home" class="content">
{#if d} {#if d}
<div class="user-pfp"> <div class="user-pfp">
<img src={`${DATA_HOST}/d/${game}/assetbundle/icon/${d.user.iconId.toString().padStart(6, "0")}.png`} alt="" class="pfp" on:error={pfpNotFound}> <img use:pfp={d.user.aquaUser} alt="" class="pfp" on:error={pfpNotFound}>
<div class="name-box"> <div class="name-box">
<h2>{d.user.name}</h2> <h2>{d.user.name}</h2>
{#if me && me.username === username} {#if me && me.username === username}