diff --git a/src/parser/classes/BackstageImage.ts b/src/parser/classes/BackstageImage.ts
index dbafe522..fa03bdaa 100644
--- a/src/parser/classes/BackstageImage.ts
+++ b/src/parser/classes/BackstageImage.ts
@@ -1,14 +1,17 @@
import Thumbnail from './misc/Thumbnail';
+import NavigationEndpoint from './NavigationEndpoint';
import { YTNode } from '../helpers';
class BackstageImage extends YTNode {
static type = 'BackstageImage';
image: Thumbnail[];
+ endpoint: NavigationEndpoint;
constructor(data: any) {
super();
this.image = Thumbnail.fromResponse(data.image);
+ this.endpoint = new NavigationEndpoint(data.command);
}
}
diff --git a/src/parser/classes/BackstagePost.ts b/src/parser/classes/BackstagePost.ts
index 2ed7ad10..8fbc5031 100644
--- a/src/parser/classes/BackstagePost.ts
+++ b/src/parser/classes/BackstagePost.ts
@@ -2,6 +2,8 @@ import Parser from '../index';
import Author from './misc/Author';
import Text from './misc/Text';
import NavigationEndpoint from './NavigationEndpoint';
+import type CommentActionButtons from './comments/CommentActionButtons';
+import type Menu from './menus/Menu';
import { YTNode } from '../helpers';
@@ -12,19 +14,18 @@ class BackstagePost extends YTNode {
author: Author;
content: Text;
published: Text;
- poll_status: string;
- vote_status: string;
- likes: Text;
- menu;
- actions;
+ poll_status?: string;
+ vote_status?: string;
+ vote_count?: Text;
+ menu?: Menu | null;
+ action_buttons;
vote_button;
surface: string;
- endpoint: NavigationEndpoint;
+ endpoint?: NavigationEndpoint;
attachment;
constructor(data: any) {
super();
-
this.id = data.postId;
this.author = new Author({
@@ -34,15 +35,40 @@ class BackstagePost extends YTNode {
this.content = new Text(data.contentText);
this.published = new Text(data.publishedTimeText);
- this.poll_status = data.pollStatus;
- this.vote_status = data.voteStatus;
- this.likes = new Text(data.voteCount);
- this.menu = Parser.parse(data.actionMenu) || null;
- this.actions = Parser.parse(data.actionButtons);
- this.vote_button = Parser.parse(data.voteButton);
+
+ if (data.pollStatus) {
+ this.poll_status = data.pollStatus;
+ }
+
+ if (data.voteStatus) {
+ this.vote_status = data.voteStatus;
+ }
+
+ if (data.voteCount) {
+ this.vote_count = new Text(data.voteCount);
+ }
+
+ if (data.actionMenu) {
+ this.menu = Parser.parseItem