예제 #1
0
파일: TMDbApi.cs 프로젝트: rosenbjerg/NxPlx
        private async Task <string> Fetch(string url)
        {
            var cacheKey = $"{CachePrefix}:{url}";

            {
                var cachedContent = await CachingService.GetStringAsync(cacheKey);

                if (!string.IsNullOrEmpty(cachedContent))
                {
                    return(cachedContent);
                }
            }

            _bucket.Consume(1);

            var content = await FetchInternal(cacheKey, url);

            if (string.IsNullOrEmpty(content) || content.StartsWith("{\"status_code\":25"))
            {
                return(await Fetch(url));
            }

            return(content);
        }