diff --git a/src/assets/badges.ts b/src/assets/badges.ts index 01dfbf3..ef9f532 100644 --- a/src/assets/badges.ts +++ b/src/assets/badges.ts @@ -1,4 +1,4 @@ -import type { Badge, ParsedMessage } from './types' +import type { Badge } from './types' export function getBadges(badges: Badge[], badgesToFind: { setId: string; version: string }[]) { const foundBadges = [] @@ -17,8 +17,8 @@ export function getBadges(badges: Badge[], badgesToFind: { setId: string; versio return foundBadges } -export const getBadgesFromMessage = (message: ParsedMessage, allBadges: Badge[]) => { - const badgesString = message.data.tags.badges +export const getBadgesFromMessage = (tags: any, allBadges: Badge[]) => { + const badgesString = tags.badges if (!badgesString) return const badges = badgesString.split(',') const formatedBadges = badges.map((badgeWithVersion: string) => { @@ -27,4 +27,4 @@ export const getBadgesFromMessage = (message: ParsedMessage, allBadges: Badge[]) }) return getBadges(allBadges, formatedBadges) -} +} \ No newline at end of file diff --git a/src/assets/messageParser.ts b/src/assets/messageParser.ts index 45573cc..758bc5d 100644 --- a/src/assets/messageParser.ts +++ b/src/assets/messageParser.ts @@ -1,21 +1,36 @@ import type { Badge, ParsedMessage } from './types' import { getBadgesFromMessage } from './badges' -export function parseMessage(messageData: string, allBadges: Badge[]): ParsedMessage { +export function parseMessage(messageData: any, allBadges: Badge[]): ParsedMessage { const message = JSON.parse(messageData) + if (message.type === undefined && message.cursor !== "") { + const data: ParsedMessage = { + type: 'PRIVMSG', + data: { + message: message.message, + username: message.messager.name, + badges: message.badges, + offset: message.offset, + color: message.messager.colorHex + } + } + + return data + } + switch (message.type) { case 'PRIVMSG': { - const tags = message.tags - const username = message.username const data: ParsedMessage = { type: 'PRIVMSG', - data: { message: message.message, username, tags } + data: { + message: message.message, + username: message.username, + color: message.tags.color, + badges: getBadgesFromMessage(message.tags, allBadges) + } } - const badges = getBadgesFromMessage(data, allBadges) - data.data.badges = badges - return data } case 'USERNOTICE': { diff --git a/src/components/TwitchChat.vue b/src/components/TwitchChat.vue index b586557..c674d37 100644 --- a/src/components/TwitchChat.vue +++ b/src/components/TwitchChat.vue @@ -1,5 +1,5 @@