public async Task <List <Thread> > Threads(Board board, CatalogSort sort = CatalogSort.カタログ) { var document = await client.GetThreadsHtml(board, sort); var table = document.QuerySelectorAll("table"); var tds = table[1].QuerySelectorAll("td"); var result = new List <Thread>(); foreach (var item in tds) { var a = item.QuerySelector("a").GetAttribute("href"); var str = a.Split('/', '.')[1]; ulong id = ulong.Parse(str); var img = item.QuerySelector("img"); if (img != null) { var src = img.GetAttribute("src"); var splitted = src.Split('/', '.', 's'); ulong imgNo = ulong.Parse(splitted[3]); result.Add(new Thread(board, id, new Image(board, imgNo, splitted[5]))); } else { result.Add(new Thread(board, id, null)); } } return(result); }
public async Task <IDocument> GetThreadsHtml(Board board, CatalogSort sort) { // set cookie var config = this.context.Configuration; var cookieProvider = config.Services.OfType <ICookieProvider>().First(); cookieProvider.SetCookie("https://" + board.Host, "cxyl=200x1x4"); return(await this.GetDocument(new Url(board.CatalogUrl(sort)))); }
internal string CatalogUrl(CatalogSort sort) { return(this.CommonUrl() + "/futaba.php?mode=cat&sort=" + (int)sort); }