diff --git a/src/parser/classes/livechat/items/LiveChatModeChangeMessage.ts b/src/parser/classes/livechat/items/LiveChatModeChangeMessage.ts new file mode 100644 index 000000000..abe3985cd --- /dev/null +++ b/src/parser/classes/livechat/items/LiveChatModeChangeMessage.ts @@ -0,0 +1,26 @@ +import { YTNode } from '../../../helpers.js'; +import type { RawNode } from '../../../index.js'; +import Text from '../../misc/Text.js'; + +export default class LiveChatModeChangeMessage extends YTNode { + static type = 'LiveChatModeChangeMessage'; + + id: string; + icon_type: string; + text: Text; + subtext: Text; + timestamp: number; + timestamp_usec: string; + timestamp_text: Text; + + constructor(data: RawNode) { + super(); + this.id = data.id; + this.icon_type = data.icon.iconType; + this.text = new Text(data.text); + this.subtext = new Text(data.subtext); + this.timestamp = Math.floor(parseInt(data.timestampUsec) / 1000); + this.timestamp_usec = data.timestampUsec; + this.timestamp_text = new Text(data.timestampText); + } +} diff --git a/src/parser/nodes.ts b/src/parser/nodes.ts index 95f526217..20a97be5e 100644 --- a/src/parser/nodes.ts +++ b/src/parser/nodes.ts @@ -186,6 +186,7 @@ export { default as LiveChatBannerHeader } from './classes/livechat/items/LiveCh export { default as LiveChatBannerPoll } from './classes/livechat/items/LiveChatBannerPoll.js'; export { default as LiveChatBannerRedirect } from './classes/livechat/items/LiveChatBannerRedirect.js'; export { default as LiveChatMembershipItem } from './classes/livechat/items/LiveChatMembershipItem.js'; +export { default as LiveChatModeChangeMessage } from './classes/livechat/items/LiveChatModeChangeMessage.js'; export { default as LiveChatPaidMessage } from './classes/livechat/items/LiveChatPaidMessage.js'; export { default as LiveChatPaidSticker } from './classes/livechat/items/LiveChatPaidSticker.js'; export { default as LiveChatPlaceholderItem } from './classes/livechat/items/LiveChatPlaceholderItem.js';