private string CreateLookupKey(MediaItem episode) { string tvdbId = MediaItemAspectsUtl.GetTvdbId(episode); int seasonIndex = MediaItemAspectsUtl.GetSeasonIndex(episode); int episodeIndex = MediaItemAspectsUtl.GetEpisodeNumbers(episode).FirstOrDefault(); return(string.Format("{0}_{1}_{2}", tvdbId, seasonIndex, episodeIndex)); }
private void IncreaseResultCount(RestoreResult result, MediaItem episode) { List <int> episodeNumbers = MediaItemAspectsUtl.GetEpisodeNumbers(episode); bool isMultiEpisode = episodeNumbers.Count > 1; if (isMultiEpisode) { result.MarkedWatchedCount = result.MarkedWatchedCount + episodeNumbers.Count; } else { result.MarkedWatchedCount++; } }
/// <inheritdoc /> public BackupResult BackupSeries(string path) { BackupResult result = new BackupResult { WatchedCount = 0, CollectedCount = 0 }; Guid[] types = { MediaAspect.ASPECT_ID, EpisodeAspect.ASPECT_ID, VideoAspect.ASPECT_ID, ImporterAspect.ASPECT_ID, ProviderResourceAspect.ASPECT_ID, ExternalIdentifierAspect.ASPECT_ID }; IContentDirectory contentDirectory = GetContentDirectory(); Guid?userProfile = GetUserProfileId(); IList <MediaItem> collectedEpisodeMediaItems = contentDirectory.Search(new MediaItemQuery(types, null, null), true, userProfile, false); foreach (MediaItem collectedEpisodeMediaItem in collectedEpisodeMediaItems) { List <int> episodeNumbers = MediaItemAspectsUtl.GetEpisodeNumbers(collectedEpisodeMediaItem); result.CollectedCount = result.CollectedCount + episodeNumbers.Count; } List <MediaItem> watchedEpisodeMediaItems = collectedEpisodeMediaItems.Where(MediaItemAspectsUtl.IsWatched).ToList(); _mediaPortalServices.GetLogger().Info("watched {0}", watchedEpisodeMediaItems.Count); IList <MediaLibraryEpisode> watchedEpisodes = new List <MediaLibraryEpisode>(); foreach (MediaItem watchedEpisodeItem in watchedEpisodeMediaItems) { List <int> episodeNumbers = MediaItemAspectsUtl.GetEpisodeNumbers(watchedEpisodeItem); _mediaPortalServices.GetLogger().Info("FlagMover: ep numb: {0}", episodeNumbers.Count); if (episodeNumbers.Any()) { AddEpisodes(watchedEpisodes, watchedEpisodeItem, episodeNumbers); } else { _mediaPortalServices.GetLogger().Warn("FlagMover: Skipping series episode without episode number."); } } SaveLibraryEpisodes(path, watchedEpisodes); result.WatchedCount = watchedEpisodes.Count; return(result); }