Пример #1
0
        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));
        }
Пример #2
0
        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++;
            }
        }
Пример #3
0
        /// <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);
        }