Refactor badges
This commit is contained in:
parent
e322b2b567
commit
ee7935a3e1
30
src/assets/badges.ts
Normal file
30
src/assets/badges.ts
Normal 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);
|
||||
}
|
7
src/assets/types/Badge.ts
Normal file
7
src/assets/types/Badge.ts
Normal file
@ -0,0 +1,7 @@
|
||||
export interface Badge {
|
||||
id: string,
|
||||
title: string,
|
||||
setId: string,
|
||||
version: string,
|
||||
images: { [k:string]: string }
|
||||
}
|
5
src/assets/types/ParsedMessage.ts
Normal file
5
src/assets/types/ParsedMessage.ts
Normal file
@ -0,0 +1,5 @@
|
||||
export interface ParsedMessage {
|
||||
type: string;
|
||||
data: any;
|
||||
};
|
||||
|
2
src/assets/types/index.ts
Normal file
2
src/assets/types/index.ts
Normal file
@ -0,0 +1,2 @@
|
||||
export * from './Badge'
|
||||
export * from './ParsedMessage'
|
Loading…
x
Reference in New Issue
Block a user