fix: add missing playlist_length (#110)

* fix: add missing playlist_length

Also convert to TS

* chore: lint
This commit is contained in:
Daniel Wykerd
2022-07-22 22:08:32 +02:00
committed by GitHub
parent c487a65e8f
commit 9c44cfc7f8
2 changed files with 74 additions and 52 deletions

View File

@@ -1,52 +0,0 @@
import Parser from '../index';
import Thumbnail from './misc/Thumbnail';
import NavigationEndpoint from './NavigationEndpoint';
import Text from './misc/Text';
import { YTNode } from '../helpers';
class EndscreenElement extends YTNode {
static type = 'EndscreenElement';
constructor(data) {
super();
this.style = data.style;
this.title = new Text(data.title);
this.endpoint = new NavigationEndpoint(data.endpoint);
if (data.image) {
this.image = Thumbnail.fromResponse(data.image);
}
if (data.icon) {
this.icon = Thumbnail.fromResponse(data.icon);
}
if (data.metadata) {
this.metadata = new Text(data.metadata);
}
if (data.callToAction) {
this.call_to_action = new Text(data.callToAction);
}
if (data.hovercardButton) {
this.hovercard_button = Parser.parse(data.hovercardButton);
}
if (data.isSubscribe) {
this.is_subscribe = data.isSubscribe;
}
this.thumbnail_overlays = Parser.parse(data.thumbnailOverlays);
this.left = data.left;
this.width = data.width;
this.top = data.top;
this.aspect_ratio = data.aspectRatio;
this.start_ms = data.startMs;
this.end_ms = data.endMs;
this.id = data.id;
}
}
export default EndscreenElement;

View File

@@ -0,0 +1,74 @@
import Parser from '../index';
import Thumbnail from './misc/Thumbnail';
import NavigationEndpoint from './NavigationEndpoint';
import Text from './misc/Text';
import { YTNode } from '../helpers';
class EndscreenElement extends YTNode {
static type = 'EndscreenElement';
style;
title;
endpoint;
image;
icon;
metadata;
call_to_action;
hovercard_button;
is_subscribe;
playlist_length;
thumbnail_overlays;
left;
top;
width;
aspect_ratio;
start_ms;
end_ms;
id: string;
constructor(data: any) {
super();
this.style = `${data.style}`;
this.title = new Text(data.title);
this.endpoint = new NavigationEndpoint(data.endpoint);
if (data.image) {
this.image = Thumbnail.fromResponse(data.image);
}
if (data.icon) {
this.icon = Thumbnail.fromResponse(data.icon);
}
if (data.metadata) {
this.metadata = new Text(data.metadata);
}
if (data.callToAction) {
this.call_to_action = new Text(data.callToAction);
}
if (data.hovercardButton) {
this.hovercard_button = Parser.parseItem(data.hovercardButton);
}
if (data.isSubscribe) {
this.is_subscribe = !!data.isSubscribe;
}
if (data.playlistLength) {
this.playlist_length = new Text(data.playlistLength);
}
this.thumbnail_overlays = data.thumbnailOverlays ? Parser.parseArray(data.thumbnailOverlays) : undefined;
this.left = parseFloat(data.left);
this.width = parseFloat(data.width);
this.top = parseFloat(data.top);
this.aspect_ratio = parseFloat(data.aspectRatio);
this.start_ms = parseFloat(data.startMs);
this.end_ms = parseFloat(data.endMs);
this.id = data.id;
}
}
export default EndscreenElement;