Esempio n. 1
0
        private void bwMovies_DoWork(object sender, DoWorkProviderEventArgs e)
        {
            BackgroundWorker worker = sender as BackgroundWorker;

            _movieList = new Movies();

            //XmlNamespaceManager nsmgr = new XmlNamespaceManager(movieXml.NameTable);
            //nsmgr.AddNamespace("atom", "http://www.w3.org/2005/Atom");
            //nsmgr.AddNamespace("opensearch", "http://a9.com/-/spec/opensearch/1.1/");

            movieXml.InnerXml = movieXml.InnerXml.Replace("atom:", "");
            XmlNodeList movieNodes = movieXml.DocumentElement.SelectNodes("//entry/content");

            //int thumbCount = movieXml.SelectNodes("//images/image[@type='Poster' and @size='thumb']").Count;
            //                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                int movieCount = movieXml.SelectNodes("//movie").Count;

            //processDivider = (thumbCount < movieCount) ? movieCount : thumbCount;

            myTime.Start();

            foreach (XmlNode movieNode in movieNodes)
            {
                if (movieNode.FirstChild.Name.ToLower() == "movie")
                {
                    ObjectLoadedProviderEventArgs moviesArgs = new ObjectLoadedProviderEventArgs(this.LoadMovie(movieXml, worker, e));
                    _movieList.Add((Movie)moviesArgs.loadedObject);
                    //OnObjectLoaded(moviesArgs);
                    ReportObjectLoaded(moviesArgs.loadedObject);
                }
            }
        }
Esempio n. 2
0
        private void bwPictureData_DoWork(object sender, DoWorkProviderEventArgs e)
        {
            BackgroundWorker worker    = sender as BackgroundWorker;
            XmlNode          movieNode = movieXml.SelectSingleNode("//movie");

            ObjectLoadedProviderEventArgs movieArgs = new ObjectLoadedProviderEventArgs(this.LoadMovie(_movie.Node, worker, e));

            ReportObjectLoaded(movieArgs.loadedObject);
        }
Esempio n. 3
0
        private void bwMovieData_DoWork(object sender, DoWorkProviderEventArgs e)
        {
            BackgroundWorker worker = sender as BackgroundWorker;
            //_movieList = new Movies();
            XmlNode movieNode = movieXml.SelectSingleNode("//movie");

            int thumbCount = movieXml.SelectNodes("//images/image[@type='Poster' and @size='thumb']").Count;
            int movieCount = movieXml.SelectNodes("//movie").Count;

            processDivider = (thumbCount < movieCount) ? movieCount : thumbCount;

            myTime.Start();

            ObjectLoadedProviderEventArgs movieArgs = new ObjectLoadedProviderEventArgs(this.LoadMovie(movieNode, worker, e));

            ReportObjectLoaded(movieArgs.loadedObject);
        }
Esempio n. 4
0
        private void bwMovies_DoWork(object sender, DoWorkProviderEventArgs e)
        {
            BackgroundWorker worker = sender as BackgroundWorker;
            Movie            MovieItem;

            _movieList = new Movies();
            XmlNodeList movieNodes = movieXml.SelectNodes("//results/movie");
            int         thumbCount = movieXml.SelectNodes("//images/image[@type='Poster' and @size='thumb']").Count;
            int         movieCount = movieXml.SelectNodes("//movie").Count;

            processDivider = (thumbCount < movieCount) ? movieCount : thumbCount;

            myTime.Start();

            foreach (XmlNode movieNode in movieNodes)
            {
                MovieItem = new Provider.Movie();
                MovieItem = this.LoadMovie(movieNode, worker, e);
                ObjectLoadedProviderEventArgs moviesArgs = new ObjectLoadedProviderEventArgs(this.LoadMovie(movieNode, worker, e));
                _movieList.Add((Movie)moviesArgs.loadedObject);
                //OnObjectLoaded(moviesArgs);
                ReportObjectLoaded(moviesArgs.loadedObject);
            }
        }
