Skip to content

Commit

Permalink
feat(parser): Update LiveChatTickerPaidMessageItem (#845)
Browse files Browse the repository at this point in the history
* Change `duration_sec` property type from `string` to `number`
* Change `full_duration_sec` property type from `string` to `number`
* Handle the scenario where the author's name is represented as `authUsername`
* Mark `amount` property as optional
* Add `start_background_color` property
* Add `amount_text_color` property
* Add `end_background_color` property
* Add `animation_origin` property
* Add `open_engagement_panel_command` property
  • Loading branch information
jonz94 authored Dec 15, 2024
1 parent 523700b commit 29e8d30
Showing 1 changed file with 21 additions and 7 deletions.
28 changes: 21 additions & 7 deletions src/parser/classes/livechat/items/LiveChatTickerPaidMessageItem.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,28 +9,42 @@ import type { RawNode } from '../../../index.js';
export default class LiveChatTickerPaidMessageItem extends YTNode {
static type = 'LiveChatTickerPaidMessageItem';

id: string;
author: Author;
amount: Text;
duration_sec: string;
full_duration_sec: string;
amount?: Text;
amount_text_color: number;
start_background_color: number;
end_background_color: number;
duration_sec: number;
full_duration_sec: number;
show_item: YTNode;
show_item_endpoint: NavigationEndpoint;
id: string;
animation_origin: string;
open_engagement_panel_command: NavigationEndpoint;

constructor(data: RawNode) {
super();
this.id = data.id;

this.author = new Author(
data.authorName,
data.authorName || data.authorUsername,
data.authorBadges,
data.authorPhoto,
data.authorExternalChannelId
);

this.amount = new Text(data.amount);
if (Reflect.has(data, 'amount')) {
this.amount = new Text(data.amount);
}

this.amount_text_color = data.amountTextColor;
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.id = data.id;
this.animation_origin = data.animationOrigin;
this.open_engagement_panel_command = new NavigationEndpoint(data.openEngagementPanelCommand);
}
}

0 comments on commit 29e8d30

Please sign in to comment.