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) {