feat(parser): Add RunAttestationCommand

Can be used to get attestation responses from BotGuard, assuming you have a VM (retrieved using the `/att/get` endpoint, with engagement type set to `ENGAGEMENT_TYPE_UNBOUND`) loaded up.
This commit is contained in:
Luan
2024-11-25 03:23:23 -03:00
parent 951256c641
commit 4729016fb9
3 changed files with 38 additions and 1 deletions

View File

@@ -0,0 +1,37 @@
import { YTNode } from '../../helpers.js';
import type { RawNode } from '../../types/index.js';
export type AttIds = {
encrypted_video_id?: string;
external_channel_id?: string;
comment_id?: string;
external_owner_id?: string;
artist_id?: string;
playlist_id?: string;
external_post_id?: string;
share_id?: string;
}
export default class RunAttestationCommand extends YTNode {
static type = 'RunAttestationCommand';
public engagement_type: string;
public ids?: AttIds[];
constructor(data: RawNode) {
super();
this.engagement_type = data.engagementType;
if (Reflect.has(data, 'ids')) {
this.ids = data.ids.map((id: RawNode) => ({
encrypted_video_id: id.encryptedVideoId,
external_channel_id: id.externalChannelId,
comment_id: id.commentId,
external_owner_id: id.externalOwnerId,
artist_id: id.artistId,
playlist_id: id.playlistId,
external_post_id: id.externalPostId,
share_id: id.shareId
}));
}
}
}

View File

@@ -70,6 +70,7 @@ export { default as AddToPlaylistCommand } from './classes/commands/AddToPlaylis
export { default as CommandExecutorCommand } from './classes/commands/CommandExecutorCommand.js';
export { default as ContinuationCommand } from './classes/commands/ContinuationCommand.js';
export { default as GetKidsBlocklistPickerCommand } from './classes/commands/GetKidsBlocklistPickerCommand.js';
export { default as RunAttestationCommand } from './classes/commands/RunAttestationCommand.js';
export { default as ShowDialogCommand } from './classes/commands/ShowDialogCommand.js';
export { default as AuthorCommentBadge } from './classes/comments/AuthorCommentBadge.js';
export { default as CommentActionButtons } from './classes/comments/CommentActionButtons.js';

View File

@@ -78,7 +78,6 @@ const IGNORED_LIST = new Set([
'PrimetimePromo',
'BackgroundPromo',
'PromotedSparklesWeb',
'RunAttestationCommand',
'CompactPromotedVideo',
'BrandVideoShelf',
'BrandVideoSingleton',