Add end_icons to MusicCarouselShelfBasicHeader and fix music#getPlaylist() (#149)

* ft: add end_icons to MusicCarouselShelfBasicHeader

* fix: `music#getPlaylist()` breaking playlist_id
This commit is contained in:
Patrick Kan
2022-08-23 03:46:52 +08:00
committed by GitHub
parent 22b2953ec8
commit f3d77b3e97
4 changed files with 37 additions and 1 deletions

View File

@@ -0,0 +1,25 @@
import Text from './misc/Text';
import { YTNode } from '../helpers';
import NavigationEndpoint from './NavigationEndpoint';
class IconLink extends YTNode {
static type = 'IconLink';
icon_type: string;
tooltip?: string;
endpoint: NavigationEndpoint;
constructor(data: any) {
super();
this.icon_type = data.icon?.iconType;
if (data.tooltip) {
this.tooltip = new Text(data.tooltip).toString();
}
this.endpoint = new NavigationEndpoint(data.navigationEndpoint);
}
}
export default IconLink;

View File

@@ -3,6 +3,7 @@ import { YTNode } from '../helpers';
import MusicThumbnail from './MusicThumbnail';
import Parser from '..';
import Button from './Button';
import IconLink from './IconLink';
class MusicCarouselShelfBasicHeader extends YTNode {
static type = 'MusicCarouselShelfBasicHeader';
@@ -11,6 +12,7 @@ class MusicCarouselShelfBasicHeader extends YTNode {
title: Text;
thumbnail?: MusicThumbnail | null;
more_content?: Button | null;
end_icons?: Array<IconLink>;
constructor(data: any) {
super();
@@ -29,6 +31,10 @@ class MusicCarouselShelfBasicHeader extends YTNode {
if (data.moreContentButton) {
this.more_content = Parser.parseItem<Button>(data.moreContentButton, Button);
}
if (data.endIcons) {
this.end_icons = Parser.parseArray<IconLink>(data.endIcons, IconLink);
}
}
}

View File

@@ -70,6 +70,7 @@ import { default as GridVideo } from './classes/GridVideo';
import { default as HistorySuggestion } from './classes/HistorySuggestion';
import { default as HorizontalCardList } from './classes/HorizontalCardList';
import { default as HorizontalList } from './classes/HorizontalList';
import { default as IconLink } from './classes/IconLink';
import { default as ItemSection } from './classes/ItemSection';
import { default as ItemSectionHeader } from './classes/ItemSectionHeader';
import { default as ItemSectionTab } from './classes/ItemSectionTab';
@@ -310,6 +311,7 @@ const map: Record<string, YTNodeConstructor> = {
HistorySuggestion,
HorizontalCardList,
HorizontalList,
IconLink,
ItemSection,
ItemSectionHeader,
ItemSectionTab,