Пример #1
0
        public bool GetArtwork(DBMovieInfo movie)
        {
            if (movie == null)
            {
                return(false);
            }

            string mmId = getMovieMeterID(movie);

            if (mmId != null)
            {
                FilmDetail film = Api.GetMovieDetails(mmId);
                if (film != null)
                {
                    if (film.thumbnail != null)
                    {
                        string coverPath = film.thumbnail.Replace(@"/thumbs/", @"/");
                        if (movie.AddCoverFromURL(coverPath) == ImageLoadResults.SUCCESS)
                        {
                            return(true);
                        }
                    }
                }
            }
            return(false);
        }
Пример #2
0
        // GET: Movies/Details/5
        public ActionResult Details(int id)
        {
            FilmDetail filmDetail = ServiceFilm.GetDetails(id);

            filmDetail.AllowEdit = Services.ServiceFilm.AllowToUpdate(id, CurrentUserName());
            return(View(filmDetail));
        }
Пример #3
0
        public ActionResult FilmAdd(FilmDetailsObj fdObj)
        {
            FilmDetail filmdObj = new FilmDetail();

            filmdObj.ActorId    = Convert.ToInt32(fdObj.ActorId);
            filmdObj.MovieID    = Convert.ToInt32(fdObj.MovieId);
            filmdObj.ProducerID = Convert.ToInt32(fdObj.ProducerId);
            datacontxt.FilmDetails.InsertOnSubmit(filmdObj);
            datacontxt.SubmitChanges();
            return(RedirectToAction("Home"));
        }
Пример #4
0
        public ActionResult Edit(int id, FilmDetail firmDetail)
        {
            try
            {
                if (Services.ServiceFilm.AllowToUpdate(id, CurrentUserName()))
                {
                    Services.ServiceFilm.Update(firmDetail);
                    // TODO: Add update logic here
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "У вас нет разрешения!");
                }

                return(RedirectToAction("Index"));
            }
            catch
            {
                return(View());
            }
        }
Пример #5
0
        private bool GetMovie(string mmid)
        {
            bool _result = false;

            try
            {
                int _filmId = Int32.Parse(mmid);
                if (!string.IsNullOrEmpty(mmid))
                {
                    FilmDetail _details = m_apiProxy.RetrieveDetails(getSessionKey(), _filmId);
                    if (_details != null)
                    {
                        MovieInfo _movieInfo = GetMovieInfo(mmid);

                        if (!IsValidYear(_movieInfo.Year))
                        {
                            return(false);
                        }

                        string _imageUrl = string.IsNullOrEmpty(_details.thumbnail) ? null : _details.thumbnail.Replace("/thumbs/", "/");
                        if (_imageUrl != null)
                        {
                            var matches = Regex.Matches(_imageUrl, "(?<A>http://www.moviemeter.nl/images/cover/\\d+/\\d+.)([^\\.]*\\.)(?<B>\\w+)");
                            if (matches.Count != 0)
                            {
                                _imageUrl = matches[0].Groups["A"].Value + matches[0].Groups["B"].Value;
                            }
                        }
                        ResultMovieItem _movieItem = new ResultMovieItem(mmid, _details.title, _imageUrl, this.CollectorName);
                        _movieItem.CollectorMovieUrl = _details.url;
                        _movieItem.MovieInfo         = _movieInfo;
                        ResultsList.Add(_movieItem);
                        _result = true;
                    }
                }
            }
            catch { }

            return(_result);
        }
Пример #6
0
        public static FilmModel MapDetails(FilmDetail filmDetails)
        {
            var response = new FilmModel
            {
                Identifier = filmDetails.ImdbId,
                Title      = filmDetails.Title,
                Poster     = filmDetails.Poster,
                Genre      = filmDetails.Genre,
                Released   = filmDetails.Released,
                Year       = filmDetails.Year,
                Plot       = filmDetails.Plot
            };

            if (filmDetails.Ratings.Count == 0)
            {
                return(response);
            }

            var rating = filmDetails.Ratings.First();

            response.Ratings = $"{rating.Source}: {rating.Value} ";
            return(response);
        }
