public void TestDanbooruEngineParser() { DanbooruProviderDao pd = DanbooruProviderDao.GetInstance(); DanbooruXmlEngine e = new DanbooruXmlEngine(); { XDocument doc = XDocument.Load(sourceDanbooruXml); var searchQuery = new DanbooruSearchParam(); searchQuery.Provider = pd.Read(sourceProvider).Where <DanbooruProvider>(x => x.BoardType == BoardType.Danbooru && x.Name.Contains("danbooru")).First <DanbooruProvider>(); BindingList <DanbooruPost> result = e.Parse(doc.ToString(), searchQuery); Assert.IsNotNull(result); Assert.IsNotNull(e.RawData); Assert.IsTrue(e.TotalPost == 1021107); Assert.IsTrue(result.Count == 20); Assert.IsTrue(result[0].PreviewUrl == "http://danbooru.donmai.us/ssd/data/preview/73531fc4dda535ef87e57df633caf756.jpg"); } { XDocument doc = XDocument.Load(sourceYandereXml); var searchQuery = new DanbooruSearchParam(); searchQuery.Provider = pd.Read(sourceProvider).Where <DanbooruProvider>(x => x.BoardType == BoardType.Danbooru && x.Name.Contains("yande.re")).First <DanbooruProvider>(); BindingList <DanbooruPost> result = e.Parse(doc.ToString(), searchQuery); Assert.IsNotNull(result); Assert.IsNotNull(e.RawData); Assert.IsTrue(e.TotalPost == 160753); Assert.IsTrue(result.Count == 16); Assert.IsTrue(result[0].PreviewUrl == "https://yande.re/data/preview/d3/41/d34184030ee19c6e63051967cf135f65.jpg"); } }
public string GetQueryString(DanbooruSearchParam searchParam) { var queryStr = ""; if (BoardType == BoardType.Shimmie2) { if (Preferred == PreferredMethod.Html) { queryStr = new ShimmieHtmlParser().GenerateQueryString(searchParam); } else { queryStr = ShimmieEngine.GetQueryString(this, searchParam); } } else if (Url.Contains("sankakucomplex.com")) { queryStr = new SankakuComplexParser().GenerateQueryString(searchParam); } else { queryStr = DanbooruXmlEngine.GetQueryString(this, searchParam); } return(queryStr); }