예제 #1
0
 public object Clone()
 {
     MyTask task = new MyTask();
     if (this._taskItems != null)
     {
         task._taskItems = new ArrayList();
         for (int i = 0; i < this._taskItems.Count; i++)
         {
             TaskInfo info2 = (TaskInfo) this._taskItems[i];
             TaskInfo info = new TaskInfo(info2._param1, info2._param2, info2._param3, info2._param4, info2._param5);
             task._taskItems.Add(info);
         }
     }
     task._isRun = this._isRun;
     task._completeTotalCount = this._completeTotalCount;
     task._failTotalCount = this._failTotalCount;
     task._completedCount = this._completedCount;
     task._id = this._id;
     if (this._HourClicks != null)
     {
         task._HourClicks = new ArrayList(this._HourClicks);
     }
     if (this._AreaClicks != null)
     {
         task._AreaClicks = new ArrayList(this._AreaClicks);
     }
     task._totalDayClicks = this._totalDayClicks;
     return task;
 }
예제 #2
0
 private void ProcessRunTask(string xmlDoc)
 {
     if (this._task == null)
     {
         try
         {
             XmlDocument document = new XmlDocument();
             XmlNode node = null;
             document.LoadXml(xmlDoc);
             foreach (XmlNode node2 in document.SelectSingleNode("root").ChildNodes)
             {
                 if (node2.Name.Equals("tasks"))
                 {
                     foreach (XmlNode node3 in node2.ChildNodes)
                     {
                         if (node3.Name.Equals("task"))
                         {
                             MyTask task = new MyTask();
                             foreach (XmlNode node4 in node3.ChildNodes)
                             {
                                 if (node4.Name.Equals("taskinfo"))
                                 {
                                     string s = string.Empty;
                                     string innerText = string.Empty;
                                     string str3 = string.Empty;
                                     string str4 = string.Empty;
                                     string str5 = string.Empty;
                                     foreach (XmlNode node5 in node4)
                                     {
                                         if (node5.Name.Equals("param1"))
                                         {
                                             s = node5.InnerText;
                                         }
                                         else
                                         {
                                             if (node5.Name.Equals("param2"))
                                             {
                                                 innerText = node5.InnerText;
                                                 continue;
                                             }
                                             if (node5.Name.Equals("param3"))
                                             {
                                                 str3 = node5.InnerText;
                                                 continue;
                                             }
                                             if (node5.Name.Equals("param4"))
                                             {
                                                 str4 = node5.InnerText;
                                                 continue;
                                             }
                                             if (node5.Name.Equals("param5"))
                                             {
                                                 str5 = node5.InnerText;
                                             }
                                         }
                                     }
                                     if ((WindowUtil.StringToInt(s) > -1) && (WindowUtil.StringToInt(s) < 0x1d))
                                     {
                                         TaskInfo info = new TaskInfo(s, innerText, str3, str4, str5);
                                         task.Insert(info, -1);
                                     }
                                     continue;
                                 }
                                 if (node4.Name.Equals("params"))
                                 {
                                     foreach (XmlNode node6 in node4)
                                     {
                                         XmlElement element = (XmlElement)node6;
                                         if (element.Name.Equals("taskid"))
                                         {
                                             task._id = WindowUtil.StringToInt(element.InnerText);
                                         }
                                         if (element.Name.Equals("ClickIntervalTime"))
                                         {
                                             task._clickIntervalTime = WindowUtil.StringToInt(element.InnerText);
                                         }
                                         else
                                         {
                                             if (element.Name.Equals("ClickCountPerIP"))
                                             {
                                                 task._clickCountPerIP = WindowUtil.StringToInt(element.InnerText);
                                                 continue;
                                             }
                                             if (element.Name.Equals("ClickRate"))
                                             {
                                                 task._clickRate = WindowUtil.StringToInt(element.InnerText);
                                                 continue;
                                             }
                                             if (element.Name.Equals("AllowScrollWhileWaiting"))
                                             {
                                                 task._allowScrollWhileWaiting = Convert.ToBoolean(element.InnerText);
                                                 continue;
                                             }
                                             if (element.Name.Equals("vipmode"))
                                             {
                                                 task.VipMode = Convert.ToBoolean(element.InnerText);
                                             }
                                         }
                                     }
                                     continue;
                                 }
                             }
                             if (task._taskItems.Count > 0)
                             {
                                 this._task = task;
                             }
                             task = null;
                         }
                     }
                     continue;
                 }
                 if (node2.Name.Equals("setting"))
                 {
                     foreach (XmlNode node7 in node2.ChildNodes)
                     {
                         if (node7.Name.Equals("waitFindTime"))
                         {
                             this._waitFindTime = WindowUtil.StringToInt(node7.InnerText);
                         }
                         else if (node7.Name.Equals("waitDocCompleteTime"))
                         {
                             this._waitDocCompleteTime = WindowUtil.StringToInt(node7.InnerText);
                         }
                         if (node7.Name.Equals("curAddress"))
                         {
                             this.ShowTip1(node7.InnerText);
                         }
                     }
                     continue;
                 }
             }
             node = null;
             document = null;
             if (this._task != null)
             {
                 this.StartTaskThread(this._task);
             }
         }
         catch (Exception exception)
         {
             Logger.Error(exception);
         }
     }
 }
