Skip to content

Commit

Permalink
feat(parser): Add RunAttestationCommand
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
LuanRT committed Nov 25, 2024
1 parent 951256c commit 4729016
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 1 deletion.
37 changes: 37 additions & 0 deletions src/parser/classes/commands/RunAttestationCommand.ts
Original file line number Diff line number Diff line change
@@ -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
}));
}
}
}
1 change: 1 addition & 0 deletions src/parser/nodes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand Down
1 change: 0 additions & 1 deletion src/parser/parser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,6 @@ const IGNORED_LIST = new Set([
'PrimetimePromo',
'BackgroundPromo',
'PromotedSparklesWeb',
'RunAttestationCommand',
'CompactPromotedVideo',
'BrandVideoShelf',
'BrandVideoSingleton',
Expand Down

0 comments on commit 4729016

Please sign in to comment.