Esempio n. 5
0
        public override Movie LoadMovie(XmlNode movieNode, BackgroundWorker worker, DoWorkProviderEventArgs e)
        {
            Movie movie = new Movie();
            Dictionary <String, MoviePicture> dicoPics;
            String pictureID, pictureType;
            DownloadManagerThreaded downMan = new DownloadManagerThreaded();

            if (this.Movie != null)
            {
                movie = this._movie;
            }
            movie.Node = movieNode;


            movie.ID            = Convert.ToInt32(movieNode.SelectSingleNode("id").InnerText);
            movie.ID_Allocine   = Convert.ToInt32(movieNode.SelectSingleNode("id_allocine").InnerText);
            movie.ID_IMDB       = Convert.ToInt32(movieNode.SelectSingleNode("id_imdb").InnerText);
            movie.Url           = movieNode.SelectSingleNode("url").InnerText;
            movie.Title         = movieNode.SelectSingleNode("title").InnerText;
            movie.OriginalTitle = movieNode.SelectSingleNode("originaltitle").InnerText;
            movie.Plot          = movieNode.SelectSingleNode("plot").InnerText;
            movie.Year          = Convert.ToInt32(movieNode.SelectSingleNode("year").InnerText);
            movie.Runtime       = Convert.ToInt32(movieNode.SelectSingleNode("runtime").InnerText);

            //_nodes = movieNode.SelectNodes("director");
            try
            {
                foreach (XmlNode dir in movieNode.SelectNodes("directors/director"))
                {
                    movie.Directors.Add(dir.InnerText);
                }
            }
            catch (Exception ex) { }
            try
            {
                foreach (XmlNode cast in movieNode.SelectNodes("casting/person "))
                {
                    //TODO Implement Actor OBJECT (directos would be the same)
                    movie.Actors.Add(
                        new Actor(
                            Int32.Parse(cast.Attributes["id"].Value),
                            cast.Attributes["name"].Value,
                            cast.Attributes["character"].Value,
                            Int32.Parse(cast.Attributes["idthumb"].Value),
                            cast.Attributes["thumb"].Value
                            )
                        );
                }
            }
            catch (Exception ex) { }
            try
            {
                foreach (XmlNode rat in movieNode.SelectNodes("ratings/rating"))
                {
                    movie.Ratings.Add(new Rating(rat.Attributes["type"].Value, rat.Attributes["votes"].Value, rat.InnerText));
                }
            }
            catch (Exception ex) { }
            try
            {
                foreach (XmlNode genre in movieNode.SelectNodes("genres/genre"))
                {
                    //movie.Ratings.Add(new Rating(rat.Attributes["type"].Value, rat.Attributes["votes"].Value, rat.InnerText));
                    movie.Genres.Add(genre.InnerText);
                }
            }
            catch (Exception ex) { }

            //int thumbCount = movieNode.SelectNodes("images/image[@type='Poster' and @size='thumb']").Count;
            movie.Posters.Clear(); //MTH : le clear vide l'objet movie... => obligation de reloader les images... TOO BAD

            movie.FanArts.Clear();
            foreach (XmlNode img in movieNode.SelectNodes("images/image"))
            {
                pictureID   = img.Attributes["id"].Value;
                pictureType = img.Attributes["type"].Value;
                if (pictureType.ToLower() == "poster")
                {
                    #region --- poster dico ---
                    try
                    {
                        movie.Posters.Add(pictureID, new MoviePicture());
                    }
                    catch (Exception ex) { }
                    movie.Posters[pictureID].Type = pictureType;
                    movie.Posters[pictureID].Size = img.Attributes["size"].Value;;
                    movie.Posters[pictureID].ID   = int.Parse(pictureID);

                    switch (img.Attributes["size"].Value.ToLower())
                    {
                    case "original":
                        movie.Posters[pictureID].Width       = Convert.ToInt32(img.Attributes["width"].Value);
                        movie.Posters[pictureID].Height      = Convert.ToInt32(img.Attributes["height"].Value);
                        movie.Posters[pictureID].UrlOriginal = img.Attributes["url"].Value.Replace(".peg", ".jpg");
                        break;

                    case "preview":
                        movie.Posters[pictureID].UrlPreview = img.Attributes["url"].Value.Replace(".peg", ".jpg");
                        break;

                    case "thumb":
                        movie.Posters[pictureID].UrlThumb = img.Attributes["url"].Value.Replace(".peg", ".jpg");
                        if (!(movie.Posters[pictureID].ThumbLoaded))
                        {
                            movie.Posters[pictureID].Thumb       = DownloadFromWebClient(movie.Posters[pictureID].UrlThumb);
                            movie.Posters[pictureID].ThumbLoaded = true;
                        }
                        //worker.ReportProgress(pourcent);
                        if (movie.ThumbCover == null)
                        {
                            movie.ThumbCover = movie.Posters[pictureID].Thumb;
                        }
                        this.ReportProgress(movie);
                        this.ReportCoverProgress(movie);

                        break;

                    default:
                        break;
                    }
                    #endregion
                }
                else
                {
                    #region --- Fanart dico---
                    try
                    {
                        movie.FanArts.Add(pictureID, new MoviePicture());
                    }
                    catch (Exception ex) { }
                    movie.FanArts[pictureID].Type = pictureType;
                    movie.FanArts[pictureID].Size = img.Attributes["size"].Value;;
                    movie.FanArts[pictureID].ID   = int.Parse(pictureID);

                    switch (img.Attributes["size"].Value.ToLower())
                    {
                    case "original":
                        movie.FanArts[pictureID].Width       = Convert.ToInt32(img.Attributes["width"].Value);
                        movie.FanArts[pictureID].Height      = Convert.ToInt32(img.Attributes["height"].Value);
                        movie.FanArts[pictureID].UrlOriginal = img.Attributes["url"].Value;
                        break;

                    case "preview":
                        movie.FanArts[pictureID].UrlPreview = img.Attributes["url"].Value;
                        break;

                    case "thumb":

                        movie.FanArts[pictureID].UrlThumb = img.Attributes["url"].Value;
                        if (!(movie.FanArts[pictureID].ThumbLoaded))
                        {
                            movie.FanArts[pictureID].Thumb       = DownloadFromWebClient(movie.FanArts[pictureID].UrlThumb);
                            movie.FanArts[pictureID].ThumbLoaded = true;
                        }

                        this.ReportFanartProgress(movie);
                        //if (movie.FanArts[pictureID].Type.ToLower() == "poster")
                        //    movie.FanArts[pictureID].Thumb = DownloadFromUrl(movie.FanArts[pictureID].Urlthumb);
                        break;

                    default:
                        break;
                    }
                    #endregion
                }
            }

            dicoPics = new Dictionary <String, MoviePicture>();
            return(movie);
        }
