From 847ba0ec3098841f3c2331d6afd2e30f910649d3 Mon Sep 17 00:00:00 2001 From: uh wot Date: Wed, 7 Aug 2024 01:32:55 +0200 Subject: [PATCH] add deezer session renewal --- src/streamers/deezer/main.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/streamers/deezer/main.ts b/src/streamers/deezer/main.ts index 2a71983..d0f7d8f 100644 --- a/src/streamers/deezer/main.ts +++ b/src/streamers/deezer/main.ts @@ -100,6 +100,10 @@ export default class Deezer implements StreamerWithLogin { method: T, data: { [key: string]: string | number | string[] } = {} ): Promise { + // sid + checkForm renewal + if (method != 'deezer.getUserData' && method != 'user.getArl' && this.#isSessionExpired()) + await this.#apiCall('deezer.getUserData') + let apiToken = this.apiToken if (method == 'deezer.getUserData' || method == 'user.getArl') apiToken = '' @@ -168,6 +172,10 @@ export default class Deezer implements StreamerWithLogin { return userData } + #isSessionExpired() { + return Date.now() - (this.renewTimestamp ?? 0) >= 3600 * 1000 + } + #md5(str: string) { return createHash('md5').update(str).digest('hex') } @@ -428,7 +436,7 @@ export default class Deezer implements StreamerWithLogin { trackTokenExpiry: number, format: DeezerFormat ): Promise { - if (Date.now() - (this.renewTimestamp ?? 0) >= 3600 * 1000) + if (this.#isSessionExpired()) // renew license token await this.#apiCall('deezer.getUserData')