From 0091f51dd2691dd1031896dd52c989426534dae8 Mon Sep 17 00:00:00 2001 From: Luan Date: Fri, 18 Jul 2025 12:02:26 -0300 Subject: [PATCH] feat(Parser): Add `HypePointsFactoid` node --- src/Innertube.ts | 2 +- src/parser/classes/HypePointsFactoid.ts | 14 ++++++++++++++ src/parser/classes/VideoCard.ts | 1 - src/parser/classes/VideoDescriptionHeader.ts | 5 +++-- src/parser/nodes.ts | 1 + 5 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 src/parser/classes/HypePointsFactoid.ts diff --git a/src/Innertube.ts b/src/Innertube.ts index 56509a9f..95ef51cf 100644 --- a/src/Innertube.ts +++ b/src/Innertube.ts @@ -71,7 +71,7 @@ export default class Innertube { return new Innertube(await Session.create(config)); } - async getInfo(target: string | NavigationEndpoint, options: GetVideoInfoOptions): Promise { + async getInfo(target: string | NavigationEndpoint, options?: GetVideoInfoOptions): Promise { throwIfMissing({ target }); const payload = { diff --git a/src/parser/classes/HypePointsFactoid.ts b/src/parser/classes/HypePointsFactoid.ts new file mode 100644 index 00000000..516700a4 --- /dev/null +++ b/src/parser/classes/HypePointsFactoid.ts @@ -0,0 +1,14 @@ +import { Parser, type RawNode } from '../index.js'; +import { YTNode } from '../helpers.js'; +import Factoid from './Factoid.js'; + +export default class HypePointsFactoid extends YTNode { + static type = 'HypePointsFactoid'; + + public factoid: Factoid | null; + + constructor(data: RawNode) { + super(); + this.factoid = Parser.parseItem(data.factoid, Factoid); + } +} \ No newline at end of file diff --git a/src/parser/classes/VideoCard.ts b/src/parser/classes/VideoCard.ts index 40662c2e..9b04d873 100644 --- a/src/parser/classes/VideoCard.ts +++ b/src/parser/classes/VideoCard.ts @@ -7,7 +7,6 @@ export default class VideoCard extends Video { static type = 'VideoCard'; public metadata_text?: Text; - public byline_text?: Text; constructor(data: RawNode) { super(data); diff --git a/src/parser/classes/VideoDescriptionHeader.ts b/src/parser/classes/VideoDescriptionHeader.ts index 52037d37..73131518 100644 --- a/src/parser/classes/VideoDescriptionHeader.ts +++ b/src/parser/classes/VideoDescriptionHeader.ts @@ -5,6 +5,7 @@ import Factoid from './Factoid.js'; import NavigationEndpoint from './NavigationEndpoint.js'; import UploadTimeFactoid from './UploadTimeFactoid.js'; import ViewCountFactoid from './ViewCountFactoid.js'; +import HypePointsFactoid from './HypePointsFactoid.js'; export default class VideoDescriptionHeader extends YTNode { static type = 'VideoDescriptionHeader'; @@ -12,7 +13,7 @@ export default class VideoDescriptionHeader extends YTNode { channel: Text; channel_navigation_endpoint?: NavigationEndpoint; channel_thumbnail: Thumbnail[]; - factoids: ObservedArray; + factoids: ObservedArray; publish_date: Text; title: Text; views: Text; @@ -25,6 +26,6 @@ export default class VideoDescriptionHeader extends YTNode { this.channel_thumbnail = Thumbnail.fromResponse(data.channelThumbnail); this.publish_date = new Text(data.publishDate); this.views = new Text(data.views); - this.factoids = Parser.parseArray(data.factoid, [ Factoid, ViewCountFactoid, UploadTimeFactoid ]); + this.factoids = Parser.parseArray(data.factoid, [ Factoid, HypePointsFactoid, ViewCountFactoid, UploadTimeFactoid ]); } } diff --git a/src/parser/nodes.ts b/src/parser/nodes.ts index 1c297fd2..6c4403f7 100644 --- a/src/parser/nodes.ts +++ b/src/parser/nodes.ts @@ -210,6 +210,7 @@ export { default as HorizontalCardList } from './classes/HorizontalCardList.js'; export { default as HorizontalList } from './classes/HorizontalList.js'; export { default as HorizontalMovieList } from './classes/HorizontalMovieList.js'; export { default as HowThisWasMadeSectionView } from './classes/HowThisWasMadeSectionView.js'; +export { default as HypePointsFactoid } from './classes/HypePointsFactoid.js'; export { default as IconLink } from './classes/IconLink.js'; export { default as ImageBannerView } from './classes/ImageBannerView.js'; export { default as IncludingResultsFor } from './classes/IncludingResultsFor.js';