Fixed: Parsing of some Plex server responses before 1.3

pull/77/head
Mark McDowall 8 years ago
parent 4a149c356b
commit 43d85bf59d

@ -97,12 +97,12 @@ namespace NzbDrone.Core.Notifications.Plex
_logger.Trace("Version response: {0}", response.Content); _logger.Trace("Version response: {0}", response.Content);
CheckForError(response, settings); CheckForError(response, settings);
if (response.Content.Contains("MediaContainer")) if (response.Content.Contains("_children"))
{ {
return Json.Deserialize<PlexResponse<PlexIdentity>>(response.Content).MediaContainer.Version; return Json.Deserialize<PlexIdentity>(response.Content).Version;
} }
return Json.Deserialize<PlexIdentity>(response.Content).Version; return Json.Deserialize<PlexResponse<PlexIdentity>>(response.Content).MediaContainer.Version;
} }
public List<PlexPreference> Preferences(PlexServerSettings settings) public List<PlexPreference> Preferences(PlexServerSettings settings)
@ -114,12 +114,12 @@ namespace NzbDrone.Core.Notifications.Plex
_logger.Trace("Preferences response: {0}", response.Content); _logger.Trace("Preferences response: {0}", response.Content);
CheckForError(response, settings); CheckForError(response, settings);
if (response.Content.Contains("MediaContainer")) if (response.Content.Contains("_children"))
{ {
return Json.Deserialize<PlexResponse<PlexPreferences>>(response.Content).MediaContainer.Preferences; return Json.Deserialize<PlexPreferencesLegacy>(response.Content).Preferences;
} }
return Json.Deserialize<PlexPreferencesLegacy>(response.Content).Preferences; return Json.Deserialize<PlexResponse<PlexPreferences>>(response.Content).MediaContainer.Preferences;
} }
public int? GetMetadataId(int sectionId, int tvdbId, string language, PlexServerSettings settings) public int? GetMetadataId(int sectionId, int tvdbId, string language, PlexServerSettings settings)
@ -240,9 +240,9 @@ namespace NzbDrone.Core.Notifications.Plex
throw new PlexAuthenticationException("Unauthorized - Username or password is incorrect"); throw new PlexAuthenticationException("Unauthorized - Username or password is incorrect");
} }
var error = response.Content.Contains("MediaContainer") ? var error = response.Content.Contains("_children") ?
Json.Deserialize<PlexResponse<PlexError>>(response.Content).MediaContainer : Json.Deserialize<PlexError>(response.Content) :
Json.Deserialize<PlexError>(response.Content); Json.Deserialize<PlexResponse<PlexError>>(response.Content).MediaContainer;
if (error != null && !error.Error.IsNullOrWhiteSpace()) if (error != null && !error.Error.IsNullOrWhiteSpace())
{ {

Loading…
Cancel
Save