mirror of
https://github.com/LuanRT/YouTube.js.git
synced 2026-06-13 01:22:11 +00:00
feat(parser): Add VideoSummaryContentView and VideoSummaryParagraphView (#1153)
* feat(parser): Add `VideoSummaryContentView` and `VideoSummaryParagraphView` * fix(ExpandableMetadata): Update `expanded_content` type
This commit is contained in:
@@ -5,6 +5,7 @@ import HorizontalCardList from './HorizontalCardList.js';
|
||||
import HorizontalList from './HorizontalList.js';
|
||||
import Text from './misc/Text.js';
|
||||
import Thumbnail from './misc/Thumbnail.js';
|
||||
import VideoSummaryContentView from './VideoSummaryContentView.js';
|
||||
|
||||
export default class ExpandableMetadata extends YTNode {
|
||||
static type = 'ExpandableMetadata';
|
||||
@@ -16,7 +17,7 @@ export default class ExpandableMetadata extends YTNode {
|
||||
expanded_title: Text;
|
||||
};
|
||||
|
||||
expanded_content: HorizontalCardList | HorizontalList | null;
|
||||
expanded_content: VideoSummaryContentView | HorizontalCardList | HorizontalList | null;
|
||||
expand_button: Button | null;
|
||||
collapse_button: Button | null;
|
||||
|
||||
@@ -32,7 +33,7 @@ export default class ExpandableMetadata extends YTNode {
|
||||
};
|
||||
}
|
||||
|
||||
this.expanded_content = Parser.parseItem(data.expandedContent, [ HorizontalCardList, HorizontalList ]);
|
||||
this.expanded_content = Parser.parseItem(data.expandedContent, [ VideoSummaryContentView, HorizontalCardList, HorizontalList ]);
|
||||
this.expand_button = Parser.parseItem(data.expandButton, Button);
|
||||
this.collapse_button = Parser.parseItem(data.collapseButton, Button);
|
||||
}
|
||||
|
||||
28
src/parser/classes/VideoSummaryContentView.ts
Normal file
28
src/parser/classes/VideoSummaryContentView.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
import type { ObservedArray } from '../helpers.js';
|
||||
import { YTNode } from '../helpers.js';
|
||||
import { Parser, type RawNode } from '../index.js';
|
||||
import DislikeButtonView from './DislikeButtonView.js';
|
||||
import LikeButtonView from './LikeButtonView.js';
|
||||
import VideoSummaryParagraphView from './VideoSummaryParagraphView.js';
|
||||
|
||||
export default class VideoSummaryContentView extends YTNode {
|
||||
static type = 'VideoSummaryContentView';
|
||||
|
||||
public dislike_button_view?: DislikeButtonView | null;
|
||||
public like_button_view?: LikeButtonView | null;
|
||||
public paragraphs: ObservedArray<VideoSummaryParagraphView>;
|
||||
|
||||
constructor(data: RawNode) {
|
||||
super();
|
||||
|
||||
if ('dislikeButtonViewModel' in data) {
|
||||
this.dislike_button_view = Parser.parseItem(data.dislikeButtonViewModel, DislikeButtonView);
|
||||
}
|
||||
|
||||
if ('likeButtonViewModel' in data) {
|
||||
this.like_button_view = Parser.parseItem(data.likeButtonViewModel, LikeButtonView);
|
||||
}
|
||||
|
||||
this.paragraphs = Parser.parseArray(data.paragraphs, VideoSummaryParagraphView);
|
||||
}
|
||||
}
|
||||
14
src/parser/classes/VideoSummaryParagraphView.ts
Normal file
14
src/parser/classes/VideoSummaryParagraphView.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
import { YTNode } from '../helpers.js';
|
||||
import { type RawNode } from '../index.js';
|
||||
import { Text } from '../misc.js';
|
||||
|
||||
export default class VideoSummaryParagraphView extends YTNode {
|
||||
static type = 'VideoSummaryParagraphView';
|
||||
|
||||
public text: Text;
|
||||
|
||||
constructor(data: RawNode) {
|
||||
super();
|
||||
this.text = Text.fromAttributed(data.text);
|
||||
}
|
||||
}
|
||||
@@ -528,6 +528,8 @@ export { default as VideoMetadataCarouselView } from './classes/VideoMetadataCar
|
||||
export { default as VideoOwner } from './classes/VideoOwner.js';
|
||||
export { default as VideoPrimaryInfo } from './classes/VideoPrimaryInfo.js';
|
||||
export { default as VideoSecondaryInfo } from './classes/VideoSecondaryInfo.js';
|
||||
export { default as VideoSummaryContentView } from './classes/VideoSummaryContentView.js';
|
||||
export { default as VideoSummaryParagraphView } from './classes/VideoSummaryParagraphView.js';
|
||||
export { default as VideoViewCount } from './classes/VideoViewCount.js';
|
||||
export { default as ViewCountFactoid } from './classes/ViewCountFactoid.js';
|
||||
export { default as WatchCardCompactVideo } from './classes/WatchCardCompactVideo.js';
|
||||
|
||||
Reference in New Issue
Block a user