예제 #3
0
        public int GetTaskInfo(ref TaskInfo taskItem, ref int taskIndex, ref bool startLoop, ref bool loop, ref int loopTime)
        {
            if (startLoop && loop)
            {
                taskIndex--;
                loopTime++;
            }
            else
            {
                startLoop = false;
                loop = false;
                loopTime = 0;
            }
            if (taskIndex >= this._taskItems.Count)
            {
                return -1;
            }
            taskItem = (TaskInfo) this._taskItems[taskIndex++];
            switch (WindowUtil.StringToInt(taskItem._param1))
            {
                case 5:
                case 7:
                case 13:
                case 15:
                case 0x11:
                case 0x17:
                case 0x19:
                case 0x13:
                case 0x15:
                case 0x1b:
                    startLoop = loop = true;
                    break;

                default:
                    startLoop = loop = false;
                    break;
            }
            return 0;
        }
예제 #4
0
 public void Insert(TaskInfo task,  [Optional, DefaultParameterValue(-1)] int index)
 {
     if (index == -1)
     {
         this._taskItems.Add(task);
     }
     else
     {
         this._taskItems.Add(task);
         //this._taskItems.Insert(index, task);
     }
 }
예제 #5
0
        private bool createInputText(string textBoxInputBoxName, string textBoxInputText, [Optional, DefaultParameterValue(ElementTag.ID)] ElementTag iD, [Optional, DefaultParameterValue(0)] index)
        {
            string str = textBoxInputBoxName.Text.Trim();
            string str2 = textBoxInputText.Text.Trim();
            //ElementTag iD = ElementTag.ID;
            if (!string.IsNullOrEmpty(str) && !string.IsNullOrEmpty(str2))
            {
                TaskInfo info;
                int num = (int)TaskCommand.Task_InputText;
                int num2 = (int)iD;
                if (this._inputIndex == 0)
                {
                    info = new TaskInfo(num.ToString(), str, str2, num2.ToString(), "");
                }
                else
                {
                    info = new TaskInfo(num.ToString(), str, str2, num2.ToString(), index.ToString());
                }
                this._task.Insert(info, this._curTaskIndex++);

            }
            return true;
        }
예제 #6
0
        private bool createNativeURL(string naviteURL,string referURL)
        {
            if (!string.IsNullOrEmpty(naviteURL))
            {
                if (!naviteURL.StartsWith("http://") && !naviteURL.StartsWith("https://"))
                {
                    naviteURL = "http://" + naviteURL;
                }
                if ((!string.IsNullOrEmpty(referURL) && !referURL.StartsWith("http://")) && !referURL.StartsWith("https://"))
                {
                    referURL = "http://" + referURL;
                }
                int num = TaskCommand.Task_Navigate;
                TaskInfo task = new TaskInfo(num.ToString(), str, str2, "", "");
                this._task.Insert(task, this._curTaskIndex++);

                //this.ReloadTask(false);
                //this.SetTaskItem(TaskCommand.Task_None);
            }
            return true;
        }