Пример #7
0
        private DBMovieInfo getMovieDetails(string mmid)
        {
            FilmDetail film = Api.GetMovieDetails(mmid);

            if (film != null)
            {
                DBMovieInfo movie = new DBMovieInfo();
                movie.GetSourceMovieInfo(SourceInfo).Identifier = film.filmId.ToString();

                movie.Title      = film.title.FromSortable();
                movie.Summary    = film.plot;
                movie.ImdbID     = "tt" + film.imdb;
                movie.DetailsURL = film.url;

                // Score (multiply by 2 to get the 1-10 scale)
                if (!String.IsNullOrEmpty(film.average))
                {
                    movie.Score = (Convert.ToSingle(film.average, NumberFormatInfo.InvariantInfo) * 2);
                }

                // Runtime
                int runtime = 0;
                if (int.TryParse(film.duration, out runtime))
                {
                    movie.Runtime = runtime;
                }

                // Year
                int year = 0;
                if (int.TryParse(film.year, out year))
                {
                    movie.Year = year;
                }

                // Try to add the alternative titles
                if (film.alternative_titles != null)
                {
                    foreach (FilmDetail.Title alt in film.alternative_titles)
                    {
                        movie.AlternateTitles.Add(alt.title);
                    }
                }

                // Try to add the genres
                if (film.genres != null)
                {
                    foreach (string genre in film.genres)
                    {
                        movie.Genres.Add(genre);
                    }
                }

                // Try to add the actors
                if (film.actors != null)
                {
                    foreach (FilmDetail.Actor actor in film.actors)
                    {
                        movie.Actors.Add(actor.name);
                    }
                }

                // Try to add the directors
                if (film.directors != null)
                {
                    foreach (FilmDetail.Director director in film.directors)
                    {
                        movie.Directors.Add(director.name);
                    }
                }

                return(movie);
            }
            return(null);
        }
Пример #8
0
        // GET: Movies/Edit/5
        public ActionResult Edit(int id)
        {
            FilmDetail filmDetail = ServiceFilm.GetDetails(id);

            return(View(filmDetail));
        }
Пример #9
0
        public static string GenerateMovieMeterXml(DownloadItem downloadItem, string idType, string value)
        {
            var apiProxy = (IMMApi)XmlRpcProxyGen.Create(typeof(IMMApi));

            const string imdb = "imdb";

            const string search = "search";

            var filmDetail = new FilmDetail();

            if (idType == imdb)
            {
                value = apiProxy.RetrieveByImdb(getSessionKey(), value);
            }
            else if (idType == search)
            {
                var filmlist = apiProxy.Search(getSessionKey(), value);
                if (filmlist.Length > 0)
                {
                    value = filmlist[0].filmId;
                }
                else
                {
                    return string.Empty;
                }
            }

            filmDetail = apiProxy.RetrieveDetails(getSessionKey(), value.ToInt());

            var movieMeter = new MovieMeter();

            using (var stringWriter = new StringWriterWithEncoding(movieMeter.HtmlEncoding))
            {
                using (XmlWriter xmlWriter = XmlWriter.Create(stringWriter))
                {
                    xmlWriter.WriteStartElement("moviemeter");

                    XWrite.WriteEnclosedElement(xmlWriter, "id", filmDetail.filmId);
                    XWrite.WriteEnclosedElement(xmlWriter, "imdbid", filmDetail.imdb);

                    XWrite.WriteEnclosedElement(xmlWriter, "title", filmDetail.title);
                    XWrite.WriteEnclosedElement(xmlWriter, "year", filmDetail.year);

                    foreach (var actor in filmDetail.actors)
                    {
                        XWrite.WriteEnclosedElement(xmlWriter, "actor", actor.name);
                    }

                    foreach (var genre in filmDetail.genres)
                    {
                        XWrite.WriteEnclosedElement(xmlWriter, "genre", genre);
                    }

                    XWrite.WriteEnclosedElement(xmlWriter, "plot", filmDetail.plot);

                    foreach (var actor in filmDetail.directors)
                    {
                        XWrite.WriteEnclosedElement(xmlWriter, "director", actor.name);
                    }

                    XWrite.WriteEnclosedElement(xmlWriter, "releasedate", filmDetail.dates_cinema[0].date);

                    foreach (var country in filmDetail.countries)
                    {
                        XWrite.WriteEnclosedElement(xmlWriter, "country", country.name, "code", country.iso_3166_1);
                    }

                    XWrite.WriteEnclosedElement(xmlWriter, "countries", filmDetail.countries_text);
                    XWrite.WriteEnclosedElement(xmlWriter, "rating", filmDetail.average);

                    xmlWriter.WriteEndElement();
                }

                return stringWriter.ToString();
            }
        }
