123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- using MediaBrowser.Controller.Entities.TV;
- using MediaBrowser.Controller.Library;
- using MediaBrowser.Controller.Resolvers;
- using MediaBrowser.Model.Entities;
- using System;
- namespace MediaBrowser.Server.Implementations.Library.Resolvers.TV
- {
- /// <summary>
- /// Class EpisodeResolver
- /// </summary>
- public class EpisodeResolver : BaseVideoResolver<Episode>
- {
- /// <summary>
- /// Resolves the specified args.
- /// </summary>
- /// <param name="args">The args.</param>
- /// <returns>Episode.</returns>
- protected override Episode Resolve(ItemResolveArgs args)
- {
- var season = args.Parent as Season;
- // If the parent is a Season or Series, then this is an Episode if the VideoResolver returns something
- if (season != null || args.Parent is Series)
- {
- Episode episode = null;
- if (args.IsDirectory)
- {
- if (args.ContainsFileSystemEntryByName("video_ts"))
- {
- episode = new Episode
- {
- Path = args.Path,
- VideoType = VideoType.Dvd
- };
- }
- if (args.ContainsFileSystemEntryByName("bdmv"))
- {
- episode = new Episode
- {
- Path = args.Path,
- VideoType = VideoType.BluRay
- };
- }
- }
- if (episode == null)
- {
- episode = base.Resolve(args);
- }
- if (episode != null)
- {
- episode.IndexNumber = TVUtils.GetEpisodeNumberFromFile(args.Path, season != null);
- episode.IndexNumberEnd = TVUtils.GetEndingEpisodeNumberFromFile(args.Path);
- if (season != null)
- {
- episode.ParentIndexNumber = season.IndexNumber;
- }
-
- if (episode.ParentIndexNumber == null)
- {
- episode.ParentIndexNumber = TVUtils.GetSeasonNumberFromEpisodeFile(args.Path);
- }
- }
- return episode;
- }
- return null;
- }
- /// <summary>
- /// Sets the initial item values.
- /// </summary>
- /// <param name="item">The item.</param>
- /// <param name="args">The args.</param>
- protected override void SetInitialItemValues(Episode item, ItemResolveArgs args)
- {
- base.SetInitialItemValues(item, args);
- //fill in our season and series ids
- var season = args.Parent as Season;
- if (season != null)
- {
- item.SeasonItemId = season.Id;
- var series = season.Parent as Series;
- if (series != null)
- {
- item.SeriesItemId = series.Id;
- }
- }
- else
- {
- var series = args.Parent as Series;
- item.SeriesItemId = series != null ? series.Id : Guid.Empty;
- }
- }
- }
- }
|