private async Task <(int, List <Forum>)> SignAll(IEnumerable <Forum> list, string tbs) { var success = 0; var failList = new List <Forum>(); foreach (var forum in list) { var signReply = new SignReply(forum.Name); try { var res = await BaiduNet.Sign(BDUSS, forum.Fid, forum.Name, tbs); signReply.Parse(res); Console.WriteLine(signReply.ToString()); if (signReply.ErrorCode == 0L || signReply.ErrorCode == 160002L) { ++success; } else { failList.Add(forum); } } catch { failList.Add(forum); Console.WriteLine($@"[{DateTime.Now}] Error {forum.Name}签到失败!"); } } return(success, failList); }
public static double GetCountdown() { var jsonStr = BaiduNet.GetForum(null).Result; var reply = new ErrorReply(); reply.Parse(jsonStr); var nextDay = DateTime.UtcNow.AddHours(8).Date.AddDays(1); Console.WriteLine($@"下次签到时间:{nextDay.ToString(CultureInfo.CurrentCulture)}"); var now = reply.Time.ToUniversalTime().AddHours(8); Console.WriteLine($@"现在时间:{now.ToString(CultureInfo.CurrentCulture)}"); return((nextDay - now).TotalMilliseconds); }
private async Task SignAll(int retryTime) { var forums = new ForumList(); try { var forumStr = await BaiduNet.GetForum(BDUSS); forums.Parse(forumStr); Console.WriteLine(@"获取贴吧列表成功!"); Console.WriteLine(forums.ToString()); } catch { Console.WriteLine(@"获取贴吧列表失败!"); return; } int success; List <Forum> failList; (success, failList) = await SignAll(forums.Forums, forums.Tbs); if (success != forums.Forums.Count) { Console.WriteLine(@"存在签到失败贴吧,重试开始"); for (var i = 0; i < retryTime; ++i) { Console.WriteLine($@"第 {i + 1} 次重试"); int successT; (successT, failList) = await SignAll(failList, forums.Tbs); success += successT; if (success == forums.Forums.Count) { break; } } } Console.WriteLine($@"签到完成:{success}/{forums.Forums.Count}"); }