fix(music#getPlaylist): Handle ContinuationItem nodes

Closes #904
This commit is contained in:
Luan
2025-02-21 18:52:34 -03:00
parent ca7c3164e1
commit a3fafe2f79
3 changed files with 37 additions and 24 deletions

View File

@@ -1,19 +1,20 @@
import { YTNode, type ObservedArray } from '../helpers.js';
import { type ObservedArray, YTNode } from '../helpers.js';
import { Parser, type RawNode } from '../index.js';
import MusicResponsiveListItem from './MusicResponsiveListItem.js';
import ContinuationItem from './ContinuationItem.js';
export default class MusicPlaylistShelf extends YTNode {
static type = 'MusicPlaylistShelf';
playlist_id: string;
contents: ObservedArray<MusicResponsiveListItem>;
collapsed_item_count: number;
continuation: string | null;
public playlist_id: string;
public contents: ObservedArray<MusicResponsiveListItem | ContinuationItem>;
public collapsed_item_count: number;
public continuation: string | null;
constructor(data: RawNode) {
super();
this.playlist_id = data.playlistId;
this.contents = Parser.parseArray(data.contents, MusicResponsiveListItem);
this.contents = Parser.parseArray(data.contents, [ MusicResponsiveListItem, ContinuationItem ]);
this.collapsed_item_count = data.collapsedItemCount;
this.continuation = data.continuations?.[0]?.nextContinuationData?.continuation || null;
}