From dcd19e3c836a283610ecc1b4c71fcc1763414e2f Mon Sep 17 00:00:00 2001 From: nick-delirium Date: Tue, 15 Apr 2025 15:57:01 +0200 Subject: [PATCH] player: add debug methods (get node, get node messages) --- frontend/app/player/web/MessageLoader.ts | 2 ++ frontend/app/player/web/WebPlayer.ts | 26 +++++++++++++++++++++--- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/frontend/app/player/web/MessageLoader.ts b/frontend/app/player/web/MessageLoader.ts index 67a88858d..6ef936b09 100644 --- a/frontend/app/player/web/MessageLoader.ts +++ b/frontend/app/player/web/MessageLoader.ts @@ -43,6 +43,7 @@ export default class MessageLoader { this.session = session; } + rawMessages: any[] = [] createNewParser( shouldDecrypt = true, onMessagesDone: (msgs: PlayerMsg[], file?: string) => void, @@ -69,6 +70,7 @@ export default class MessageLoader { while (!finished) { const msg = fileReader.readNext(); if (msg) { + this.rawMessages.push(msg) msgs.push(msg); } else { finished = true; diff --git a/frontend/app/player/web/WebPlayer.ts b/frontend/app/player/web/WebPlayer.ts index ee92c7891..ca1c29d60 100644 --- a/frontend/app/player/web/WebPlayer.ts +++ b/frontend/app/player/web/WebPlayer.ts @@ -98,10 +98,30 @@ export default class WebPlayer extends Player { endTime, // : 0, }); + Object.assign(window, { + playerJumpToTime: this.jump.bind(this), + }) // @ts-ignore - window.playerJumpToTime = this.jump.bind(this); - // @ts-ignore - window.__OPENREPLAY_DEV_TOOLS__.player = this; + Object.assign(window.__OPENREPLAY_DEV_TOOLS__, { + player: this, + getNode: (nodeId: number, tabId?: string) => { + if (tabId) { + console.log(this.messageManager.tabs[tabId].getNode(nodeId)) + } else { + Object.values(this.messageManager.tabs).forEach(tab => console.log(tab.getNode(nodeId))) + } + }, + getNodeMessages: (nodeId: number, tabId?: string) => { + let messages = this.messageLoader.rawMessages + .filter((m) => m.id === nodeId) + if (tabId) { + messages = messages.filter((m) => m.tabId === tabId) + } + console.log( + messages + ) + } + }) } preloadFirstFile(data: Uint8Array, fileKey?: string) {