예제 #7
0
 private bool createClickButton(string textBoxButtonID, [Optional, DefaultParameterValue(ElementTag.className)] ElementTag iD, [Optional, DefaultParameterValue(0)] index)
 {
     if (!string.IsNullOrEmpty(textBoxButtonID))
     {
         TaskInfo info;
         int num = TaskCommand.Task_ClickButton;
         int num2 = (int)iD;
         info = new TaskInfo(num.ToString(), textBoxButtonID, num2.ToString(), index.ToString(), "");
         this._task.Insert(info, this._curTaskIndex++);
     }
     return true;
 }
예제 #8
0
 private bool createClickLink(string linkName, [Optional, DefaultParameterValue(ElementTag.className)] ElementTag iD)
 {
     if (!string.IsNullOrEmpty(linkName))
     {
         TaskInfo info;
         int num = TaskCommand.Task_ClickLink;
         int num2 = (int)iD;
         info = new TaskInfo(num.ToString(), linkName, num2.ToString(), index.ToString(), "");
         this._task.Insert(info, this._curTaskIndex++);
     }
     return true;
 }
예제 #9
0
        private void TestTask()
        {
            this._task = new MyTask();
            //TaskInfo task = new TaskInfo("6", "255", "", "", "");
            //this._task.Insert(task, -1);
            TaskInfo task = new TaskInfo("4", "www.taobao.com", "", "", "");
            this._task.Insert(task, -1);
            task = new TaskInfo("1", "q", "铁观音 茶农直销", "", "");
            this._task.Insert(task, -1);
            task = new TaskInfo("2", "btn-search", "3", "", "");
            this._task.Insert(task, -1);

            //task = new TaskInfo("30", "150", "300", "", "");
            //this._task.Insert(task, -1);

            //task = new TaskInfo("1", "page", "15", "1", "0");
            //this._task.Insert(task, -1);
            //task = new TaskInfo("3", "确定", "", "2", "0");
            //this._task.Insert(task, -1);

            //task = new TaskInfo("29", "15", "", "", "");
            //this._task.Insert(task, -1);

            task = new TaskInfo(((int)TaskCommand.Task_FindLinkLinkPage1).ToString(), "铁状元", "下一页", "50", "");
            this._task.Insert(task, -1);

            //task = new TaskInfo(((int)TaskCommand.Task_ClickCompare).ToString(), "http://detail.tmall.com/item.htm", "http://item.taobao.com/item.htm", "", "");
            //this._task.Insert(task, -1);
            //task = new TaskInfo(((int)TaskCommand.Task_VisitCompare).ToString(), "10", "1", "", "");
            //this._task.Insert(task, -1);

            //task = new TaskInfo(((int)TaskCommand.Task_ClickCompare).ToString(), "http://detail.tmall.com/item.htm", "http://item.taobao.com/item.htm", "", "");
            //this._task.Insert(task, -1);
            //task = new TaskInfo(((int)TaskCommand.Task_VisitCompare).ToString(), "10", "2", "", "");
            //this._task.Insert(task, -1);

            //task = new TaskInfo(((int)TaskCommand.Task_ClickCompare).ToString(), "http://detail.tmall.com/item.htm", "http://item.taobao.com/item.htm", "", "");
            //this._task.Insert(task, -1);
            //task = new TaskInfo(((int)TaskCommand.Task_VisitCompare).ToString(), "10", "3", "", "");
            //this._task.Insert(task, -1);

            task = new TaskInfo(((int)TaskCommand.Task_ClickMe).ToString(), "铁状元", "",((int)ElementTag.outerText).ToString(), "");
            this._task.Insert(task, -1);
            task = new TaskInfo(((int)TaskCommand.Task_VisitPage).ToString(), "12", "", "", "");
            this._task.Insert(task, -1);

            task = new TaskInfo(((int)TaskCommand.Task_ClickLink).ToString(), "进入店铺", "", ((int)ElementTag.outerText).ToString(), "");
            this._task.Insert(task, -1);

            task = new TaskInfo(((int)TaskCommand.Task_ClickCompare).ToString(), "http://detail.tmall.com/item.htm", "http://item.taobao.com/item.htm", "", "");
            this._task.Insert(task, -1);
            task = new TaskInfo(((int)TaskCommand.Task_VisitPage).ToString(), "20", "", "", "");
            this._task.Insert(task, -1);

            task = new TaskInfo(((int)TaskCommand.Task_ClickCompare).ToString(), "http://detail.tmall.com/item.htm", "http://item.taobao.com/item.htm", "", "");
            this._task.Insert(task, -1);
            task = new TaskInfo(((int)TaskCommand.Task_VisitPage).ToString(), "20", "", "", "");
            this._task.Insert(task, -1);

            task = new TaskInfo("0", "105", "", "", "");
            this._task.Insert(task, -1);

            //task = new TaskInfo("7", "小米手机M红米2 1.5G四核4.7HD屏800W像素双卡双待 红米手机现货 手机", "下一页", "3", "");
            //this._task.Insert(task, -1);
            //task = new TaskInfo("3", "小米手机M红米2 1.5G四核4.7HD屏800W像素双卡双待 红米手机现货 手机", "", "2", "");
            //this._task.Insert(task, -1);
            //task = new TaskInfo("5", "10", "10", "http://detail.tmall.com/item.htm", "");
            //this._task.Insert(task, -1);
            //task = new TaskInfo("0", "10", "", "", "");
            //this._task.Insert(task, -1);
            this.StartTaskThread(this._task);
        }