Esempio n. 6
0
        public override Movie LoadMovie(XmlDocument _movieXml, BackgroundWorker worker, DoWorkProviderEventArgs e)
        {
            Movie   movie     = new Movie();
            XmlNode movieNode = _movieXml.SelectSingleNode("//movie");

            movie     = LoadMovie(movieNode, worker, e);
            movie.Xml = _movieXml;
            return(movie);
        }
Esempio n. 7
0
        public override Movie LoadMovie(XmlNode movieNode, BackgroundWorker worker, DoWorkProviderEventArgs e)
        {
            Movie movie = new Movie();
            Dictionary <String, MoviePicture> dicoPics;
            String pictureID, pictureType;
            //decimal pourcent;
            //DownloadManagerThreaded downMan = new DownloadManagerThreaded();
            ResizeFilter _resizeFilter = new ResizeFilter();
            Image        _image;

            _resizeFilter.Width           = 70;
            _resizeFilter.Height          = 100;
            _resizeFilter.KeepAspectRatio = false;

            movie.ID          = Convert.ToInt32(movieNode.FirstChild.Attributes["code"].Value);
            movie.ID_Allocine = movie.ID;
            movie.ID_IMDB     = 0;
            foreach (XmlNode node in movieNode.FirstChild.ChildNodes)
            {
                switch (node.Name.ToLower())
                {
                case "title": movie.Title = node.InnerText;
                    break;

                case "originaltitle": movie.OriginalTitle = node.InnerText;
                    break;

                case "release":
                    try { movie.Year = int.Parse(node.FirstChild.InnerText); }
                    catch (Exception ex) { };
                    break;

                case "casting":
                    foreach (XmlNode cast in node.ChildNodes)
                    {
                        //TODO Implement Actor OBJECT (directos would be the same)
                        //if (cast.FirstChild.NextSibling.Attributes["code"].Value == "8001") //actor
                        switch (cast.FirstChild.NextSibling.Attributes["code"].Value)
                        {
                        case "8001":         //actor
                            movie.Actors.Add(
                                new Actor(
                                    0,                         //id
                                    cast.FirstChild.InnerText, //name
                                    "",
                                    0,                         //thumb ID
                                    ""                         //thumbUrl
                                    )
                                );
                            break;

                        case "8002":         //director
                            movie.Directors.Add(cast.FirstChild.InnerText);
                            break;
                        }
                    }
                    break;

                case "productionyear":
                    try { movie.Year = int.Parse(node.InnerText); }
                    catch (Exception ex) { };
                    break;

                case "poster":
                    #region *** Poster ***
                    movie.Posters.Clear();
                    pictureID   = System.Guid.NewGuid().ToString();
                    pictureType = "poster";
                    try
                    {
                        movie.Posters.Add(pictureID, new MoviePicture());
                    }
                    catch (Exception ex) { }
                    movie.Posters[pictureID].Type        = pictureType;
                    movie.Posters[pictureID].Size        = "preview";
                    movie.Posters[pictureID].UrlPreview  = node.Attributes["href"].Value;
                    movie.Posters[pictureID].UrlThumb    = node.Attributes["href"].Value;
                    movie.Posters[pictureID].UrlOriginal = node.Attributes["href"].Value;

                    using (_image = DownloadFromWebClient(movie.Posters[pictureID].UrlThumb))
                    {
                        movie.Posters[pictureID].Preview = _image;
                        movie.Posters[pictureID].Thumb   = _resizeFilter.ExecuteFilter(_image);
                        movie.Posters[pictureID].Width   = _image.Width;
                        movie.Posters[pictureID].Height  = _image.Height;
                    }

                    if (movie.ThumbCover == null)
                    {
                        movie.ThumbCover = movie.Posters[pictureID].Thumb;
                    }
                    if (movie.Cover == null)
                    {
                        movie.Cover = movie.Posters[pictureID].Preview;
                    }
                    this.ReportProgress(movie);

                    #endregion
                    break;

                case "synopsis": movie.Plot = node.InnerText;
                    break;

                case "runtime": movie.Runtime = Convert.ToInt32(node.InnerText);
                    break;

                case "genrelist":
                    foreach (XmlNode genre in node.ChildNodes)
                    {
                        movie.Genres.Add(genre.InnerText);
                    }
                    break;
                }
            }

            //try
            //{
            //    foreach (XmlNode rat in movieNode.SelectNodes("ratings/rating"))
            //    {
            //        movie.Ratings.Add(new Rating(rat.Attributes["type"].Value, rat.Attributes["votes"].Value, rat.InnerText));
            //    }
            //}
            //catch (Exception ex) { }

            dicoPics = new Dictionary <String, MoviePicture>();
            return(movie);
        }
Esempio n. 8
0
        public override Movie LoadMovie(XmlDocument _movieXml, BackgroundWorker worker, DoWorkProviderEventArgs e)
        {
            XmlNode movieNode = _movieXml.SelectSingleNode("//movie");

            return(LoadMovie(movieNode, worker, e));
        }