Ejemplo n.º 1
0
        public List <DBMovieInfo> Get(MovieSignature movieSignature)
        {
            List <DBMovieInfo> results = new List <DBMovieInfo>();

            if (movieSignature == null)
            {
                return(results);
            }

            DBMovieInfo movie = null;

            if (movieSignature.ImdbId != null)
            {
                movie = getMovieByImdb(movieSignature.ImdbId);
            }

            if (movie != null)
            {
                results.Add(movie);
            }
            else
            {
                results = getMoviesByTitle(movieSignature.Title);
            }

            return(results);
        }
Ejemplo n.º 2
0
        public static MovieSignature parseMediaMatch(MovieMatch movieMatch)
        {
            lock (loadingLock) {
                if (signatureBuilders == null)
                {
                    signatureBuilders = new List <ISignatureBuilder>();
                    signatureBuilders.Add(new HashBuilder());
                    signatureBuilders.Add(new LocalBuilder());
                    signatureBuilders.Add(new BlurayMetaBuilder());
                    signatureBuilders.Add(new MetaServicesBuilder());
                    signatureBuilders.Add(new NfoBuilder());
                    signatureBuilders.Add(new ImdbBuilder());
                }
            }

            MovieSignature movieSignature = new MovieSignature(movieMatch.LocalMedia);

            foreach (ISignatureBuilder builder in signatureBuilders)
            {
                SignatureBuilderResult result = builder.UpdateSignature(movieSignature);
                // if a builder returns CONCLUSIVE it has updated the signature with
                // what is believed to be accurate data and we can exit the loop
                // Currently only the Hash and Imdb builder can return this status
                if (result == SignatureBuilderResult.CONCLUSIVE)
                {
                    break;
                }
            }

            return(movieSignature);
        }
Ejemplo n.º 3
0
        public List <DBMovieInfo> Get(MovieSignature movieSignature)
        {
            List <DBMovieInfo> results = new List <DBMovieInfo>();

            if (movieSignature == null)
            {
                return(results);
            }

            if (movieSignature.ImdbId != null && movieSignature.ImdbId.Trim().Length == 9)
            {
                DBMovieInfo movie = getMovieInformation(movieSignature.ImdbId.Trim());
                if (movie != null)
                {
                    results.Add(movie);
                    return(results);
                }
            }

            // grab results, if year based search comes up dry, search without a year
            results = Search(movieSignature.Title, movieSignature.Year);
            if (results.Count == 0)
            {
                results = Search(movieSignature.Title);
            }

            return(results);
        }
Ejemplo n.º 4
0
        public List <DBMovieInfo> Get(MovieSignature movieSignature)
        {
            List <DBMovieInfo> results = new List <DBMovieInfo>();

            if (movieSignature == null)
            {
                return(results);
            }

            string idMovie = getMovieID(movieSignature.File);

            if (idMovie == String.Empty)
            {
                return(results);
            }

            DBMovieInfo movie = this.getMovieInfo(idMovie);

            if (movie == null)
            {
                return(results);
            }

            results.Add(movie);
            return(results);
        }
Ejemplo n.º 5
0
        private void rescanButton_Click(object sender, EventArgs e)
        {
            MovieSignature signature = new MovieSignature();

            signature.Title      = possibleMatchesCombo.Text;
            mediaMatch.Signature = signature;
            MovingPicturesCore.Importer.Reprocess(mediaMatch);
        }
Ejemplo n.º 6
0
        public List <DBMovieInfo> Get(MovieSignature movieSignature)
        {
            List <DBSourceInfo> sources;

            lock (detailSources) sources = new List <DBSourceInfo>(detailSources);

            // Try each datasource (ordered by their priority) to get results
            List <DBMovieInfo> results = new List <DBMovieInfo>();

            foreach (DBSourceInfo currSource in sources)
            {
                if (currSource.IsDisabled(DataType.DETAILS))
                {
                    continue;
                }

                // if we have reached the minimum number of possible matches required, we are done
                if (results.Count >= MovingPicturesCore.Settings.MinimumMatches &&
                    MovingPicturesCore.Settings.MinimumMatches != 0)
                {
                    break;
                }

                // search with the current provider
                List <DBMovieInfo> newResults = currSource.Provider.Get(movieSignature);

                // tag the results with the current source
                foreach (DBMovieInfo currMovie in newResults)
                {
                    currMovie.PrimarySource = currSource;
                }

                // add results to our total result list and log what we found
                results.AddRange(newResults);
                logger.Debug("SEARCH: Title='{0}', Provider='{1}', Version={2}, Number of Results={3}", movieSignature.Title, currSource.Provider.Name, currSource.Provider.Version, newResults.Count);
            }

            return(results);
        }
