Skip to content

Commit edefde8

Browse files
committed
Merge remote-tracking branch 'origin/main'
2 parents 53fb58f + f9a1079 commit edefde8

2 files changed

Lines changed: 95 additions & 44 deletions

File tree

package-lock.json

Lines changed: 41 additions & 41 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/ts/typings/ytc.d.ts

Lines changed: 54 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,15 @@ declare namespace Ytc {
3434
interface ReplayAction {
3535
addChatItemAction?: AddChatItemAction;
3636
addBannerToLiveChatCommand?: AddPinnedAction;
37-
removeBannerForLiveChatCommand?: unknown;
37+
removeBannerForLiveChatCommand?: {
38+
targetActionId: string;
39+
};
3840
addLiveChatTickerItemAction?: AddTickerAction;
41+
updateLiveChatPollAction?: {
42+
pollToUpdate: {
43+
pollRenderer: PollRenderer;
44+
};
45+
};
3946
}
4047

4148
/** Expected YTC action object */
@@ -86,6 +93,8 @@ declare namespace Ytc {
8693
text: RunsObj;
8794
};
8895
};
96+
/** Used for identifying the banner action */
97+
actionId: string;
8998
/** Gets used for pinned messages */
9099
bannerProperties?: BannerPropertiesObj;
91100
};
@@ -276,6 +285,23 @@ declare namespace Ytc {
276285
timestampUsec: IntString;
277286
}
278287

288+
interface PollRenderer {
289+
liveChatPollId: string;
290+
header: {
291+
pollHeaderRenderer: {
292+
pollQuestion: RunsObj;
293+
metadataText: RunsObj;
294+
thumbnail?: Thumbnails;
295+
};
296+
};
297+
choices: Array<{
298+
text: RunsObj;
299+
selected: boolean;
300+
voteRatio?: number;
301+
votePercentage?: SimpleTextObj;
302+
}>;
303+
}
304+
279305
type Renderers = TextMessageRenderer | PaidMessageRenderer |
280306
PaidStickerRenderer | MembershipRenderer | MembershipGiftPurchaseRenderer;
281307

@@ -298,6 +324,8 @@ declare namespace Ytc {
298324
liveChatBannerRedirectRenderer?: RedirectRenderer;
299325
/** ??? */
300326
liveChatPlaceholderItemRenderer?: PlaceholderRenderer;
327+
/** Poll */
328+
pollRenderer?: PollRenderer;
301329
}
302330

303331
interface TickerRenderer { // Doesn't have a timestamp but ID is always a paid message id
@@ -414,6 +442,7 @@ declare namespace Ytc {
414442

415443
interface ParsedPinned {
416444
type: 'pin';
445+
actionId: string;
417446
item: {
418447
header: ParsedRun[];
419448
contents: ParsedMessage;
@@ -423,18 +452,19 @@ declare namespace Ytc {
423452

424453
interface ParsedSummary {
425454
type: 'summary';
455+
actionId: string;
426456
item: {
427457
header: ParsedRun[];
428458
subheader: ParsedRun[];
429459
message: ParsedRun[];
430460
};
431-
id: string;
432461
showtime: number;
433462
timestamp?: string;
434463
}
435464

436465
interface ParsedRedirect {
437466
type: 'redirect';
467+
actionId: string;
438468
item: {
439469
message: ParsedRun[];
440470
profileIcon: ParsedImage;
@@ -447,13 +477,34 @@ declare namespace Ytc {
447477
timestamp?: string;
448478
}
449479

480+
interface ParsedPoll {
481+
type: 'poll';
482+
actionId: string;
483+
item: {
484+
profileIcon: ParsedImage;
485+
header: ParsedRun[];
486+
question: ParsedRun[];
487+
choices: Array<{
488+
text: ParsedRun[];
489+
selected: boolean;
490+
ratio?: number;
491+
percentage?: string;
492+
}>;
493+
};
494+
}
495+
496+
interface ParsedRemoveBanner {
497+
type: 'unpin';
498+
targetActionId: string;
499+
}
500+
450501
interface ParsedTicker extends ParsedMessage {
451502
type: 'ticker';
452503
tickerDuration: number;
453504
detailText?: string;
454505
}
455506

456-
type ParsedMisc = ParsedPinned | ParsedSummary | ParsedRedirect | { type: 'unpin' };
507+
type ParsedMisc = ParsedPinned | ParsedSummary | ParsedRedirect | ParsedPoll | ParsedRemoveBanner;
457508

458509
type ParsedTimedItem = ParsedMessage | ParsedTicker;
459510

0 commit comments

Comments
 (0)