From a7b34c41be3a9c7549031ec1c8b76bf7f130e231 Mon Sep 17 00:00:00 2001 From: Delirium Date: Mon, 6 May 2024 14:34:39 +0200 Subject: [PATCH] fix ui: fix EFS indexes check for reader (#2171) --- frontend/app/player/web/MessageLoader.ts | 6 +++++- frontend/app/player/web/messages/MFileReader.ts | 8 ++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/frontend/app/player/web/MessageLoader.ts b/frontend/app/player/web/MessageLoader.ts index 97e58fb0c..4b7487a44 100644 --- a/frontend/app/player/web/MessageLoader.ts +++ b/frontend/app/player/web/MessageLoader.ts @@ -45,7 +45,11 @@ export default class MessageLoader { const mobBytes = await decrypt(b); const data = unpack(mobBytes); fileReader.append(data); - fileReader.checkForIndexes(); + if (file?.endsWith('EFS')) { + fileReader.forceSkipIndexes() + } else { + fileReader.checkForIndexes(); + } const msgs: Array = []; let finished = false; while (!finished) { diff --git a/frontend/app/player/web/messages/MFileReader.ts b/frontend/app/player/web/messages/MFileReader.ts index 268f18005..f34b2dc84 100644 --- a/frontend/app/player/web/messages/MFileReader.ts +++ b/frontend/app/player/web/messages/MFileReader.ts @@ -12,6 +12,7 @@ export default class MFileReader extends RawMessageReader { private currentTime: number public error: boolean = false private noIndexes: boolean = false + private skipIndexes: boolean = false constructor(data: Uint8Array, private startTime?: number, private logger= console) { super(data) } @@ -29,6 +30,10 @@ export default class MFileReader extends RawMessageReader { } } + public forceSkipIndexes() { + this.skipIndexes = true + } + private needSkipMessage(): boolean { if (this.p === 0) return false for (let i = 7; i >= 0; i--) { @@ -56,6 +61,9 @@ export default class MFileReader extends RawMessageReader { * */ private readRawMessage(): RawMessage | null { try { + if (this.skipIndexes) { + this.skip(8) + } return super.readMessage() } catch (e) { this.logger.error("Read message error:", e)