aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Providers/Music/MusicBrainzAlbumProvider.cs38
-rw-r--r--MediaBrowser.Providers/Music/MusicBrainzArtistProvider.cs12
2 files changed, 40 insertions, 10 deletions
diff --git a/MediaBrowser.Providers/Music/MusicBrainzAlbumProvider.cs b/MediaBrowser.Providers/Music/MusicBrainzAlbumProvider.cs
index 6bda0278c..844614791 100644
--- a/MediaBrowser.Providers/Music/MusicBrainzAlbumProvider.cs
+++ b/MediaBrowser.Providers/Music/MusicBrainzAlbumProvider.cs
@@ -7,6 +7,7 @@ using MediaBrowser.Model.Logging;
using MediaBrowser.Model.Providers;
using System;
using System.Collections.Generic;
+using System.Globalization;
using System.IO;
using System.Linq;
using System.Net;
@@ -266,7 +267,7 @@ namespace MediaBrowser.Providers.Music
reader.MoveToContent();
// Loop through each element
- while (reader.Read())
+ while (!reader.EOF)
{
if (reader.NodeType == XmlNodeType.Element)
{
@@ -287,6 +288,10 @@ namespace MediaBrowser.Providers.Music
}
}
}
+ else
+ {
+ reader.Read();
+ }
}
return list;
@@ -299,7 +304,7 @@ namespace MediaBrowser.Providers.Music
reader.MoveToContent();
// Loop through each element
- while (reader.Read())
+ while (!reader.EOF)
{
if (reader.NodeType == XmlNodeType.Element)
{
@@ -326,6 +331,10 @@ namespace MediaBrowser.Providers.Music
}
}
}
+ else
+ {
+ reader.Read();
+ }
}
return list;
@@ -421,7 +430,7 @@ namespace MediaBrowser.Providers.Music
reader.MoveToContent();
// Loop through each element
- while (reader.Read())
+ while (!reader.EOF)
{
if (reader.NodeType == XmlNodeType.Element)
{
@@ -441,6 +450,10 @@ namespace MediaBrowser.Providers.Music
}
}
}
+ else
+ {
+ reader.Read();
+ }
}
return null;
}
@@ -453,7 +466,7 @@ namespace MediaBrowser.Providers.Music
reader.MoveToContent();
// Loop through each element
- while (reader.Read())
+ while (!reader.EOF)
{
if (reader.NodeType == XmlNodeType.Element)
{
@@ -470,6 +483,10 @@ namespace MediaBrowser.Providers.Music
}
}
}
+ else
+ {
+ reader.Read();
+ }
}
return null;
@@ -517,7 +534,9 @@ namespace MediaBrowser.Providers.Music
using (var stream = await _httpClient.Get(options).ConfigureAwait(false))
{
- list = _json.DeserializeFromStream<List<MbzUrl>>(stream);
+ var results = _json.DeserializeFromStream<List<MbzUrl>>(stream);
+
+ list = results;
}
_lastMbzUrlQueryTicks = DateTime.UtcNow.Ticks;
}
@@ -550,11 +569,13 @@ namespace MediaBrowser.Providers.Music
internal async Task<Stream> GetMusicBrainzResponse(string url, bool isSearch, CancellationToken cancellationToken)
{
var urlInfo = await GetMbzUrl().ConfigureAwait(false);
+ var throttleMs = urlInfo.throttleMs;
- if (urlInfo.throttleMs > 0)
+ if (throttleMs > 0)
{
// MusicBrainz is extremely adamant about limiting to one request per second
- await Task.Delay(urlInfo.throttleMs, cancellationToken).ConfigureAwait(false);
+ _logger.Debug("Throttling MusicBrainz by {0}ms", throttleMs.ToString(CultureInfo.InvariantCulture));
+ await Task.Delay(throttleMs, cancellationToken).ConfigureAwait(false);
}
url = urlInfo.url.TrimEnd('/') + url;
@@ -564,7 +585,8 @@ namespace MediaBrowser.Providers.Music
Url = url,
CancellationToken = cancellationToken,
UserAgent = _appHost.Name + "/" + _appHost.ApplicationVersion,
- ResourcePool = _musicBrainzResourcePool
+ ResourcePool = _musicBrainzResourcePool,
+ BufferContent = throttleMs > 0
};
return await _httpClient.Get(options).ConfigureAwait(false);
diff --git a/MediaBrowser.Providers/Music/MusicBrainzArtistProvider.cs b/MediaBrowser.Providers/Music/MusicBrainzArtistProvider.cs
index d670c8de1..f752a85cb 100644
--- a/MediaBrowser.Providers/Music/MusicBrainzArtistProvider.cs
+++ b/MediaBrowser.Providers/Music/MusicBrainzArtistProvider.cs
@@ -88,7 +88,7 @@ namespace MediaBrowser.Providers.Music
reader.MoveToContent();
// Loop through each element
- while (reader.Read())
+ while (!reader.EOF)
{
if (reader.NodeType == XmlNodeType.Element)
{
@@ -108,6 +108,10 @@ namespace MediaBrowser.Providers.Music
}
}
}
+ else
+ {
+ reader.Read();
+ }
}
return new List<RemoteSearchResult>();
@@ -122,7 +126,7 @@ namespace MediaBrowser.Providers.Music
reader.MoveToContent();
// Loop through each element
- while (reader.Read())
+ while (!reader.EOF)
{
if (reader.NodeType == XmlNodeType.Element)
{
@@ -149,6 +153,10 @@ namespace MediaBrowser.Providers.Music
}
}
}
+ else
+ {
+ reader.Read();
+ }
}
return list;