niobures's picture
VideoSearch
e26fba6 verified
using System;
using System.Collections.Generic;
using System.Text;
using Client.Scraper;
using System.Threading;
namespace BlueTube.Viewer
{
class ScraperService
{
public ScrapedPage ScrapVideos(SearchParameters sparam = null)
{
var scraper = new XVideoScraper();
return scraper.ScrapeVideos(sparam);
}
public ScrapedVideo ScrapVideoDetails(ScrapedVideo video)
{
var scraper = new XVideoScraper();
return scraper.ScrapeVideoDetails(video);
}
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(ScrapedVideo video, IScraperServiceCallback callback)
{
ThreadPool.QueueUserWorkItem(delegate {
try
{
callback.OnScrapVideoDetailsCompleted(new XVideoScraper().ScrapeVideoDetails(video));
}
catch (Exception ex)
{
callback.OnScrapError(ex);
}
});
}
}
public interface IScraperServiceCallback
{
void OnScrapVideoCompleted(ScrapedPage page);
void OnScrapVideoDetailsCompleted(ScrapedVideo video);
void OnScrapError(Exception ex);
}
}