From a3f2ef6ec6bc78f246929c8da7f5ed8def229a4d Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Thu, 5 Jan 2012 22:29:02 -0800 Subject: [PATCH] Added some logging and error handling to XbmcProvider. Increased Json timeout to 20 seconds. --- NzbDrone.Core/Providers/Core/HttpProvider.cs | 2 +- NzbDrone.Core/Providers/XbmcProvider.cs | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/NzbDrone.Core/Providers/Core/HttpProvider.cs b/NzbDrone.Core/Providers/Core/HttpProvider.cs index 69cbd25ab..c3856f354 100644 --- a/NzbDrone.Core/Providers/Core/HttpProvider.cs +++ b/NzbDrone.Core/Providers/Core/HttpProvider.cs @@ -89,7 +89,7 @@ namespace NzbDrone.Core.Providers.Core request.Method = "POST"; request.Credentials = new NetworkCredential(username, password); request.ContentType = "application/json"; - request.Timeout = 10000; + request.Timeout = 20000; request.KeepAlive = false; //Used to hold the JSON response diff --git a/NzbDrone.Core/Providers/XbmcProvider.cs b/NzbDrone.Core/Providers/XbmcProvider.cs index 9ca616835..dc71d01d4 100644 --- a/NzbDrone.Core/Providers/XbmcProvider.cs +++ b/NzbDrone.Core/Providers/XbmcProvider.cs @@ -110,14 +110,22 @@ namespace NzbDrone.Core.Providers { //Use Json! var xbmcShows = GetTvShowsJson(host, username, password); - var path = xbmcShows.Where(s => s.ImdbNumber == series.SeriesId || s.Label == series.Title).FirstOrDefault(); + + TvShow path = null; + + //Log if response is null, otherwise try to find XBMC's path for series + if (xbmcShows == null) + Logger.Trace("Failed to get TV Shows from XBMC"); + + else + path = xbmcShows.FirstOrDefault(s => s.ImdbNumber == series.SeriesId || s.Label == series.Title); var hostOnly = GetHostWithoutPort(host); if (path != null) { - Logger.Trace("Updating series [{0}] on XBMC host: {1}", series.Title, host); - var command = String.Format("ExecBuiltIn(UpdateLibrary(video,{0}))", path.File); + Logger.Trace("Updating series [{0}] (Path: {1}) on XBMC host: {2}", series.Title, path.File, host); + var command = String.Format("ExecBuiltIn(UpdateLibrary(video, {0}))", path.File); _eventClientProvider.SendAction(hostOnly, ActionType.ExecBuiltin, command); }