Wait for the async authentication to finish when the JTW token expires

This commit is contained in:
Claus Vium 2019-06-21 19:08:04 +02:00
parent d5fe82314e
commit c2ab0ad641

View file

@ -24,24 +24,28 @@ namespace MediaBrowser.Providers.TV.TheTVDB
{ {
_cache = memoryCache; _cache = memoryCache;
_tvDbClient = new TvDbClient(); _tvDbClient = new TvDbClient();
_tvDbClient.Authentication.AuthenticateAsync(TvdbUtils.TvdbApiKey);
_tokenCreatedAt = DateTime.Now;
} }
public TvDbClient TvDbClient private TvDbClient TvDbClient
{ {
get get
{ {
if (string.IsNullOrEmpty(_tvDbClient.Authentication.Token))
{
_tvDbClient.Authentication.AuthenticateAsync(TvdbUtils.TvdbApiKey).GetAwaiter().GetResult();
_tokenCreatedAt = DateTime.Now;
}
// Refresh if necessary // Refresh if necessary
if (_tokenCreatedAt < DateTime.Now.Subtract(TimeSpan.FromHours(20))) if (_tokenCreatedAt < DateTime.Now.Subtract(TimeSpan.FromHours(20)))
{ {
try try
{ {
_tvDbClient.Authentication.RefreshTokenAsync(); _tvDbClient.Authentication.RefreshTokenAsync().GetAwaiter().GetResult();
} }
catch catch
{ {
_tvDbClient.Authentication.AuthenticateAsync(TvdbUtils.TvdbApiKey); _tvDbClient.Authentication.AuthenticateAsync(TvdbUtils.TvdbApiKey).GetAwaiter().GetResult();
} }
_tokenCreatedAt = DateTime.Now; _tokenCreatedAt = DateTime.Now;