Merge pull request #1478 from cvium/fix_tvdb_again

Wait for the async authentication to finish when the JTW token expires
This commit is contained in:
Anthony Lavado 2019-06-22 02:08:46 -04:00 committed by GitHub
commit 084854d71d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

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