diff --git a/src/parser/classes/AvatarView.ts b/src/parser/classes/AvatarView.ts index faeb826c..6ef8b1ea 100644 --- a/src/parser/classes/AvatarView.ts +++ b/src/parser/classes/AvatarView.ts @@ -5,24 +5,20 @@ import { Thumbnail } from '../misc.js'; export default class AvatarView extends YTNode { static type = 'AvatarView'; - image: { - sources: Thumbnail[], - processor: { - border_image_processor: { - circular: boolean - } + image: Thumbnail[]; + image_processor: { + border_image_processor: { + circular: boolean } }; avatar_image_size: string; constructor(data: RawNode) { super(); - this.image = { - sources: data.image.sources.map((x: any) => new Thumbnail(x)).sort((a: Thumbnail, b: Thumbnail) => b.width - a.width), - processor: { - border_image_processor: { - circular: data.image.processor.borderImageProcessor.circular - } + this.image = Thumbnail.fromResponse(data.image); + this.image_processor = { + border_image_processor: { + circular: data.image.processor.borderImageProcessor.circular } }; this.avatar_image_size = data.avatarImageSize; diff --git a/src/parser/classes/DecoratedAvatarView.ts b/src/parser/classes/DecoratedAvatarView.ts index c6fd82ae..8ceb34e7 100644 --- a/src/parser/classes/DecoratedAvatarView.ts +++ b/src/parser/classes/DecoratedAvatarView.ts @@ -1,19 +1,21 @@ import { YTNode } from '../helpers.js'; -import type { RawNode } from '../index.js'; +import { Parser, type RawNode } from '../index.js'; import NavigationEndpoint from './NavigationEndpoint.js'; import AvatarView from './AvatarView.js'; export default class DecoratedAvatarView extends YTNode { static type = 'DecoratedAvatarView'; - avatar: AvatarView; + avatar: AvatarView | null; a11y_label: string; - on_tap_endpoint: NavigationEndpoint; + on_tap_endpoint?: NavigationEndpoint; constructor(data: RawNode) { super(); - this.avatar = new AvatarView(data.avatar.avatarViewModel); + this.avatar = Parser.parseItem(data.avatar, AvatarView); this.a11y_label = data.a11yLabel; - this.on_tap_endpoint = new NavigationEndpoint(data.rendererContext.commandContext.onTap.innertubeCommand); + if (data.rendererContext?.commandContext?.onTap) { + this.on_tap_endpoint = new NavigationEndpoint(data.rendererContext.commandContext.onTap); + } } } \ No newline at end of file