diff --git a/pages/api/[...id].ts b/pages/api/[...id].ts index 3a95238..e6dbff8 100644 --- a/pages/api/[...id].ts +++ b/pages/api/[...id].ts @@ -8,17 +8,23 @@ type Data = { error?: any; } +type Parameters = { + animated?: string; +} + export default function handler( req: NextApiRequest, res: NextApiResponse ) { + + let params: Parameters = req.query; let userid = req.query.id[0]; res.setHeader("Content-Type", "image/svg+xml; charset=utf-8"); axios.get(`https://api.lanyard.rest/v1/users/${userid}`) .then((response) => { // let svg = renderCard(response.data); - res.send(renderCard(response.data)); + res.send(renderCard(response.data, params)); }) .catch((err) => { console.log(err); diff --git a/src/renderCard.tsx b/src/renderCard.tsx index 2634548..9dd9a08 100644 --- a/src/renderCard.tsx +++ b/src/renderCard.tsx @@ -1,11 +1,20 @@ import * as LanyardTypes from './LanyardTypes'; import { useState } from "react"; import { getFlags } from "./getFlags"; -const renderCard = (body: LanyardTypes.Root): any => { + +type Parameters = { + animated?: string; +} + +const renderCard = (body: LanyardTypes.Root, params: Parameters): any => { //create svg, foreign object almost everything lol let avatarBorderColor: string = "#747F8D"; let userStatus: string = ""; + let avatarExtension: string = "webp"; + + if(body.data.discord_user.avatar.startsWith("a_")) avatarExtension = "gif"; + if(params.animated === "false") avatarExtension = "webp"; switch(body.data.discord_status){ case "online": @@ -29,83 +38,146 @@ const renderCard = (body: LanyardTypes.Root): any => { console.log(flags); return ` - +
- -
-
- -

+

+
+
- ${body.data.discord_user.username}#${body.data.discord_user.discriminator} + +

+ ${body.data.discord_user.username}#${body.data.discord_user.discriminator} +

+ + ${ + flags.map((v) => { + return( + `` + ) + }).join('') + } + +
+ +

+ ${userStatus}

- ${ - flags.map((v) => { - return( - `` - ) - }).join('') - } -
- -

- ${userStatus} -

-
+ + ${body.data.spotify ? + + ` +
+ + +
+

${body.data.spotify.song}

+

by ${body.data.spotify.artist}

+

on ${body.data.spotify.album}

+
+
+ ` + + : ` +
+

+ I'm not currently doing anything! +

+
+ `} +