feat(parser): Add AnimatedThumbnailOverlayView (#903)

* Add AnimatedThumbnailOverlayView parser.

* Update nodes.ts
This commit is contained in:
Izak Filmalter
2025-02-17 06:41:17 -08:00
committed by GitHub
parent 5394edc9bd
commit 0cb92d9620
4 changed files with 33 additions and 1 deletions

3
.gitignore vendored
View File

@@ -74,6 +74,9 @@ deno/
# VSCode files
.vscode/
# Webstorm files
.idea/
# MacOS
.DS_Store

View File

@@ -0,0 +1,25 @@
import { YTNode } from '../helpers.js';
import type { RawNode } from '../types/index.js';
export default class AnimatedThumbnailOverlayView extends YTNode {
static type = 'AnimatedThumbnailOverlayView';
thumbnail: {
sources: {
url: string,
width: number,
height: number
}[]
};
constructor(data: RawNode) {
super();
this.thumbnail = {
sources: data.thumbnail.sources.map((item: any) => ({
url: item.url,
width: item.width,
height: item.height
}))
};
}
}

View File

@@ -1,6 +1,7 @@
import type { ObservedArray } from '../helpers.js';
import { YTNode } from '../helpers.js';
import { Parser, type RawNode } from '../index.js';
import AnimatedThumbnailOverlayView from './AnimatedThumbnailOverlayView.js';
import ThumbnailHoverOverlayView from './ThumbnailHoverOverlayView.js';
import ThumbnailOverlayBadgeView from './ThumbnailOverlayBadgeView.js';
import Thumbnail from './misc/Thumbnail.js';
@@ -19,6 +20,7 @@ export default class ThumbnailView extends YTNode {
public overlays: ObservedArray<
ThumbnailHoverOverlayToggleActionsView | ThumbnailBottomOverlayView |
ThumbnailOverlayBadgeView | ThumbnailHoverOverlayView
| AnimatedThumbnailOverlayView
>;
public background_color?: ThumbnailBackgroundColor;
@@ -28,7 +30,8 @@ export default class ThumbnailView extends YTNode {
this.image = Thumbnail.fromResponse(data.image);
this.overlays = Parser.parseArray(data.overlays, [
ThumbnailHoverOverlayToggleActionsView, ThumbnailBottomOverlayView,
ThumbnailOverlayBadgeView, ThumbnailHoverOverlayView
ThumbnailOverlayBadgeView, ThumbnailHoverOverlayView,
AnimatedThumbnailOverlayView
]);
if ('backgroundColor' in data) {

View File

@@ -21,6 +21,7 @@ export { default as ActiveAccountHeader } from './classes/ActiveAccountHeader.js
export { default as AddToPlaylist } from './classes/AddToPlaylist.js';
export { default as Alert } from './classes/Alert.js';
export { default as AlertWithButton } from './classes/AlertWithButton.js';
export { default as AnimatedThumbnailOverlayView } from './classes/AnimatedThumbnailOverlayView.js';
export { default as AttributionView } from './classes/AttributionView.js';
export { default as AudioOnlyPlayability } from './classes/AudioOnlyPlayability.js';
export { default as AutomixPreviewVideo } from './classes/AutomixPreviewVideo.js';