示例#1
0
        public UpdateResults Update(DBMovieInfo movie)
        {
            if (movie == null)
            {
                return(UpdateResults.FAILED);
            }

            string mmId = getMovieMeterID(movie);

            if (mmId == null)
            {
                // Need id
                return(UpdateResults.FAILED_NEED_ID);
            }
            else
            {
                // Update the movie
                DBMovieInfo newMovie = getMovieDetails(mmId);
                if (newMovie != null)
                {
                    movie.CopyUpdatableValues(newMovie);
                    return(UpdateResults.SUCCESS);
                }
            }

            return(UpdateResults.FAILED);
        }
示例#2
0
        public UpdateResults Update(DBMovieInfo movie)
        {
            if (movie == null)
            {
                return(UpdateResults.FAILED);
            }

            string tmdbId = getTheMovieDbId(movie, false);

            // check if TMDb id is still null, if so request id.
            if (string.IsNullOrEmpty(tmdbId))
            {
                return(UpdateResults.FAILED_NEED_ID);
            }

            // Grab the movie using the TMDb ID
            DBMovieInfo newMovie = getMovieInformation(tmdbId);

            if (newMovie != null)
            {
                movie.GetSourceMovieInfo(SourceInfo).Identifier = tmdbId;
                movie.CopyUpdatableValues(newMovie);
                return(UpdateResults.SUCCESS);
            }
            else
            {
                return(UpdateResults.FAILED);
            }
        }
示例#3
0
        public UpdateResults Update(DBMovieInfo movie)
        {
            if (movie == null)
            {
                return(UpdateResults.FAILED);
            }

            if (movie != null)
            {
                movie.CopyUpdatableValues(movie);
                return(UpdateResults.SUCCESS);
            }
            return(UpdateResults.FAILED);
        }
示例#4
0
        public UpdateResults Update(DBMovieInfo movie)
        {
            if (scraper == null)
            {
                return(UpdateResults.FAILED);
            }

            Dictionary <string, string> paramList = new Dictionary <string, string>();
            Dictionary <string, string> results;
            bool hasSiteId = false;

            // try to load the id for the movie for this script
            // if we have no site id still continue as we might still
            // be able to grab details using another identifier such as imdb_id
            DBSourceMovieInfo idObj = movie.GetSourceMovieInfo(ScriptID);

            if (idObj != null && idObj.Identifier != null)
            {
                paramList["movie.site_id"] = idObj.Identifier;
                hasSiteId = true;
            }

            // load params
            foreach (DBField currField in DBField.GetFieldList(typeof(DBMovieInfo)))
            {
                if (currField.AutoUpdate && currField.GetValue(movie) != null)
                {
                    paramList["movie." + currField.FieldName] = currField.GetValue(movie).ToString().Trim();
                }
            }

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

            // try to retrieve results
            results = scraper.Execute("get_details", paramList);
            if (results == null)
            {
                logger.Error(Name + " scraper script failed to execute \"get_details\" node.");
                return(UpdateResults.FAILED);
            }

            if (!hasSiteId)
            {
                // if we started out without a site id
                // try to get it from the details response
                string siteId;
                if (results.TryGetValue("movie.site_id", out siteId))
                {
                    movie.GetSourceMovieInfo(ScriptID).Identifier = siteId;
                }
                else
                {
                    // still no site id, so we are returning
                    return(UpdateResults.FAILED_NEED_ID);
                }
            }

            // get our new movie details
            DBMovieInfo newMovie = new DBMovieInfo();

            foreach (DBField currField in DBField.GetFieldList(typeof(DBMovieInfo)))
            {
                string value;
                bool   success = results.TryGetValue("movie." + currField.FieldName, out value);

                if (success && value.Trim().Length > 0)
                {
                    currField.SetValue(newMovie, value.Trim());
                }
            }

            // and update as necessary
            movie.CopyUpdatableValues(newMovie);

            return(UpdateResults.SUCCESS);
        }