public bool GetCookie(OJ oj) { try { oj.Statuses = OJService.SelectStatusByOJ(oj.OJID); oj.Senders = SenderService.SelectByOJ(oj.OJID); oj.CookieContainers = new List <CookieContainer>(); foreach (Sender sender in oj.Senders) { CookieContainer cookieContainer = HttpHelper.GetCooKie(oj.UrlLogin, oj.UrlLoginPart1 + sender.Username + oj.UrlLoginPart2 + sender.Password + oj.UrlLoginPart3, header); if (cookieContainer != null) { oj.CookieContainers.Add(cookieContainer); } } oj.QSenders = new Queue <int>(); for (int i = 0; i < oj.Senders.Count; ++i) { oj.QSenders.Enqueue(i); } return(true); } catch (Exception e) { LogService.Insert(2, e); return(false); } }
public static List <OJ> SelectAll() { string sql = "select * from oj"; DataTable dt = SqlHelper.ExecuteDataTable(sql); List <OJ> ojs = new List <OJ>(); foreach (DataRow dr in dt.Rows) { OJ oj = new OJ(); oj.OJID = (uint)dr["OJID"]; oj.OJName = (string)dr["OJName"]; oj.PatternProblemID = (string)dr["PatternProblemID"]; oj.PatternTitle = dr["PatternTitle"].ToString(); oj.PatternTimeMemory = dr["PatternTimeMemory"].ToString(); oj.PatternProblem = dr["PatternProblem"].ToString(); oj.PatternStatus = dr["PatternStatus"].ToString(); oj.PatternA = dr["PatternA"].ToString(); oj.PatternImg = dr["PatternImg"].ToString(); oj.UrlLogin = dr["UrlLogin"].ToString(); oj.UrlLoginPart1 = dr["UrlLoginPart1"].ToString(); oj.UrlLoginPart2 = dr["UrlLoginPart2"].ToString(); oj.UrlLoginPart3 = dr["UrlLoginPart3"].ToString(); oj.UrlSubmit = dr["UrlSubmit"].ToString(); oj.UrlSubmitPart1 = dr["UrlSubmitPart1"].ToString(); oj.UrlSubmitPart2 = dr["UrlSubmitPart2"].ToString(); oj.UrlSubmitPart3 = dr["UrlSubmitPart3"].ToString(); oj.UrlSubmitPart4 = dr["UrlSubmitPart4"].ToString(); oj.UrlStatus = dr["UrlStatus"].ToString(); int order = Convert.ToInt32(dr["MatchOrder"]); oj.MatchOrder = new List <int>(); for (int i = 0; i < 6; ++i, order /= 10) { oj.MatchOrder.Add(order % 10); } ojs.Add(oj); } return(ojs); }
public static OJ SelectByID(uint ID) { string sql = "select * from oj where OJID = @OJID"; DataTable dt = SqlHelper.ExecuteDataTable(sql, new MySqlParameter("@OJID", ID)); OJ oj = new OJ(); if (dt.Rows.Count != 1) { oj.OJID = 0; } else { oj.OJID = Convert.ToUInt32(dt.Rows[0]["OJID"]); oj.OJName = dt.Rows[0]["OJName"].ToString(); oj.PatternProblemID = (string)dt.Rows[0]["PatternProblemID"]; oj.PatternTitle = dt.Rows[0]["PatternTitle"].ToString(); oj.PatternTimeMemory = dt.Rows[0]["PatternTimeMemory"].ToString(); oj.PatternProblem = dt.Rows[0]["PatternProblem"].ToString(); oj.PatternHint = dt.Rows[0]["PatternHint"].ToString(); oj.PatternStatus = dt.Rows[0]["PatternStatus"].ToString(); oj.PatternA = dt.Rows[0]["PatternA"].ToString(); oj.PatternImg = dt.Rows[0]["PatternImg"].ToString(); oj.Url = dt.Rows[0]["Url"].ToString(); oj.UrlPid = dt.Rows[0]["UrlPid"].ToString(); oj.UrlLogin = dt.Rows[0]["UrlLogin"].ToString(); oj.UrlLoginPart1 = dt.Rows[0]["UrlLoginPart1"].ToString(); oj.UrlLoginPart2 = dt.Rows[0]["UrlLoginPart2"].ToString(); oj.UrlLoginPart3 = dt.Rows[0]["UrlLoginPart3"].ToString(); oj.UrlSubmit = dt.Rows[0]["UrlSubmit"].ToString(); oj.UrlSubmitPart1 = dt.Rows[0]["UrlSubmitPart1"].ToString(); oj.UrlSubmitPart2 = dt.Rows[0]["UrlSubmitPart2"].ToString(); oj.UrlSubmitPart3 = dt.Rows[0]["UrlSubmitPart3"].ToString(); oj.UrlSubmitPart4 = dt.Rows[0]["UrlSubmitPart4"].ToString(); oj.UrlStatus = dt.Rows[0]["UrlStatus"].ToString(); } return(oj); }
public void Run(string from, string to) { list1.Items.Clear(); int ojid = comboBox1.SelectedIndex; if (ojid < 0 || ojid >= ojs.Count) { MessageBox.Show("OJ Choose Error"); } Regex regex = new Regex(ojs[ojid].PatternProblemID); Match mf = regex.Match(from); Match mt = regex.Match(to); if (mf.Success == false || mt.Success == false) { MessageBox.Show("Format the Problem ID"); return; } int fromid = Convert.ToInt32(mf.Groups[1].ToString()); int toid = Convert.ToInt32(mt.Groups[1].ToString()); for (int i = fromid; i <= toid; ++i) { OJ oj = ojs[ojid]; Problem p = ProblemService.SelectByOJProblemID((uint)ojid + 1, i.ToString()); if (p.ProblemID == 0) { try { string status; bool result = false; switch (ojid) { case 0: result = OJCrawl.HDU(i); break; case 1: result = OJCrawl.NBU(i); break; case 2: result = OJCrawl.POJ(i); break; case 3: result = OJCrawl.ZOJ(i); break; default: break; } status = result ? "ok" : "failed"; UpdateStatus(oj.OJName + " " + i + " " + status); } catch (Exception e) { LogService.Insert(1, e); } } else { UpdateStatus(oj.OJName + " " + i + " " + "existing"); } } }