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); }
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); }
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); }
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); }
private void rescanButton_Click(object sender, EventArgs e) { MovieSignature signature = new MovieSignature(); signature.Title = possibleMatchesCombo.Text; mediaMatch.Signature = signature; MovingPicturesCore.Importer.Reprocess(mediaMatch); }
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); }
public List <DBMovieInfo> Get(MovieSignature movieSignature) { return(new List <DBMovieInfo>()); }
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); }
public List <DBMovieInfo> Get(MovieSignature movieSignature) { throw new NotImplementedException(); }