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); } } }
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); }
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); }
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); } }
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); }
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); }
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); }
public override Movie LoadMovie(XmlDocument _movieXml, BackgroundWorker worker, DoWorkProviderEventArgs e) { XmlNode movieNode = _movieXml.SelectSingleNode("//movie"); return(LoadMovie(movieNode, worker, e)); }