mirror of
https://github.com/LuanRT/YouTube.js.git
synced 2026-06-28 00:56:23 +00:00
refactor: clean up parser and tests (#387)
* tests: improve coverage * refactor: clean up nodes * chore: lint * feat(parser): ignore `BrandVideoShelf` Seems to be used for ads. * feat(parser): ignore `BrandVideoSingleton` too
This commit is contained in:
@@ -1,11 +1,10 @@
|
||||
import { YTNode, observe, type ObservedArray } from '../helpers.js';
|
||||
import type { RawNode } from '../index.js';
|
||||
import Parser from '../index.js';
|
||||
import Chapter from './Chapter.js';
|
||||
import Heatmap from './Heatmap.js';
|
||||
import type { RawNode } from '../index.js';
|
||||
|
||||
import { observe, ObservedArray, YTNode } from '../helpers.js';
|
||||
|
||||
class Marker extends YTNode {
|
||||
export class Marker extends YTNode {
|
||||
static type = 'Marker';
|
||||
|
||||
marker_key: string;
|
||||
@@ -14,23 +13,23 @@ class Marker extends YTNode {
|
||||
chapters?: Chapter[];
|
||||
};
|
||||
|
||||
constructor (data: RawNode) {
|
||||
constructor(data: RawNode) {
|
||||
super();
|
||||
this.marker_key = data.key;
|
||||
|
||||
this.value = {};
|
||||
|
||||
if (data.value.heatmap) {
|
||||
if (Reflect.has(data.value, 'heatmap')) {
|
||||
this.value.heatmap = Parser.parseItem(data.value.heatmap, Heatmap);
|
||||
}
|
||||
|
||||
if (data.value.chapters) {
|
||||
if (Reflect.has(data.value, 'chapters')) {
|
||||
this.value.chapters = Parser.parseArray(data.value.chapters, Chapter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class MultiMarkersPlayerBar extends YTNode {
|
||||
export default class MultiMarkersPlayerBar extends YTNode {
|
||||
static type = 'MultiMarkersPlayerBar';
|
||||
|
||||
markers_map: ObservedArray<Marker>;
|
||||
@@ -39,10 +38,9 @@ class MultiMarkersPlayerBar extends YTNode {
|
||||
super();
|
||||
this.markers_map = observe(data.markersMap?.map((marker: {
|
||||
key: string;
|
||||
value: { [key: string ]: any
|
||||
}}) => new Marker(marker)) || []);
|
||||
value: {
|
||||
[key: string]: RawNode
|
||||
}
|
||||
}) => new Marker(marker)) || []);
|
||||
}
|
||||
}
|
||||
|
||||
export { Marker };
|
||||
export default MultiMarkersPlayerBar;
|
||||
}
|
||||
Reference in New Issue
Block a user