コード例 #1
0
        private void GivenMetadata(int seasonRatingKey, ref PlexMediaContainer metadata)
        {
            if (metadata == null)
            {
                metadata = new PlexMediaContainerBuilder().Build();
            }

            _plexApi.GetMetadata(Arg.Any <string>(), Arg.Any <string>(), Arg.Is(seasonRatingKey)).Returns(metadata);
        }
コード例 #2
0
        private void GivenPlexMetadata(bool metadataExists)
        {
            _plexMetadataContainer = new PlexMediaContainerBuilder().Build();

            if (!metadataExists)
            {
                _plexMetadataContainer.MediaContainer.Metadata = null;
            }

            _plexApi.GetMetadata(Arg.Any <string>(), Arg.Any <string>(), Arg.Any <int>()).Returns(_plexMetadataContainer);
        }
コード例 #3
0
        private async Task <Metadata> TryGetPlexMetadata(int ratingKey, string authToken, string plexUri)
        {
            var metadataContainer = await _plexApi.GetMetadata(authToken, plexUri, ratingKey);

            var metadata = metadataContainer.MediaContainer.Metadata?.FirstOrDefault();

            if (metadata == null)
            {
                _logger.LogError($"No metadata was found for the container with key: {ratingKey}");
                return(null);
            }

            return(metadata);
        }
コード例 #4
0
ファイル: RefreshMetadata.cs プロジェクト: Ombi-app/Ombi
        private async Task StartPlexMovies(List <PlexServerContent> allMovies, PlexSettings settings)
        {
            foreach (var movie in allMovies)
            {
                // Just double check there is no associated request id
                if (movie.RequestId.HasValue)
                {
                    continue;
                }
                var hasImdb       = movie.ImdbId.HasValue();
                var hasTheMovieDb = movie.TheMovieDbId.HasValue();
                // Movies don't really use TheTvDb

                if (!hasImdb)
                {
                    var imdbId = await GetImdbId(hasTheMovieDb, false, movie.Title, movie.TheMovieDbId, string.Empty, RequestType.Movie);

                    if (imdbId.HasValue())
                    {
                        movie.ImdbId = imdbId;
                        hasImdb      = true;
                        _plexRepo.UpdateWithoutSave(movie);
                    }
                }
                if (!hasTheMovieDb)
                {
                    var id = await GetTheMovieDbId(false, hasImdb, string.Empty, movie.ImdbId, movie.Title, true);

                    if (id.HasValue())
                    {
                        movie.TheMovieDbId = id;
                        hasTheMovieDb      = true;
                        _plexRepo.UpdateWithoutSave(movie);
                    }
                }
                if (!hasTheMovieDb || !hasImdb)
                {
                    // Check to see if the Plex item has anything
                    if (!settings.Servers.Any())
                    {
                        continue;
                    }
                    var servers  = settings.Servers[0];
                    var metaData = await _plexApi.GetMetadata(servers.PlexAuthToken, settings.Servers[0].FullUri, movie.Key);

                    var guids = new List <string>();

                    var meta = metaData.MediaContainer.Metadata.FirstOrDefault();
                    guids.Add(meta.guid);
                    if (meta.Guid != null)
                    {
                        foreach (var g in meta.Guid)
                        {
                            guids.Add(g.Id);
                        }
                    }

                    var providerIds = PlexHelper.GetProviderIdsFromMetadata(guids.ToArray());
                    if (providerIds.Any())
                    {
                        if (providerIds.TheMovieDb.HasValue() && !hasTheMovieDb)
                        {
                            movie.TheMovieDbId = providerIds.TheMovieDb;
                            _plexRepo.UpdateWithoutSave(movie);
                        }
                        if (providerIds.ImdbId.HasValue() && !hasImdb)
                        {
                            movie.ImdbId = providerIds.ImdbId;
                            _plexRepo.UpdateWithoutSave(movie);
                        }
                    }
                }

                await _plexRepo.SaveChangesAsync();
            }
        }