예제 #10
0
        private bool CreateZRSearchTask(STKeyInfo keyInfo)
        {
            TaskInfo task = new TaskInfo("4", "www.taobao.com", "", "", "");
            this._testTask.Insert(task, -1);
            task = new TaskInfo(((int)(TaskCommand.Task_InputText)).ToString(), "q", keyInfo.m_keyword, "", "");
            this._testTask.Insert(task, -1);
            task = new TaskInfo("2", "btn-search", "3", "", "");
            this._testTask.Insert(task, -1);

            if (keyInfo.isZTCClick() == false)
            {
                if (keyInfo.m_sortType == 2)
                {
                    task = new TaskInfo(((int)(TaskCommand.Task_ClickLink)).ToString(), "人气", "", ((int)ElementTag.outerText).ToString(), "0");
                    _testTask.Insert(task, -1);
                    //createClickLink("人气", "", ElementTag.outerText, 0);
                }else if (keyInfo.m_sortType == 1)
                {
                    task = new TaskInfo(((int)(TaskCommand.Task_ClickLink)).ToString(), "销量", "", ((int)ElementTag.outerText).ToString(), "0");
                    _testTask.Insert(task, -1);
                    //createClickLink("销量", "", ElementTag.outerText, 0);
                }
            }
            if (keyInfo.m_startPrice < keyInfo.m_endPrice)
            {
                task = new TaskInfo(((int)(TaskCommand.Task_InputText)).ToString(), "start_price", keyInfo.m_startPrice.ToString(), ((int)ElementTag.name).ToString(), "0");
                this._testTask.Insert(task, -1);
                task = new TaskInfo(((int)(TaskCommand.Task_InputText)).ToString(), "end_price", keyInfo.m_endPrice.ToString(), ((int)ElementTag.name).ToString(), "0");
                this._testTask.Insert(task, -1);
                task = new TaskInfo(((int)(TaskCommand.Task_ClickButton)).ToString(), "确定", ((int)ElementTag.outerText).ToString(), "1", "");
                this._testTask.Insert(task, -1);
                //createInputText("start_price", keyInfo.m_startPrice.ToString(), ElementTag.name, 0);
                //createInputText("end_price", keyInfo.m_endPrice.ToString(), ElementTag.name, 0);
                //createClickButton("确定", ElementTag.outerText, 1);
            }

            int defaultMaxPage = 50;
            if (keyInfo.m_startPage < keyInfo.m_endPage && keyInfo.m_startPage != 1)
            {
                task = new TaskInfo(((int)(TaskCommand.Task_GoPage)).ToString(), keyInfo.m_startPage.ToString(), "", "", "");
                _testTask.Insert(task, -1);

                defaultMaxPage = keyInfo.m_endPage - keyInfo.m_startPage;
                //createGoPage( keyInfo.m_startPage.ToString());
            }

            if (keyInfo.isZTCClick() == false)
            {
                task = new TaskInfo(((int)TaskCommand.Task_FindLinkLinkPage1).ToString(), keyInfo.m_zrWangwangName, "下一页", defaultMaxPage.ToString(), "");
                _testTask.Insert(task, -1);
            }
            else
            {
                task = new TaskInfo(((int)TaskCommand.Task_FindLinkLinkPage1).ToString(), keyInfo.m_ztcTitle, "下一页", defaultMaxPage.ToString(), "");
                _testTask.Insert(task, -1);
            }

            if (compareCB.Checked)
            {
                int randCompare = rndGenerator.Next(1, 4);
                for (int i = 0; i < randCompare; i++)
                {
                    int rndCmpTime = rndGenerator.Next(5, 13);
                    task = new TaskInfo(((int)TaskCommand.Task_ClickCompare).ToString(), "http://detail.tmall.com/item.htm", "http://item.taobao.com/item.htm", "", "");
                    _testTask.Insert(task, -1);
                    task = new TaskInfo(((int)TaskCommand.Task_VisitCompare).ToString(), rndCmpTime.ToString(), i.ToString(), "", "");
                    _testTask.Insert(task, -1);
                }
            }

            if (keyInfo.isZTCClick() == false)
            {
                task = new TaskInfo(((int)TaskCommand.Task_ClickMe).ToString(), keyInfo.m_zrWangwangName, "", ((int)ElementTag.outerText).ToString(), "");
                _testTask.Insert(task, -1);
            }
            else
            {
                task = new TaskInfo(((int)TaskCommand.Task_ClickLink).ToString(), keyInfo.m_ztcTitle, "", ((int)ElementTag.title).ToString(), "");
                _testTask.Insert(task, -1);
            }

            int visitMainPage = rndGenerator.Next(getMainItemMinTime(), getMainItemMaxTime());
            task = new TaskInfo(((int)TaskCommand.Task_VisitPage).ToString(), visitMainPage.ToString(), "", "", "");
            _testTask.Insert(task, -1);

            int enterMainIndex = rndGenerator.Next(0, m_clickMainPageItem.Length);
            task = new TaskInfo(((int)TaskCommand.Task_ClickLink).ToString(), m_clickMainPageItem[enterMainIndex].ToString(),
                "", ((int)ElementTag.outerText).ToString(), "");
            _testTask.Insert(task, -1);

            int pageVisitDeep = getVisitDeep();
            if (visitDeepRndCheckBox.Checked)
            {
                pageVisitDeep = rndGenerator.Next(1, 5);
            }

            for (int i = 0; i < pageVisitDeep; i++)
            {
                int rndVisitTime = rndGenerator.Next(getOtherItemMinTime(), getOtherItemMaxTime());
                task = new TaskInfo(((int)TaskCommand.Task_ClickCompare).ToString(), "http://detail.tmall.com/item.htm", "http://item.taobao.com/item.htm", "", "");
                _testTask.Insert(task, -1);
                task = new TaskInfo(((int)TaskCommand.Task_VisitPage).ToString(), rndVisitTime.ToString(), "", "", "");
                _testTask.Insert(task, -1);
            }

            return true;
        }
