public void ScrapVideosDetailsAsync(IScraperServiceCallback callback, Movie movie) { foreach (var m in movie.Links) { if (m.ScrapState == LinkScrapState.Idle) ScrapVideosDetailsAsync(callback, m); } }
public void ScrapVideosDetailsAsync(IScraperServiceCallback callback, Movie movie) { foreach (var m in movie.Links) { if (m.ScrapState == LinkScrapState.Idle) { ScrapVideosDetailsAsync(callback, m); } } }
public void ScrapVideosDetailsAsync(ScrapedVideo video, IScraperServiceCallback callback) { ThreadPool.QueueUserWorkItem(delegate { try { callback.OnScrapVideoDetailsCompleted(new XVideoScraper().ScrapeVideoDetails(video)); } catch (Exception ex) { callback.OnScrapError(ex); } }); }
public void ScrapVideosAsync(IScraperServiceCallback callback, SearchParameters sparam = null) { ThreadPool.QueueUserWorkItem(delegate { try { callback.OnScrapVideoCompleted(new XVideoScraper().ScrapeVideos(sparam)); } catch (Exception ex) { callback.OnScrapError(ex); } }); }
public void ScrapVideosDetailsAsync(IScraperServiceCallback callback, MovieLink link) { if (link.ScrapState == LinkScrapState.FullyLoaded) { callback.OnScrapVideoDetailsCompleted(link); return; } else if (link.ScrapState == LinkScrapState.VideoDoesNotExists) { callback.OnScrapError(link, "Video is removed"); return; } lock (requests) { var req = requests.FirstOrDefault(x => x.Link == link); if (req == null) requests.Add(new ScrapRequest(link, callback)); else if (!req.Clients.Any(x => x == callback)) req.Clients.Add(callback); if (link.ScrapState == LinkScrapState.Scraping) return; } link.ScrapState = LinkScrapState.Scraping; ThreadPool.QueueUserWorkItem(delegate { try { link.PlayUrl = ScrapUrl(link.DowloadUrl); link.ScrapState = LinkScrapState.FullyLoaded; link.RetrievedTime = DateTime.Now; Tracer.WriteLine(String.Format("Provider: {0} , Download Link: {1}, View Link: {2}", link.Provider.ID, link.PlayUrl, link.DowloadUrl)); var request = PopRequest(link); foreach(var r in request.Clients) r.OnScrapVideoDetailsCompleted(link); } catch (Exception ex) { var se = ex as ScraperException; link.ScrapState = se != null && se.Type == ScraperResult.VideoDoesNotExist ? LinkScrapState.VideoDoesNotExists : LinkScrapState.Idle; Tracer.WriteLine(String.Format("Error: Provider: {0} , View Link: {1}, Msg: {2}", link.Provider.ID, link.DowloadUrl, ex.Message)); var request = PopRequest(link); foreach (var r in request.Clients) r.OnScrapError(link, ex.Message); if (link.ScrapState == LinkScrapState.VideoDoesNotExists) { try { var data = new NameValueCollection(); data.Add("link", link.DowloadUrl); UpdaterService.PostResource(UrlConstants.LinkRemovedUrl, data); } catch { } } } }); }
public ScrapRequest(MovieLink link, IScraperServiceCallback client) { Link = link; Clients = new List<IScraperServiceCallback>(); Clients.Add(client); }
public void ScrapVideosDetailsAsync(IScraperServiceCallback callback, MovieLink link) { if (link.ScrapState == LinkScrapState.FullyLoaded) { callback.OnScrapVideoDetailsCompleted(link); return; } else if (link.ScrapState == LinkScrapState.VideoDoesNotExists) { callback.OnScrapError(link, "Video is removed"); return; } lock (requests) { var req = requests.FirstOrDefault(x => x.Link == link); if (req == null) { requests.Add(new ScrapRequest(link, callback)); } else if (!req.Clients.Any(x => x == callback)) { req.Clients.Add(callback); } if (link.ScrapState == LinkScrapState.Scraping) { return; } } link.ScrapState = LinkScrapState.Scraping; ThreadPool.QueueUserWorkItem(delegate { try { link.PlayUrl = ScrapUrl(link.DowloadUrl); link.ScrapState = LinkScrapState.FullyLoaded; link.RetrievedTime = DateTime.Now; Tracer.WriteLine(String.Format("Provider: {0} , Download Link: {1}, View Link: {2}", link.Provider.ID, link.PlayUrl, link.DowloadUrl)); var request = PopRequest(link); foreach (var r in request.Clients) { r.OnScrapVideoDetailsCompleted(link); } } catch (Exception ex) { var se = ex as ScraperException; link.ScrapState = se != null && se.Type == ScraperResult.VideoDoesNotExist ? LinkScrapState.VideoDoesNotExists : LinkScrapState.Idle; Tracer.WriteLine(String.Format("Error: Provider: {0} , View Link: {1}, Msg: {2}", link.Provider.ID, link.DowloadUrl, ex.Message)); var request = PopRequest(link); foreach (var r in request.Clients) { r.OnScrapError(link, ex.Message); } if (link.ScrapState == LinkScrapState.VideoDoesNotExists) { try { var data = new NameValueCollection(); data.Add("link", link.DowloadUrl); UpdaterService.PostResource(UrlConstants.LinkRemovedUrl, data); } catch { } } } }); }
public ScrapRequest(MovieLink link, IScraperServiceCallback client) { Link = link; Clients = new List <IScraperServiceCallback>(); Clients.Add(client); }