Retry Spotify token refresh

This commit is contained in:
Max Isom 2022-07-16 13:58:24 -05:00
parent 28bcd4b45e
commit e489b10565
No known key found for this signature in database
GPG key ID: 25C9B1A7F6798880
4 changed files with 23 additions and 5 deletions

View file

@ -1,6 +1,7 @@
import {inject, injectable} from 'inversify';
import SpotifyWebApi from 'spotify-web-api-node';
import Youtube from 'youtube.ts';
import pRetry from 'p-retry';
import {TYPES} from '../types.js';
import Config from './config.js';
@ -30,9 +31,10 @@ export default class ThirdParty {
}
private async refreshSpotifyToken() {
const auth = await this.spotify.clientCredentialsGrant();
this.spotify.setAccessToken(auth.body.access_token);
this.spotifyTokenTimerId = setTimeout(this.refreshSpotifyToken.bind(this), (auth.body.expires_in / 2) * 1000);
await pRetry(async () => {
const auth = await this.spotify.clientCredentialsGrant();
this.spotify.setAccessToken(auth.body.access_token);
this.spotifyTokenTimerId = setTimeout(this.refreshSpotifyToken.bind(this), (auth.body.expires_in / 2) * 1000);
}, {retries: 5});
}
}