Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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))));
        }
Ejemplo n.º 3
0
 internal string CatalogUrl(CatalogSort sort)
 {
     return(this.CommonUrl() + "/futaba.php?mode=cat&sort=" + (int)sort);
 }