Refactor badges

This commit is contained in:
dragongoose 2023-04-04 09:01:50 -04:00
parent e322b2b567
commit ee7935a3e1
4 changed files with 44 additions and 0 deletions

30
src/assets/badges.ts Normal file
View file

@ -0,0 +1,30 @@
import type { Badge } from './types';
export function getBadges(badges: Badge[], badgesToFind: { setId: string; version: string; }[]) {
const foundBadges = [];
if(!badges) return
for (let badgeToFind of badgesToFind) {
const badge = badges
.filter((badge) => badge.setId === badgeToFind.setId)
.find((badge) => badge.version === badgeToFind.version);
if (badge) {
foundBadges.push(badge);
}
}
return foundBadges;
}
export const getBadgesFromMessage = (message: { username: string, channel: string, message: string, messageType: string, tags: Record<string, string> }, allBadges: Badge[]) => {
let badgesString = message.tags.badges;
if (!badgesString) return;
let badges = badgesString.split(',');
let formatedBadges = badges.map((badgeWithVersion) => {
const [setId, version] = badgeWithVersion.split('/');
return { setId, version };
});
return getBadges(allBadges, formatedBadges);
}

View file

@ -0,0 +1,7 @@
export interface Badge {
id: string,
title: string,
setId: string,
version: string,
images: { [k:string]: string }
}

View file

@ -0,0 +1,5 @@
export interface ParsedMessage {
type: string;
data: any;
};

View file

@ -0,0 +1,2 @@
export * from './Badge'
export * from './ParsedMessage'