From fea2b21e73442e188ed85d367fd6bddaff6e83a2 Mon Sep 17 00:00:00 2001 From: derpystuff <3515180-derpystuff@users.noreply.gitlab.com> Date: Mon, 29 May 2023 21:19:07 +0200 Subject: [PATCH] use the new badge system --- labscore/utils/users.js | 92 ++++++++++++++++++++++++++++++++++------- 1 file changed, 78 insertions(+), 14 deletions(-) diff --git a/labscore/utils/users.js b/labscore/utils/users.js index 4fe8826..204d5b3 100644 --- a/labscore/utils/users.js +++ b/labscore/utils/users.js @@ -35,27 +35,91 @@ async function getMember(context, query){ } } -const { Constants } = require('detritus-client') +const { Constants } = require('detritus-client'); +const { link } = require('./markdown'); const { UserFlags } = Constants +const BADGE_TYPES = Object.freeze({ + "staff": { + description: "Discord Staff", + link: "https://discord.com/company", + icon: "<:badge_staff:903276633161609246>" + }, + "partner": { + description: "Partnered Server Owner", + link: "https://discord.com/partners", + icon: "<:badge_partner:903276631559389196>" + }, + "certified_moderator": { + description: "Moderator Programs Alumni", + link: "https://discord.com/safety", + icon: "<:badge_mod_new:1049594117849632778>" + }, + "hypesquad": { + description: "HypeSquad Events", + link: "https://discord.com/hypesquad", + icon: "<:badge_hypesquad:903276631408394351>" + }, + "hypesquad_house_1": { + description: "HypeSquad Bravery", + link: "https://discord.com/settings/hypesquad-online", + icon: "<:badge_hypesquad_bravery:903276631790059540>" + }, + "hypesquad_house_2": { + description: "HypeSquad Brilliance", + link: "https://discord.com/settings/hypesquad-online", + icon: "<:badge_hypesquad_brilliance:903276631261597706>" + }, + "hypesquad_house_3": { + description: "HypeSquad Balance", + link: "https://discord.com/settings/hypesquad-online", + icon: "<:badge_hypesquad_balance:903276631211249674>" + }, + "bug_hunter_level_1": { + description: "Discord Bug Hunter", + link: "https://support.discord.com/hc/en-us/articles/360046057772-Discord-Bugs", + icon: "<:badge_bughunter:903276631173509131>" + }, + "bug_hunter_level_2": { + description: "Discord Bug Hunter", + link: "https://support.discord.com/hc/en-us/articles/360046057772-Discord-Bugs", + icon: "<:badge_bughunter_2:903276883523797033>" + }, + "active_developer": { + description: "Active Developer", + link: "https://support-dev.discord.com/hc/en-us/articles/10113997751447?ref=badge", + icon: "<:active_developer:1112811846009892915>" + }, + "verified_developer": { + description: "Early Verified Bot Developer", + icon: "<:badge_botdev:903276631173509130>", + link: "https://discord.com/developers" //not on the actual badge, added for consistency + }, + "early_supporter": { + description: "Early Supporter", + link: "https://discord.com/settings/premium", + icon: "<:badge_earlysupporter:903277590956101672>" + } +}) + const BADGES = Object.freeze({ - [UserFlags.STAFF]: '<:badge_staff:903276633161609246>', - [UserFlags.PARTNER]: '<:badge_partner:903276631559389196>', - [UserFlags.DISCORD_CERTIFIED_MODERATOR]: '<:badge_mod_new:1049594117849632778>', - [UserFlags.HYPESQUAD]: '<:badge_hypesquad:903276631408394351>', - [UserFlags.HYPESQUAD_ONLINE_HOUSE_1]: '<:badge_hypesquad_bravery:903276631790059540>', - [UserFlags.HYPESQUAD_ONLINE_HOUSE_2]: '<:badge_hypesquad_brilliance:903276631261597706>', - [UserFlags.HYPESQUAD_ONLINE_HOUSE_3]: '<:badge_hypesquad_balance:903276631211249674>', - [UserFlags.BUG_HUNTER_LEVEL_1]: '<:badge_bughunter:903276631173509131>', - [UserFlags.BUG_HUNTER_LEVEL_2]: '<:badge_bughunter_2:903276883523797033>', - [1<<22]: '<:active_developer:1112811846009892915>', - [UserFlags.VERIFIED_DEVELOPER]: '<:badge_botdev:903276631173509130>', - [UserFlags.PREMIUM_EARLY_SUPPORTER]: '<:badge_earlysupporter:903277590956101672>', + [UserFlags.STAFF]: 'staff', + [UserFlags.PARTNER]: 'partner', + [UserFlags.DISCORD_CERTIFIED_MODERATOR]: 'certified_moderator', + [UserFlags.HYPESQUAD]: 'hypesquad', + [UserFlags.HYPESQUAD_ONLINE_HOUSE_1]: 'hypesquad_house_1', + [UserFlags.HYPESQUAD_ONLINE_HOUSE_2]: 'hypesquad_house_2', + [UserFlags.HYPESQUAD_ONLINE_HOUSE_3]: 'hypesquad_house_3', + [UserFlags.BUG_HUNTER_LEVEL_1]: 'bug_hunter_level_1', + [UserFlags.BUG_HUNTER_LEVEL_2]: 'bug_hunter_level_2', + [1<<22]: 'active_developer', + [UserFlags.VERIFIED_DEVELOPER]: 'verified_developer', + [UserFlags.PREMIUM_EARLY_SUPPORTER]: 'early_supporter', }) function renderBadges(user){ let badges = []; - for(const flag of Object.keys(BADGES)) if(user.hasFlag(parseInt(flag))) badges.push(BADGES[flag]) + for(const flag of Object.keys(BADGES)) if(user.hasFlag(parseInt(flag))) badges.push(link(BADGE_TYPES[BADGES[flag]].link, BADGE_TYPES[BADGES[flag]].icon, BADGE_TYPES[BADGES[flag]].description)) return badges; }