Ejemplo n.º 1
0
 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);
     }
 }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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");
                }
            }
        }