Fixed: Refreshing anime series won't cause an error

This commit is contained in:
Mark McDowall
2015-01-03 17:02:45 -08:00
parent c8993db2ad
commit 4f0ca20808
9 changed files with 14 additions and 146 deletions
@@ -160,12 +160,13 @@ namespace NzbDrone.Core.MetadataSource
return series;
}
private static Tv.Episode MapEpisode(TVDBSharp.Models.Episode traktEpisode)
private static Episode MapEpisode(TVDBSharp.Models.Episode traktEpisode)
{
var episode = new Tv.Episode();
var episode = new Episode();
episode.Overview = traktEpisode.Description;
episode.SeasonNumber = traktEpisode.SeasonNumber;
episode.EpisodeNumber = traktEpisode.EpisodeNumber;
episode.AbsoluteEpisodeNumber = traktEpisode.AbsoluteEpisodeNumber;
episode.Title = traktEpisode.Title;
if (traktEpisode.FirstAired != null)
@@ -1,52 +0,0 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Xml.Linq;
using NzbDrone.Common.Extensions;
using NzbDrone.Common.Http;
using NzbDrone.Core.Indexers;
using NzbDrone.Core.Tv;
namespace NzbDrone.Core.MetadataSource.Tvdb
{
public interface ITvdbProxy
{
List<Episode> GetEpisodeInfo(int tvdbSeriesId);
}
public class TvdbProxy : ITvdbProxy
{
private readonly IHttpClient _httpClient;
public TvdbProxy(IHttpClient httpClient)
{
_httpClient = httpClient;
}
public List<Episode> GetEpisodeInfo(int tvdbSeriesId)
{
var httpRequest = new HttpRequest("http://thetvdb.com/data/series/{tvdbId}/all/");
httpRequest.AddSegment("tvdbId", tvdbSeriesId.ToString());
var response = _httpClient.Get(httpRequest);
var xml = XDocument.Load(new StringReader(response.Content));
var episodes = xml.Descendants("Episode").Select(MapEpisode).ToList();
return episodes;
}
private static Episode MapEpisode(XElement item)
{
//TODO: We should map all the data incase we want to actually use it
var episode = new Episode();
episode.SeasonNumber = item.TryGetValue("SeasonNumber", 0);
episode.EpisodeNumber = item.TryGetValue("EpisodeNumber", 0);
if (item.TryGetValue("absolute_number").IsNotNullOrWhiteSpace())
{
episode.AbsoluteEpisodeNumber = item.TryGetValue("absolute_number", 0);
}
return episode;
}
}
}