From 4b7542ddd97ef7cef0ef847561cbd45c85cceea8 Mon Sep 17 00:00:00 2001 From: FoxxMD Date: Wed, 19 Aug 2026 17:20:16 +0000 Subject: [PATCH] fix: Add missing play update events --- src/backend/scrobblers/AbstractScrobbleClient.ts | 7 ++++--- src/backend/sources/AbstractSource.ts | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/backend/scrobblers/AbstractScrobbleClient.ts b/src/backend/scrobblers/AbstractScrobbleClient.ts index 1fe69e61..6913bb2c 100644 --- a/src/backend/scrobblers/AbstractScrobbleClient.ts +++ b/src/backend/scrobblers/AbstractScrobbleClient.ts @@ -1278,7 +1278,8 @@ export default abstract class AbstractScrobbleClient extends AbstractComponent i signal.throwIfAborted(); if (!matchResult.match) { const transformedScrobble = await this.transformPlay(currQueuedPlay.play, TRANSFORM_HOOK.postCompare); - const { lifecycle = [] } = transformedScrobble; + const { lifecycle = [], ...restPlay } = transformedScrobble; + currQueuedPlay.play = restPlay; const psLifecycle = lifecycle.filter(x => x.hook === TRANSFORM_HOOK.postCompare); if(psLifecycle.length > 0) { events.push({...transformToPlayEvent(psLifecycle), createdAt: dayjs()}); @@ -1362,8 +1363,8 @@ export default abstract class AbstractScrobbleClient extends AbstractComponent i queueState.queueStatus = 'completed'; events.push(queueStateToPlayEvent(queueState)); } - await this.playEventsRepo.createMany(events.map(x => ({...x, playId: currQueuedPlay.id}))); - this.emitPlayUpdate({...currQueuedPlay, queueStates: [queueState]} as unknown as PlayApiCommonDetailed); + const createdEvents = await this.playEventsRepo.createMany(events.map(x => ({...x, playId: currQueuedPlay.id}))); + this.emitPlayUpdate({...currQueuedPlay, events: createdEvents, queueStates: [queueState]} as unknown as PlayApiCommonDetailed); this.emitEvent('scrobbleDequeued', { queuedScrobble: currQueuedPlay }) this.queuedGauge.labels(this.getPrometheusLabels()).dec(); this.queuedLength -= 1; diff --git a/src/backend/sources/AbstractSource.ts b/src/backend/sources/AbstractSource.ts index f1380190..fdf77fed 100644 --- a/src/backend/sources/AbstractSource.ts +++ b/src/backend/sources/AbstractSource.ts @@ -1051,7 +1051,8 @@ export default abstract class AbstractSource extends AbstractComponent implement events.push(queueStateToPlayEvent({...queueState, ...updatedQueueState})); } finally { await this.queueRepo.updateById(queueState.id, updatedQueueState); - await this.playEventsRepo.createMany(events.map(x => ({...x, playId: currQueuedPlay.id}))); + const createdEvents = await this.playEventsRepo.createMany(events.map(x => ({...x, playId: currQueuedPlay.id}))); + this.emitPlayUpdate({...currQueuedPlay, events: createdEvents, queueStates: [{...queueState, ...updatedQueueState}]} as unknown as PlayApiCommonDetailed); } if(state === 'discovered') { -- 2.51.2