Ejemplo n.º 7
0
 public List <DBMovieInfo> Get(MovieSignature movieSignature)
 {
     return(new List <DBMovieInfo>());
 }
Ejemplo n.º 8
0
        public List <DBMovieInfo> Get(MovieSignature movieSignature)
        {
            if (scraper == null)
            {
                return(null);
            }

            List <DBMovieInfo>          rtn       = new List <DBMovieInfo>();
            Dictionary <string, string> paramList = new Dictionary <string, string>();
            Dictionary <string, string> results;

            if (movieSignature.Title != null)
            {
                paramList["search.title"] = movieSignature.Title;
            }
            if (movieSignature.Keywords != null)
            {
                paramList["search.keywords"] = movieSignature.Keywords;
            }
            if (movieSignature.Year != null)
            {
                paramList["search.year"] = movieSignature.Year.ToString();
            }
            if (movieSignature.ImdbId != null)
            {
                paramList["search.imdb_id"] = movieSignature.ImdbId;
            }
            if (movieSignature.DiscId != null)
            {
                paramList["search.disc_id"] = movieSignature.DiscId;
            }
            if (movieSignature.MovieHash != null)
            {
                paramList["search.moviehash"] = movieSignature.MovieHash;
            }
            if (movieSignature.Path != null)
            {
                paramList["search.basepath"] = movieSignature.Path;
            }
            if (movieSignature.Folder != null)
            {
                paramList["search.foldername"] = movieSignature.Folder;
            }
            if (movieSignature.File != null)
            {
                paramList["search.filename"] = movieSignature.File;
            }

            //set higher level settings for script to use
            paramList["settings.defaultuseragent"] = MovingPicturesCore.Settings.UserAgent;
            paramList["settings.mepo_data"]        = Config.GetFolder(Config.Dir.Config);

            // this variable is the filename without extension (and a second one without stackmarkers)
            if (!String.IsNullOrEmpty(movieSignature.File))
            {
                paramList["search.filename_noext"] = Path.GetFileNameWithoutExtension(movieSignature.File);
                paramList["search.clean_filename"] = Utility.GetFileNameWithoutExtensionAndStackMarkers(movieSignature.File);
            }

            results = scraper.Execute("search", paramList);
            if (results == null)
            {
                logger.Error(Name + " scraper script failed to execute \"search\" node.");
                return(rtn);
            }

            int count = 0;

            // The movie result is only valid if the script supplies a unique site
            while (results.ContainsKey("movie[" + count + "].site_id"))
            {
                string siteId;
                string prefix = "movie[" + count + "].";
                count++;

                // if the result does not yield a site id it's not valid so skip it
                if (!results.TryGetValue(prefix + "site_id", out siteId))
                {
                    continue;
                }

                // if this movie was already added skip it
                if (rtn.Exists(delegate(DBMovieInfo item) { return(item.GetSourceMovieInfo(ScriptID).Identifier == siteId); }))
                {
                    continue;
                }

                // if this movie does not have a valid title, don't bother
                if (!results.ContainsKey(prefix + "title"))
                {
                    continue;
                }

                // We passed all checks so create a new movie object
                DBMovieInfo newMovie = new DBMovieInfo();

                // store the site id in the new movie object
                newMovie.GetSourceMovieInfo(ScriptID).Identifier = siteId;

                // Try to store all other fields in the new movie object
                foreach (DBField currField in DBField.GetFieldList(typeof(DBMovieInfo)))
                {
                    string value;
                    if (results.TryGetValue(prefix + currField.FieldName, out value))
                    {
                        currField.SetValue(newMovie, value.Trim());
                    }
                }

                // add the movie to our movie results list
                rtn.Add(newMovie);
            }

            return(rtn);
        }
Ejemplo n.º 9
0
 public List <DBMovieInfo> Get(MovieSignature movieSignature)
 {
     throw new NotImplementedException();
 }