mirror of
https://github.com/LuanRT/YouTube.js.git
synced 2026-06-17 19:42:14 +00:00
* refactor: move common info into MediaInfo * refactor: better inference on Memo * refactor: improved typesafety in parser methods * refactor: remove PlaylistAuthor in favor of Author * refactor: cleanup live chat parsers - Replace non standard author type with Author class - Remove redundant code * fix: new errors due to changes * fix: pass actions to FormatUtils#toDash * refactor!: merge NavigatableText and Text into single class
47 lines
1.5 KiB
TypeScript
47 lines
1.5 KiB
TypeScript
import Text from './misc/Text.js';
|
|
import Author from './misc/Author.js';
|
|
import Parser, { RawNode } from '../index.js';
|
|
import { YTNode } from '../helpers.js';
|
|
|
|
class PlaylistHeader extends YTNode {
|
|
static type = 'PlaylistHeader';
|
|
|
|
id: string;
|
|
title: Text;
|
|
stats: Text[];
|
|
brief_stats: Text[];
|
|
author: Author;
|
|
description: Text;
|
|
num_videos: Text;
|
|
view_count: Text;
|
|
can_share: boolean;
|
|
can_delete: boolean;
|
|
is_editable: boolean;
|
|
privacy: string;
|
|
save_button;
|
|
shuffle_play_button;
|
|
menu;
|
|
banner;
|
|
|
|
constructor(data: RawNode) {
|
|
super();
|
|
this.id = data.playlistId;
|
|
this.title = new Text(data.title);
|
|
this.stats = data.stats.map((stat: any) => new Text(stat));
|
|
this.brief_stats = data.briefStats.map((stat: any) => new Text(stat));
|
|
this.author = new Author({ ...data.ownerText, navigationEndpoint: data.ownerEndpoint }, data.ownerBadges, null);
|
|
this.description = new Text(data.descriptionText);
|
|
this.num_videos = new Text(data.numVideosText);
|
|
this.view_count = new Text(data.viewCountText);
|
|
this.can_share = data.shareData.canShare;
|
|
this.can_delete = data.editableDetails.canDelete;
|
|
this.is_editable = data.isEditable;
|
|
this.privacy = data.privacy;
|
|
this.save_button = Parser.parseItem(data.saveButton);
|
|
this.shuffle_play_button = Parser.parseItem(data.shufflePlayButton);
|
|
this.menu = Parser.parseItem(data.moreActionsMenu);
|
|
this.banner = Parser.parseItem(data.playlistHeaderBanner);
|
|
}
|
|
}
|
|
|
|
export default PlaylistHeader; |