1
0
mirror of https://github.com/Radarr/Radarr.git synced 2024-09-17 15:02:34 +02:00

Fixed: filter duplicated episodes returned from Trakt

http://support.trakt.tv/forums/188762-general/suggestions/4430690-anger-management-duplicate-episode
This commit is contained in:
Keivan Beigi 2014-10-14 16:33:49 -07:00
parent ab264b3c06
commit f44fd5fcbd
3 changed files with 15 additions and 14 deletions

View File

@ -1,4 +1,5 @@
using System;
using System.Diagnostics;
using System.Globalization;
using System.Runtime.InteropServices;
@ -50,6 +51,7 @@ static OsInfo()
[DllImport("libc")]
static extern int uname(IntPtr buf);
[DebuggerStepThrough]
static bool IsRunningOnMac()
{
var buf = IntPtr.Zero;

View File

@ -103,8 +103,8 @@ private void ValidateEpisodes(List<Episode> episodes)
{
episodes.Should().NotBeEmpty();
episodes.GroupBy(e => e.SeasonNumber.ToString("000") + e.EpisodeNumber.ToString("000"))
.Max(e => e.Count()).Should().Be(1);
var episodeGroup= episodes.GroupBy(e => e.SeasonNumber.ToString("000") + e.EpisodeNumber.ToString("000"));
episodeGroup.Should().OnlyContain(c=>c.Count() == 1);
episodes.Should().Contain(c => c.SeasonNumber > 0);
episodes.Should().Contain(c => !string.IsNullOrWhiteSpace(c.Overview));

View File

@ -110,22 +110,21 @@ public Tuple<Series, List<Episode>> GetSeriesInfo(int tvdbSeriesId)
var response = _httpClient.Get<Show>(request).Resource;
/*
var episodes = response.seasons.SelectMany(c => c.episodes).Select(MapEpisode);
var client = BuildClient("show", "summary");
var restRequest = new RestRequest(tvdbSeriesId + "/extended");
var response = client.ExecuteAndValidate<Show>(restRequest);*/
var episodes = response.seasons.SelectMany(c => c.episodes).Select(MapEpisode).ToList();
episodes = RemoveDuplicates(episodes);
var series = MapSeries(response);
return new Tuple<Series, List<Episode>>(series, episodes);
return new Tuple<Series, List<Episode>>(series, episodes.ToList());
}
private static IEnumerable<Episode> RemoveDuplicates(IEnumerable<Episode> episodes)
{
//http://support.trakt.tv/forums/188762-general/suggestions/4430690-anger-management-duplicate-episode
var episodeGroup = episodes.GroupBy(e => e.SeasonNumber.ToString("0000") + e.EpisodeNumber.ToString("0000"));
return episodeGroup.Select(g => g.First());
}
/*
private static IRestClient BuildClient(string resource, string method)
{
return RestClientFactory.BuildClient(string.Format("http://api.trakt.tv/{0}/{1}.json/bc3c2c460f22cbb01c264022b540e191", resource, method));
}*/
private static Series MapSeries(Show show)
{