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