private static async Task CircleDownload(string savefolder, string cid) { Dictionary <string, int> gender = new Dictionary <string, int>(); SmallFileDown down = new SmallFileDown(10, false, true); var json = await BcyJson.CircleFeed(cid); while (json.Length > BcyJson.MinValidJsonLen) { var items = CircleFeedJson.FromJson(json).Data.Items; foreach (var e in items) { if (e.ItemDetail.Type != ItemDetailType.Note || e.ItemDetail.ImageList == null) { continue; } var uid = e.ItemDetail.Uid.ToString(); if (!gender.Keys.Contains(uid)) { var userinfo = await bcy.Info(uid.ToString()); gender.Add(uid, userinfo.Sex); } if (gender[uid] != 0) { continue; } var uname = e.ItemDetail.Uname; uname = TrimPath(uname); foreach (var img in e.ItemDetail.ImageList) { var(url, ext) = BcySpecial.GetNoWaterMarkImgPathAndExt(img.Path.ToString()); string savepath = Path.Combine(savefolder, uname, img.Mid + ext); down.Add(url, savepath); } } var last_since = items[items.Length - 1].Since; Console.WriteLine($"since:{last_since}"); json = await BcyJson.CircleFeed("79203", last_since); } await down.DownloadWork; }
public static async Task <Item[]> CircleFeed(string circle_id, int sort_type = 2, int grid_type = 10) => CircleFeedJson.FromJson(await BcyJson.CircleFeed(circle_id, sort_type, grid_type)).Data.Items;