Browse Source

Merge pull request #1259 from MediaBrowser/master

merge from master
Luke 9 years ago
parent
commit
5571bc98f3

+ 11 - 43
MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs

@@ -186,20 +186,6 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
             }
         }
 
-        /// <summary>
-        /// The _semaphoreLocks
-        /// </summary>
-        private readonly ConcurrentDictionary<string, SemaphoreSlim> _semaphoreLocks = new ConcurrentDictionary<string, SemaphoreSlim>(StringComparer.OrdinalIgnoreCase);
-        /// <summary>
-        /// Gets the lock.
-        /// </summary>
-        /// <param name="url">The filename.</param>
-        /// <returns>System.Object.</returns>
-        private SemaphoreSlim GetLock(string url)
-        {
-            return _semaphoreLocks.GetOrAdd(url, key => new SemaphoreSlim(1, 1));
-        }
-
         /// <summary>
         /// Gets the response internal.
         /// </summary>
@@ -270,7 +256,7 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
 
             var url = options.Url;
             var urlHash = url.ToLower().GetMD5().ToString("N");
-            
+
             var responseCachePath = Path.Combine(_appPaths.CachePath, "httpclient", urlHash);
 
             response = await GetCachedResponse(responseCachePath, options.CacheLength, url).ConfigureAwait(false);
@@ -279,31 +265,14 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
                 return response;
             }
 
-            var semaphore = GetLock(url);
-
-            await semaphore.WaitAsync(options.CancellationToken).ConfigureAwait(false);
-
-            try
-            {
-                response = await GetCachedResponse(responseCachePath, options.CacheLength, url).ConfigureAwait(false);
-                if (response != null)
-                {
-                    return response;
-                }
-
-                response = await SendAsyncInternal(options, httpMethod).ConfigureAwait(false);
+            response = await SendAsyncInternal(options, httpMethod).ConfigureAwait(false);
 
-                if (response.StatusCode == HttpStatusCode.OK)
-                {
-                    await CacheResponse(response, responseCachePath).ConfigureAwait(false);
-                }
-
-                return response;
-            }
-            finally
+            if (response.StatusCode == HttpStatusCode.OK)
             {
-                semaphore.Release();
+                await CacheResponse(response, responseCachePath).ConfigureAwait(false);
             }
+
+            return response;
         }
 
         private async Task<HttpResponseInfo> GetCachedResponse(string responseCachePath, TimeSpan cacheLength, string url)
@@ -348,13 +317,12 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
 
             using (var responseStream = response.Content)
             {
-                using (var fileStream = _fileSystem.GetFileStream(responseCachePath, FileMode.Create, FileAccess.Write, FileShare.Read, true))
-                {
-                    var memoryStream = new MemoryStream();
+                var memoryStream = new MemoryStream();
+                await responseStream.CopyToAsync(memoryStream).ConfigureAwait(false);
+                memoryStream.Position = 0;
 
-                    await responseStream.CopyToAsync(memoryStream).ConfigureAwait(false);
-
-                    memoryStream.Position = 0;
+                using (var fileStream = _fileSystem.GetFileStream(responseCachePath, FileMode.Create, FileAccess.Write, FileShare.None, true))
+                {
                     await memoryStream.CopyToAsync(fileStream).ConfigureAwait(false);
 
                     memoryStream.Position = 0;

+ 0 - 6
MediaBrowser.Providers/Music/MusicBrainzAlbumProvider.cs

@@ -297,12 +297,6 @@ namespace MediaBrowser.Providers.Music
                 ResourcePool = _musicBrainzResourcePool
             };
 
-            if (!isSearch)
-            {
-                options.CacheMode = CacheMode.Unconditional;
-                options.CacheLength = TimeSpan.FromDays(3);
-            }
-
             using (var xml = await _httpClient.Get(options).ConfigureAwait(false))
             {
                 using (var oReader = new StreamReader(xml, Encoding.UTF8))

+ 2 - 4
MediaBrowser.Providers/Omdb/OmdbItemProvider.cs

@@ -99,9 +99,7 @@ namespace MediaBrowser.Providers.Omdb
             {
                 Url = url,
                 ResourcePool = OmdbProvider.ResourcePool,
-                CancellationToken = cancellationToken,
-                CacheMode = CacheMode.Unconditional,
-                CacheLength = TimeSpan.FromDays(2)
+                CancellationToken = cancellationToken
 
             }).ConfigureAwait(false))
             {
@@ -133,7 +131,7 @@ namespace MediaBrowser.Providers.Omdb
                     item.SetProviderId(MetadataProviders.Imdb, result.imdbID);
 
                     int parsedYear;
-                    if (result.Year.Length > 0 
+                    if (result.Year.Length > 0
                         && int.TryParse(result.Year.Substring(0, Math.Min(result.Year.Length, 4)), NumberStyles.Any, CultureInfo.InvariantCulture, out parsedYear))
                     {
                         item.ProductionYear = parsedYear;

+ 1 - 3
MediaBrowser.Providers/Omdb/OmdbProvider.cs

@@ -43,9 +43,7 @@ namespace MediaBrowser.Providers.Omdb
             {
                 Url = url,
                 ResourcePool = ResourcePool,
-                CancellationToken = cancellationToken,
-                CacheMode = CacheMode.Unconditional,
-                CacheLength = TimeSpan.FromDays(7)
+                CancellationToken = cancellationToken
 
             }).ConfigureAwait(false))
             {