private static async Task <List <Thread> > GetThreads(string board) { var threads = new List <Thread>(); var uriBuilder = new StringBuilder(DvachUrl); uriBuilder.Append($"/{board}/threads.json"); var url = uriBuilder.ToString(); if (!(await NetUtills.GetJsonUrl(url) is JObject array)) { return(threads); } var allThreads = new List <Thread>(); foreach (var thread in array["threads"]) { var num = thread["num"].ToString(); var subject = thread["subject"].ToString(); var threadUrl = $"{DvachUrl}{board}/res/{num}.html"; if (string.IsNullOrEmpty(subject)) { subject = "None"; } var files = new List <string>(); var comment = HttpUtility.HtmlDecode(thread["comment"].ToString()); var score = float.Parse(thread["score"].ToString()); allThreads.Add(new Thread( num, subject, files, comment, score, threadUrl )); } Logger.Info($"Got all threads on {board}, num: {allThreads.Count}"); return(allThreads); }
private static async Task <List <string> > GetFiles(string board, string num) { var files = new List <string>(); var uriBuilder = new StringBuilder(DvachUrl); uriBuilder.Append($"/{board}/res/{num}.json"); var url = uriBuilder.ToString(); if (!(await NetUtills.GetJsonUrl(url) is JObject array)) { return(files); } foreach (var file in array["threads"][0]["posts"][0]["files"]) { files.Add(DvachUrl + file["path"]); } Logger.Info($"Got all files in {num} on boards: {board}"); return(files); }