Fixed: Logging invalid version when failing to connect to Kodi

Closes #927
pull/6/head
Mark McDowall 9 years ago
parent b02b9f026f
commit ea6ae85f7a

@ -1,6 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Net;
using FluentValidation.Results; using FluentValidation.Results;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using NLog; using NLog;
@ -59,32 +60,27 @@ namespace NzbDrone.Core.Notifications.Xbmc
private XbmcVersion GetJsonVersion(XbmcSettings settings) private XbmcVersion GetJsonVersion(XbmcSettings settings)
{ {
try return _xbmcVersionCache.Get(settings.Address, () =>
{ {
return _xbmcVersionCache.Get(settings.Address, () => var response = _proxy.GetJsonVersion(settings);
{
var response = _proxy.GetJsonVersion(settings);
_logger.Debug("Getting version from response: " + response);
var result = Json.Deserialize<XbmcJsonResult<JObject>>(response);
var versionObject = result.Result.Property("version"); _logger.Debug("Getting version from response: " + response);
var result = Json.Deserialize<XbmcJsonResult<JObject>>(response);
if (versionObject.Value.Type == JTokenType.Integer) return new XbmcVersion((int) versionObject.Value); var versionObject = result.Result.Property("version");
if (versionObject.Value.Type == JTokenType.Object) return Json.Deserialize<XbmcVersion>(versionObject.Value.ToString()); if (versionObject.Value.Type == JTokenType.Integer)
{
throw new InvalidCastException("Unknown Version structure!: " + versionObject); return new XbmcVersion((int)versionObject.Value);
}, TimeSpan.FromHours(12)); }
}
catch (Exception ex) if (versionObject.Value.Type == JTokenType.Object)
{ {
_logger.DebugException(ex.Message, ex); return Json.Deserialize<XbmcVersion>(versionObject.Value.ToString());
} }
return new XbmcVersion(); throw new InvalidCastException("Unknown Version structure!: " + versionObject);
}, TimeSpan.FromHours(12));
} }
private IApiProvider GetApiProvider(XbmcSettings settings) private IApiProvider GetApiProvider(XbmcSettings settings)

Loading…
Cancel
Save