mirror of
https://github.com/LuanRT/YouTube.js.git
synced 2026-06-25 15:52:13 +00:00
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:
25
src/parser/classes/IconLink.ts
Normal file
25
src/parser/classes/IconLink.ts
Normal 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;
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user