mirror of
https://github.com/LuanRT/YouTube.js.git
synced 2026-06-24 07:11:48 +00:00
36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
import type { ObservedArray } from '../helpers.js';
|
|
import { YTNode } from '../helpers.js';
|
|
import type { RawNode } from '../index.js';
|
|
import { Parser } from '../index.js';
|
|
import MetadataBadge from './MetadataBadge.js';
|
|
import Menu from './menus/Menu.js';
|
|
import Text from './misc/Text.js';
|
|
|
|
export default class VideoPrimaryInfo extends YTNode {
|
|
static type = 'VideoPrimaryInfo';
|
|
|
|
title: Text;
|
|
super_title_link?: Text;
|
|
view_count: Text;
|
|
short_view_count: Text;
|
|
badges: ObservedArray<MetadataBadge>;
|
|
published: Text;
|
|
relative_date: Text;
|
|
menu: Menu | null;
|
|
|
|
constructor(data: RawNode) {
|
|
super();
|
|
this.title = new Text(data.title);
|
|
|
|
if (Reflect.has(data, 'superTitleLink')) {
|
|
this.super_title_link = new Text(data.superTitleLink);
|
|
}
|
|
|
|
this.view_count = new Text(data.viewCount?.videoViewCountRenderer?.viewCount);
|
|
this.short_view_count = new Text(data.viewCount?.videoViewCountRenderer?.shortViewCount);
|
|
this.badges = Parser.parseArray(data.badges, MetadataBadge);
|
|
this.published = new Text(data.dateText);
|
|
this.relative_date = new Text(data.relativeDateText);
|
|
this.menu = Parser.parseItem(data.videoActions, Menu);
|
|
}
|
|
} |