diff --git a/src/parser/classes/livechat/items/LiveChatTickerPaidStickerItem.ts b/src/parser/classes/livechat/items/LiveChatTickerPaidStickerItem.ts index 008a106ed..caa21d13a 100644 --- a/src/parser/classes/livechat/items/LiveChatTickerPaidStickerItem.ts +++ b/src/parser/classes/livechat/items/LiveChatTickerPaidStickerItem.ts @@ -1,5 +1,40 @@ -import LiveChatTickerPaidMessageItem from './LiveChatTickerPaidMessageItem.js'; +import { YTNode } from '../../../helpers.js'; +import { Parser, type RawNode } from '../../../index.js'; +import Thumbnail from '../../misc/Thumbnail.js'; +import NavigationEndpoint from '../../NavigationEndpoint.js'; -export default class LiveChatTickerPaidStickerItem extends LiveChatTickerPaidMessageItem { +export default class LiveChatTickerPaidStickerItem extends YTNode { static type = 'LiveChatTickerPaidStickerItem'; + + id: string; + author_external_channel_id: string; + author_photo: Thumbnail[]; + start_background_color: number; + end_background_color: number; + duration_sec: number; + full_duration_sec: number; + show_item: YTNode; + show_item_endpoint: NavigationEndpoint; + ticker_thumbnails: { + thumbnails: Thumbnail[], + label?: string, + }[]; + + constructor(data: RawNode) { + super(); + this.id = data.id; + this.author_external_channel_id = data.authorExternalChannelId; + this.author_photo = Thumbnail.fromResponse(data.authorPhoto); + this.start_background_color = data.startBackgroundColor; + this.end_background_color = data.endBackgroundColor; + this.duration_sec = data.durationSec; + this.full_duration_sec = data.fullDurationSec; + this.show_item = Parser.parseItem(data.showItemEndpoint?.showLiveChatItemEndpoint?.renderer); + this.show_item_endpoint = new NavigationEndpoint(data.showItemEndpoint); + + this.ticker_thumbnails = data.tickerThumbnails.map((item: any) => ({ + thumbnails: Thumbnail.fromResponse(item), + label: item?.accessibility?.accessibilityData?.label + })); + } } \ No newline at end of file