예제 #11
0
 private bool createZRFindPage(string wangwangName, [Optional, DefaultParameterValue(ElementTag.className)] ElementTag iD, [Optional, DefaultParameterValue(0)] int index)
 {
     if (!string.IsNullOrEmpty(wangwangName))
     {
         TaskInfo info;
         int num = (int)(TaskCommand.Task_ClickLink);
         int num2 = (int)iD;
         info = new TaskInfo(num.ToString(), wangwangName, num2.ToString(), index.ToString(), "");
         this._testTask.Insert(info, this._curTaskIndex++);
     }
     return true;
 }
예제 #12
0
 private bool createWait(int waitTime)
 {
     if (0 != waitTime)
     {
         TaskInfo info;
         int num = (int)(TaskCommand.Task_Wait);
         info = new TaskInfo(num.ToString(), waitTime.ToString(), "", "", "");
         this._testTask.Insert(info, this._curTaskIndex++);
     }
     return true;
 }
예제 #13
0
        private bool createGoPage(string textBoxInputText)
        {
            string str2 = textBoxInputText.Trim();
            //ElementTag iD = ElementTag.ID;
            if (!string.IsNullOrEmpty(str2))
            {
                TaskInfo info;
                int num = (int)TaskCommand.Task_GoPage;
                info = new TaskInfo(num.ToString(), str2, "", "", "");
                this._testTask.Insert(info, this._curTaskIndex++);

            }
            return true;
        }