private void CrawlPosters(string data) { if (string.IsNullOrEmpty(data)) return; JavaScriptSerializer json = new JavaScriptSerializer(); try { data = HttpContext.Current.Server.UrlDecode(data); } catch (Exception) { // in some cases data is already decoded - hence we dont need to redecoded it. it throws an exception } XMLMovieProperties prop = json.Deserialize<XMLMovieProperties>(data); //string movieUrl,string movieUniqueName TableManager tblMgr = new TableManager(); List<string> urls = new SantaImageCrawler().GetMoviePosterUrls(prop.SantaPosterLink); ImdbCrawler ic = new ImdbCrawler(); MovieEntity me = tblMgr.GetMovieByUniqueName(prop.MovieName); List<string> processedUrl = json.Deserialize<List<string>>(me.Posters); me.Pictures = (string.IsNullOrEmpty(me.Pictures) || me.Pictures == "null") ? "[]" : me.Pictures; List<CloudMovie.APIRole.UDT.PosterInfo> posters = json.Deserialize<List<CloudMovie.APIRole.UDT.PosterInfo>>(me.Pictures); int imageCounter = 1; string newImageName = string.Empty; if (processedUrl != null) { imageCounter = processedUrl.Count + 1; foreach (string process in processedUrl) { CloudMovie.APIRole.UDT.PosterInfo info = new CloudMovie.APIRole.UDT.PosterInfo(); info.url = process; posters.Add(info); } } else { processedUrl = new List<string>(); posters = new List<CloudMovie.APIRole.UDT.PosterInfo>(); } foreach (string url in urls) { CloudMovie.APIRole.UDT.PosterInfo info = new CloudMovie.APIRole.UDT.PosterInfo(); try { string posterPath = ic.GetNewImageName(prop.MovieName, ic.GetFileExtension(url), imageCounter, false, ref newImageName); ic.DownloadImage(url, posterPath); processedUrl.Add(newImageName); info.url = newImageName; info.source = prop.SantaPosterLink; posters.Add(info); imageCounter++; } catch (Exception) { // Skip that image } } me.Posters = json.Serialize(processedUrl); me.Pictures = json.Serialize(posters); tblMgr.UpdateMovieById(me); }
public ActionResult GetPosters(XMLMovieProperties prop) { try { if (prop == null) return null; JavaScriptSerializer json = new JavaScriptSerializer(); TableManager tblMgr = new TableManager(); List<string> urls = new SantaImageCrawler().GetMoviePosterUrls(prop.SantaPosterLink); ImdbCrawler ic = new ImdbCrawler(); MovieEntity me = tblMgr.GetMovieByUniqueName(prop.MovieName.ToLower().Replace(" ", "-").Replace(".", "")); List<string> processedUrl = json.Deserialize<List<string>>(me.Posters); me.Pictures = (string.IsNullOrEmpty(me.Pictures) || me.Pictures == "null") ? "[]" : me.Pictures; List<PosterInfo> posters = json.Deserialize<List<PosterInfo>>(me.Pictures); int imageCounter = 1; string newImageName = string.Empty; if (processedUrl != null) { imageCounter = processedUrl.Count + 1; if (posters == null) posters = new List<PosterInfo>(); foreach (string process in processedUrl) { PosterInfo info = new PosterInfo(); info.url = process; posters.Add(info); } } else { processedUrl = new List<string>(); posters = new List<PosterInfo>(); } foreach (string url in urls) { PosterInfo info = new PosterInfo(); try { string posterPath = ic.GetNewImageName(prop.MovieName, ic.GetFileExtension(url), imageCounter, false, ref newImageName); ic.DownloadImage(url, posterPath); processedUrl.Add(newImageName); info.url = newImageName; info.source = prop.SantaPosterLink; posters.Add(info); imageCounter++; } catch (Exception) { // Skip that image } } me.Posters = JsonConvert.SerializeObject(processedUrl); me.Pictures = JsonConvert.SerializeObject(posters); tblMgr.UpdateMovieById(me); } catch (Exception) { } return null; //return Json(new { Status = "Ok", Message = "Selected news deleted successfully." }, JsonRequestBehavior.AllowGet); }