Beispiel #1
0
        public static async Task <List <TvDB_Language> > GetLanguagesAsync()
        {
            List <TvDB_Language> languages = new List <TvDB_Language>();

            try
            {
                await CheckAuthorizationAsync();

                TvDBRateLimiter.Instance.EnsureRate();
                var response = await client.Languages.GetAllAsync();

                Language[] apiLanguages = response.Data;

                if (apiLanguages.Length <= 0)
                {
                    return(languages);
                }

                foreach (Language item in apiLanguages)
                {
                    TvDB_Language lan = new TvDB_Language
                    {
                        Id           = item.Id,
                        EnglishName  = item.EnglishName,
                        Name         = item.Name,
                        Abbreviation = item.Abbreviation
                    };
                    languages.Add(lan);
                }
            }
            catch (TvDbServerException exception)
            {
                if (exception.StatusCode == (int)HttpStatusCode.Unauthorized)
                {
                    client.Authentication.Token = null;
                    await CheckAuthorizationAsync();

                    if (!string.IsNullOrEmpty(client.Authentication.Token))
                    {
                        return(await GetLanguagesAsync());
                    }
                    // suppress 404 and move on
                }
                else if (exception.StatusCode == (int)HttpStatusCode.NotFound)
                {
                    return(languages);
                }
                logger.Error(exception,
                             $"TvDB returned an error code: {exception.StatusCode}\n        {exception.Message}");
                Analytics.PostException(exception);
            }
            catch (Exception ex)
            {
                logger.Error(ex, $"Error in TVDBHelper.GetSeriesBannersOnline: {ex}");
                Analytics.PostException(ex);
            }

            return(languages);
        }
Beispiel #2
0
        public static async Task <List <TvDB_Language> > GetLanguagesAsync()
        {
            List <TvDB_Language> languages = new List <TvDB_Language>();

            try
            {
                await _checkAuthorizationAsync();

                TvDBRateLimiter.Instance.EnsureRate();
                var response = await client.Languages.GetAllAsync();

                TvDbSharper.Clients.Languages.Json.Language[] apiLanguages = response.Data;

                if (apiLanguages.Length <= 0)
                {
                    return(languages);
                }

                foreach (TvDbSharper.Clients.Languages.Json.Language item in apiLanguages)
                {
                    TvDB_Language lan = new TvDB_Language()
                    {
                        Id           = item.Id,
                        EnglishName  = item.EnglishName,
                        Name         = item.Name,
                        Abbreviation = item.Abbreviation
                    };
                    languages.Add(lan);
                }
            }
            catch (TvDbSharper.Errors.TvDbServerException exception)
            {
                if (exception.StatusCode == HttpStatusCode.Unauthorized)
                {
                    client.Authentication.Token = null;
                    await _checkAuthorizationAsync();

                    if (client.Authentication.Token != null)
                    {
                        return(await GetLanguagesAsync());
                    }
                    // suppress 404 and move on
                }
                else if (exception.StatusCode == HttpStatusCode.NotFound)
                {
                    return(languages);
                }
                logger.Error(exception, "TvDB returned an error code: " + exception.StatusCode + "\n        " + exception.Message);
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Error in TVDBHelper.GetSeriesBannersOnline: " + ex.ToString());
            }

            return(languages);
        }