Пример #10
0
        public static string GenerateMovieMeterXml(DownloadItem downloadItem, string idType, string value)
        {
            var apiProxy = (IMMApi)XmlRpcProxyGen.Create(typeof(IMMApi));

            const string imdb = "imdb";

            const string search = "search";

            var filmDetail = new FilmDetail();

            if (idType == imdb)
            {
                value = apiProxy.RetrieveByImdb(getSessionKey(), value);
            }
            else if (idType == search)
            {
                var filmlist = apiProxy.Search(getSessionKey(), value);
                if (filmlist.Length > 0)
                {
                    value = filmlist[0].filmId;
                }
                else
                {
                    return(string.Empty);
                }
            }

            filmDetail = apiProxy.RetrieveDetails(getSessionKey(), value.ToInt());

            var movieMeter = new MovieMeter();

            using (var stringWriter = new StringWriterWithEncoding(movieMeter.HtmlEncoding))
            {
                using (XmlWriter xmlWriter = XmlWriter.Create(stringWriter))
                {
                    xmlWriter.WriteStartElement("moviemeter");

                    XWrite.WriteEnclosedElement(xmlWriter, "id", filmDetail.filmId);
                    XWrite.WriteEnclosedElement(xmlWriter, "imdbid", filmDetail.imdb);

                    XWrite.WriteEnclosedElement(xmlWriter, "title", filmDetail.title);
                    XWrite.WriteEnclosedElement(xmlWriter, "year", filmDetail.year);

                    foreach (var actor in filmDetail.actors)
                    {
                        XWrite.WriteEnclosedElement(xmlWriter, "actor", actor.name);
                    }

                    foreach (var genre in filmDetail.genres)
                    {
                        XWrite.WriteEnclosedElement(xmlWriter, "genre", genre);
                    }

                    XWrite.WriteEnclosedElement(xmlWriter, "plot", filmDetail.plot);

                    foreach (var actor in filmDetail.directors)
                    {
                        XWrite.WriteEnclosedElement(xmlWriter, "director", actor.name);
                    }

                    XWrite.WriteEnclosedElement(xmlWriter, "releasedate", filmDetail.dates_cinema[0].date);

                    foreach (var country in filmDetail.countries)
                    {
                        XWrite.WriteEnclosedElement(xmlWriter, "country", country.name, "code", country.iso_3166_1);
                    }

                    XWrite.WriteEnclosedElement(xmlWriter, "countries", filmDetail.countries_text);
                    XWrite.WriteEnclosedElement(xmlWriter, "rating", filmDetail.average);

                    xmlWriter.WriteEndElement();
                }

                return(stringWriter.ToString());
            }
        }
Пример #11
0
        protected override MovieInfo GetMovieInfo(string mmid)
        {
            MovieInfo _movieInfo = null;

            try
            {
                if (!string.IsNullOrEmpty(mmid))
                {
                    int        _filmId  = Int32.Parse(mmid);
                    FilmDetail _details = m_apiProxy.RetrieveDetails(getSessionKey(), _filmId);
                    if (_details != null)
                    {
                        _movieInfo = new MovieInfo();
                        foreach (MovieMeterHelper.FilmDetail.Actor _actor in _details.actors)
                        {
                            _movieInfo.Cast.Add(_actor.name);
                        }
                        foreach (MovieMeterHelper.FilmDetail.Country _country in _details.countries)
                        {
                            _movieInfo.Countries.Add(_country.name);
                        }
                        foreach (MovieMeterHelper.FilmDetail.Director _director in _details.directors)
                        {
                            _movieInfo.Director.Add(_director.name);
                        }
                        foreach (string _genre in _details.genres)
                        {
                            _movieInfo.Genre.Add(_genre);
                        }
                        if (!string.IsNullOrEmpty(_details.imdb))
                        {
                            _movieInfo.IMDBID = "tt" + _details.imdb;
                        }
                        _movieInfo.OriginalTitle = _details.title;
                        if (_details.alternative_titles.Count() != 0)
                        {
                            _movieInfo.Name = _details.alternative_titles[_details.alternative_titles.Count() - 1].title;
                        }
                        if (string.IsNullOrEmpty(_movieInfo.Name))
                        {
                            _movieInfo.Name = _movieInfo.OriginalTitle;
                        }
                        _movieInfo.Overview = _details.plot;
                        _movieInfo.Rating   = _details.average;
                        try
                        {
                            if (!string.IsNullOrEmpty(_movieInfo.Rating))
                            {
                                _movieInfo.Rating = (2 * _movieInfo.dRating).ToString();
                            }
                        }
                        catch { }
                        if (_details.dates_cinema.Count() != 0)
                        {
                            _movieInfo.ReleaseDate = _details.dates_cinema[0].date;
                        }
                        _movieInfo.Runtime = _details.duration;
                        _movieInfo.Year    = _details.year;
                    }
                }
            }
            catch { }
            return(_movieInfo);
        }