diff --git a/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs b/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs index b73370eb2..296a1aa5c 100644 --- a/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs +++ b/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs @@ -492,9 +492,43 @@ namespace NzbDrone.Core.MetadataSource.SkyHook if (result.release_date.IsNotNullOrWhiteSpace()) { - imdbMovie.Year = DateTime.Parse(result.release_date).Year; + imdbMovie.InCinemas = DateTime.Parse(result.release_date); + imdbMovie.Year = imdbMovie.InCinemas.Value.Year; } + var now = DateTime.Now; + //handle the case when we have both theatrical and physical release dates + if (imdbMovie.InCinemas.HasValue && imdbMovie.PhysicalRelease.HasValue) + { + if (now < imdbMovie.InCinemas) + imdbMovie.Status = MovieStatusType.Announced; + else if (now >= imdbMovie.InCinemas) + imdbMovie.Status = MovieStatusType.InCinemas; + if (now >= imdbMovie.PhysicalRelease) + imdbMovie.Status = MovieStatusType.Released; + } + //handle the case when we have theatrical release dates but we dont know the physical release date + else if (imdbMovie.InCinemas.HasValue && (now >= imdbMovie.InCinemas)) + { + imdbMovie.Status = MovieStatusType.InCinemas; + } + //handle the case where we only have a physical release date + else if (imdbMovie.PhysicalRelease.HasValue && (now >= imdbMovie.PhysicalRelease)) + { + imdbMovie.Status = MovieStatusType.Released; + } + //otherwise the title has only been announced + else + { + imdbMovie.Status = MovieStatusType.Announced; + } + + //since TMDB lacks alot of information lets assume that stuff is released if its been in cinemas for longer than 3 months. + if (!imdbMovie.PhysicalRelease.HasValue && (imdbMovie.Status == MovieStatusType.InCinemas) && (((DateTime.Now).Subtract(imdbMovie.InCinemas.Value)).TotalSeconds > 60 * 60 * 24 * 30 * 3)) + { + imdbMovie.Status = MovieStatusType.Released; + } + imdbMovie.TitleSlug += "-" + imdbMovie.TmdbId; imdbMovie.Images = new List(); diff --git a/src/UI/AddMovies/SearchResultViewTemplate.hbs b/src/UI/AddMovies/SearchResultViewTemplate.hbs index a28072622..3329c4709 100644 --- a/src/UI/AddMovies/SearchResultViewTemplate.hbs +++ b/src/UI/AddMovies/SearchResultViewTemplate.hbs @@ -17,9 +17,15 @@ {{network}} - {{#unless_eq status compare="announced"}} - Released - {{/unless_eq}} + {{#if_eq status compare="announced"}} + Announced + {{/if_eq}} + {{#if_eq status compare="released"}} + Released + {{/if_eq}} + {{#if_eq status compare="inCinemas"}} + In Cinemas + {{/if_eq}}