public static IList <IRegexableWebsite> ParseWebsite <T, U, V>(string rootURLText, Action <string> report) where T : IRegexableWebsite, new() where U : IRegexableWebsite, new() where V : IRegexableWebsite, new() { var initialScreenscrape = new WebScreenScrape <T>(rootURLText); initialScreenscrape.PopulateData(); var secondScreenScrape = new WebScreenScrape <U>(rootURLText); secondScreenScrape.PopulateData(); var thirdScreenScrape = new WebScreenScrape <V>(rootURLText); thirdScreenScrape.PopulateData(); var allRegexables = new List <IRegexableWebsite>(); allRegexables.AddRange(initialScreenscrape.SiteData.Cast <IRegexableWebsite>()); allRegexables.AddRange(secondScreenScrape.SiteData.Cast <IRegexableWebsite>()); allRegexables.AddRange(thirdScreenScrape.SiteData.Cast <IRegexableWebsite>()); allRegexables.ForEach(a => a.Clean()); return(allRegexables .OrderBy(r => r.Identifier) .ToList()); }
public static IList <T> ParseImage <T>(IEnumerable <Uri> imageURLs, Action <string> report) where T : IReadableImage, IRegexableWebsite, new() { var imageReader = new ImageReader <T>(); var siteImages = WebScreenScrape <T> .GetWebpages(imageURLs, s => Image.FromStream(s)); var returnList = new List <T>(); foreach (var img in siteImages) { returnList.Add(imageReader.ConvertReadItems(imageReader.GetBitmaps(new T(), img))); } return(returnList); }
public static IRegexableWebsite ParseJson <T>(Uri jsonURL, Action <string> report) where T : IRegexableWebsite, new() { var jsonObject = WebScreenScrape <T> .GetWebpages <T>(new List <Uri>() { jsonURL }, s => { using (StreamReader sr = new StreamReader(s, Encoding.UTF8)) { string str = sr.ReadToEnd(); return(JsonConvert.DeserializeObject <T>(str)); } }); return(jsonObject.Cast <IRegexableWebsite>().First()); }
public static IList <IRegexableWebsite> ParseWebsite <T>(Uri rootURI, Action <string> report, CookieContainer cookies = null) where T : IRegexableWebsite, new() { var initialScreenscrape = new WebScreenScrape <T>(rootURI); initialScreenscrape.PopulateData(cookies); var allRegexables = new List <IRegexableWebsite>(); allRegexables.AddRange(initialScreenscrape.SiteData.Cast <IRegexableWebsite>()); allRegexables.ForEach(a => a.Clean()); return(allRegexables .OrderBy(r => r.Identifier) .ToList()); }