[READ-ONLY] Mirror of https://github.com/FoxxMD/multi-scrobbler. Scrobble plays from multiple sources to multiple clients docs.multi-scrobbler.app
deezer docker jellyfin koito lastfm listenbrainz maloja mopidy mpris music music-assistant plex scrobble self-hosted spotify subsonic tautulli youtube-music
0

Configure Feed

Select the types of activity you want to include in your feed.

test: Make loop stop wait time configurable so tests run faster/more stable

FoxxMD (Apr 1, 2026, 5:10 PM UTC) de67879a 9d0cf8f8

+7 -5
+6 -5
src/backend/scrobblers/AbstractScrobbleClient.ts
··· 94 94 95 95 scrobbleDelay: number = 1000; 96 96 scrobbleSleep: number = 2000; 97 + scrobbleWaitStopInterval: number = 2000; 97 98 scrobbleRetries: number = 0; 98 99 scrobbling: boolean = false; 99 100 userScrobblingStopSignal: undefined | any; ··· 626 627 return; 627 628 } 628 629 this.userScrobblingStopSignal = true; 629 - let secsPassed = 0; 630 - while(this.userScrobblingStopSignal !== undefined && secsPassed < 10) { 631 - await sleep(2000); 632 - secsPassed += 2; 633 - this.logger.verbose(`Waiting for scrobble processing stop signal to be acknowledged (waited ${secsPassed}s)`); 630 + let timePasssed = 0; 631 + while(this.userScrobblingStopSignal !== undefined && timePasssed < (this.scrobbleWaitStopInterval * 10)) { 632 + await sleep(this.scrobbleWaitStopInterval); 633 + timePasssed += this.scrobbleWaitStopInterval; 634 + this.logger.verbose(`Waiting for scrobble processing stop signal to be acknowledged (waited ${timePasssed}ms)`); 634 635 } 635 636 if(this.userScrobblingStopSignal !== undefined) { 636 637 this.logger.warn('Could not stop scrobble processing! Or signal was lost :(');
+1
src/backend/tests/scrobbler/TestScrobbler.ts
··· 21 21 this.getScrobblesForTimeRange = async (_) => this.testRecentScrobbles; 22 22 this.scrobbleDelay = 10; 23 23 this.scrobbleSleep = 20; 24 + this.scrobbleWaitStopInterval = 20; 24 25 } 25 26 26 27 doScrobble(playObj: PlayObject) {