Exemplo n.º 1
0
        private void backgroundWorkerLoadUsers_DoWork(object sender, DoWorkEventArgs e)
        {
            String path = Application.StartupPath + "\\config.txt";

            if (mUserManager.loadUsers(path))
            {
                List <String> phones = mUserManager.getKeys();
                for (int i = 0; i < phones.Count; i++)
                {
                    UserManager.User u = mUserManager.mMapUser[phones[i]];
                    u._cookies = login(u._phone, u._pwd);
                    if (u._cookies.Count > 0)
                    {
                        u._status = UserManager.STATUS_COOKIE_READY;
                    }
                    int per = i * 100 / phones.Count;
                    this.backgroundWorkerLoadUsers.ReportProgress(per, u._phone);
                }
                e.Result = "OK:读取成功";
            }
            else
            {
                e.Result = "ER:读取失败";
            }
        }
Exemplo n.º 2
0
 private void backgroundWorkerExport_DoWork(object sender, DoWorkEventArgs e)
 {
     try
     {
         String        fileName = DateTime.Now.ToString("yyyy年MM月dd日_HHmmss") + ".txt";
         FileStream    aFile    = new FileStream(fileName, FileMode.OpenOrCreate);
         StreamWriter  sw       = new StreamWriter(aFile);
         List <String> phones   = mUserManager.getKeys();
         for (int i = 0; i < phones.Count; i++)
         {
             UserManager.User u     = mUserManager.mMapUser[phones[i]];
             List <String>    codes = u._codes;
             if (codes.Count > 0)
             {
                 for (int j = 0; j < codes.Count; j++)
                 {
                     String str = u._phone + "  " + DateTime.Now.ToString("yyyy年MM月dd日") + "  " + codes[j];
                     sw.WriteLine(str);
                 }
             }
         }
         sw.Close();
         e.Result = fileName;
     }
     catch (IOException ex)
     {
         e.Result = "ER:失败";
         return;
     }
 }
Exemplo n.º 3
0
        private void backgroundWorkerResult_DoWork(object sender, DoWorkEventArgs e)
        {
            String        url     = "http://sale.dooyo.cn/tuan/account/myVoucher.html?tradeId=queryVoucherListAcc";
            String        keyword = DateTime.Now.ToString("yyyy年MM月dd日");
            List <String> phones  = mUserManager.getKeys();

            for (int i = 0; i < phones.Count; i++)
            {
                UserManager.User u = mUserManager.mMapUser[phones[i]];
                //查看订单页面
                HttpWebResponse        response = HttpWebResponseUtility.CreateGetHttpResponse(url, null, null, u._cookies);
                System.IO.StreamReader sr       = new System.IO.StreamReader(response.GetResponseStream());
                String content = sr.ReadToEnd(); //这里的content就是网页内容了
                sr.Close();
                response.Close();
                MatchCollection mc = GetValue(content, keyword, "<!");
                u._resultCount = mc.Count;
                for (int k = 0; k < mc.Count; k++)
                {
                    String code = mc[k].Value.Replace("<td>", "").Replace("</td>", "").Replace("\r\n", "").Trim();
                    if (!u._codes.Contains(code))
                    {
                        u._codes.Add(code);
                    }
                }
            }
        }
Exemplo n.º 4
0
        void bw_DoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker bw = sender as BackgroundWorker;

            UserManager.User u = e.Argument as UserManager.User;
            u._msg = "开始...";
            int count = 0;

            while (u._status != UserManager.STATUS_COOKIE_READY)
            {
                // Monitor.Enter(oLock);
                String msg = miaoshaWork(u);

                // Monitor.Exit(oLock);
                if (msg.StartsWith("DONE"))
                {
                    if (u._status == UserManager.STATUS_ONE)
                    {
                        u._status = UserManager.STATUS_TWO;
                        return;
                    }
                    else
                    {
                        u._status = UserManager.STATUS_ONE;
                    }
                }
                count  = count + 1;
                u._msg = "开始..." + count + " " + msg;
                String logMsg = "用户" + u._phone + " 第" + count + "次尝试," + msg;
                Thread.Sleep(100);
                bw.ReportProgress(1, logMsg);
            }
        }
Exemplo n.º 5
0
 private void stopWorker(UserManager.User u)
 {
     if (mWorkers.ContainsKey(u._phone))
     {
         u._status = UserManager.STATUS_COOKIE_READY;
         BackgroundWorker bw = mWorkers[u._phone];
         bw.CancelAsync();
     }
 }
Exemplo n.º 6
0
 public MiaoUserControl(UserManager.User u, String pid, int tabindex)
 {
     mUser      = u;
     mProductID = pid;
     mTryCnt    = 0;
     mSuccCnt   = 0;
     mTabIndex  = tabindex;
     InitializeComponent();
 }
Exemplo n.º 7
0
        private void ManualMiaoForm_Load(object sender, EventArgs e)
        {
            List <String> phones = mUserManager.getKeys();

            for (int i = 0; i < phones.Count; i++)
            {
                UserManager.User u   = mUserManager.mMapUser[phones[i]];
                MiaoUserControl  muc = new MiaoUserControl(u, mProductID, i);
                muc.MsgEvent += new MiaoUserControl.MsgEventDelegate(muc_MsgEvent);
                this.flowLayoutPanel1.Controls.Add(muc);
            }
        }
Exemplo n.º 8
0
 private void listViewUser_DoubleClick(object sender, EventArgs e)
 {
     if (this.listViewUser.SelectedItems.Count > 0)
     {
         ListViewItem     lvi = this.listViewUser.SelectedItems[0];
         UserManager.User u   = lvi.Tag as UserManager.User;
         //if (u._unpayCount>0)
         {
             WebViewForm wvf = new WebViewForm(u);
             wvf.Show();
         }
     }
 }
Exemplo n.º 9
0
        private void backgroundWorkerUnpay_DoWork(object sender, DoWorkEventArgs e)
        {
            String        url     = "http://sale.dooyo.cn/tuan/account/myOrder.html?tradeId=queryAccOrderList";
            String        keyword = "未支付";
            List <String> phones  = mUserManager.getKeys();

            for (int i = 0; i < phones.Count; i++)
            {
                UserManager.User u = mUserManager.mMapUser[phones[i]];
                //查看订单页面
                HttpWebResponse        response = HttpWebResponseUtility.CreateGetHttpResponse(url, null, null, u._cookies);
                System.IO.StreamReader sr       = new System.IO.StreamReader(response.GetResponseStream());
                String content = sr.ReadToEnd(); //这里的content就是网页内容了
                sr.Close();
                response.Close();
                u._unpayCount = Regex.Matches(content, keyword).Count;
                //if (content.Contains(keyword))
                //{
                //    u._unpayCount = 1;
                //}
                //2013年06月19日
            }
        }
Exemplo n.º 10
0
 private void startWorker(UserManager.User u)
 {
     if (mWorkers.ContainsKey(u._phone))
     {
         BackgroundWorker bw = mWorkers[u._phone];
         if (!bw.IsBusy)
         {
             u._status = UserManager.STATUS_START;
             bw.RunWorkerAsync(u);
         }
     }
     else
     {
         BackgroundWorker bw = new BackgroundWorker();
         bw.DoWork += new DoWorkEventHandler(bw_DoWork);
         bw.WorkerReportsProgress      = true;
         bw.WorkerSupportsCancellation = true;
         bw.ProgressChanged           += new ProgressChangedEventHandler(bw_ProgressChanged);
         bw.RunWorkerCompleted        += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);
         mWorkers.Add(u._phone, bw);
         u._status = UserManager.STATUS_START;
         bw.RunWorkerAsync(u);
     }
 }
Exemplo n.º 11
0
        String miaoshaWork(UserManager.User u)
        {
            try
            {
                String           msg              = "";
                Encoding         encoding         = Encoding.GetEncoding("gb2312");
                CookieCollection cookieCollection = u._cookies;
                //获取验证码
                Random          ra         = new Random();
                String          getCodeURL = "http://sale.dooyo.cn/tuan/code.html?tradeId=getMiaoShaCode&t=" + ra.Next();
                HttpWebResponse response   = HttpWebResponseUtility.CreateGetHttpResponse(getCodeURL, null, null, cookieCollection);
                if (response.StatusCode == HttpStatusCode.OK)
                {
                    System.IO.Stream     resStream = response.GetResponseStream();
                    System.Drawing.Image i         = Image.FromStream(resStream);
                    CheckCodeParser      mParser   = u._parser;
                    String checkCode = mParser.parse(i);
                    response.Close();
                    //log("获取验证码:" + checkCode);

                    try
                    {
                        //验证验证码
                        // url:"/tuan/miao/miaoindex.html?tradeId=checkCodeForImmediately",
                        String checkCodeURL = "http://sale.dooyo.cn/tuan/miao/miaoindex.html?tradeId=checkCode";
                        //checkCodeURL = "http://sale.dooyo.cn/tuan/miao/miaoindex.html?tradeId=checkCodeForImmediately";
                        IDictionary <string, string> parameters = new Dictionary <string, string>();
                        parameters.Add("code", checkCode);
                        parameters.Add("product_id", mProductID);
                        HttpWebResponse response2 = HttpWebResponseUtility.CreatePostHttpResponse(
                            checkCodeURL, parameters, null, null, encoding, cookieCollection, true);
                        if (response2.StatusCode == HttpStatusCode.OK)
                        {
                            // log("验证验证码:" + checkCode);
                            System.IO.StreamReader sr = new System.IO.StreamReader(response2.GetResponseStream());
                            String content            = sr.ReadToEnd(); //这里的content就是网页内容了
                            sr.Close();
                            response2.Close();
                            //log("验证验证码:" + content);
                            if (content.Contains("false"))
                            {
                                //验证失败
                                msg = "ER:验证码错误";
                            }
                            else
                            {
                                msg = "验证成功";
                                //提交form
                                String submitURL = "http://sale.dooyo.cn/tuan/miao/miaoConfirmOrder.html?tradeId=toMiaoOrder&product_id="
                                                   + mProductID;
                                IDictionary <string, string> parameters2 = new Dictionary <string, string>();
                                parameters2.Add("code", checkCode);
                                parameters2.Add("vCode", checkCode);
                                parameters2.Add("userOrdersCount", "0");
                                parameters2.Add("maxOrdersCount", "2");//2
                                parameters2.Add("payTypeRadio", "ABC2");
                                //parameters2.Add("activityCode", "1");//2
                                //parameters2.Add("max_purchase_profit", "0.0");//2
                                //parameters2.Add("mobile", u._phone);//2
                                //parameters2.Add("order_sizecolor", "");//2
                                parameters2.Add("product_id", this.mProductID);//2
                                // parameters2.Add("product_props", "");//2
                                //parameters2.Add("quantity", "1");//2
                                // parameters2.Add("repeatOrderId", "");//2
                                // parameters2.Add("token", "1375190998404");//2

                                HttpWebResponse response3 = HttpWebResponseUtility.CreatePostHttpResponse(
                                    submitURL, parameters2, null, null, encoding, cookieCollection, true);
                                if (response3.StatusCode == HttpStatusCode.OK)
                                {
                                    //log("提交form");
                                    System.IO.StreamReader sr3 = new System.IO.StreamReader(response3.GetResponseStream());
                                    String content3            = sr3.ReadToEnd(); //这里的content就是网页内容了
                                    sr3.Close();
                                    response3.Close();
                                    if (content3.Contains("抱歉"))
                                    {
                                        msg = "ER:提交表单失败啦";
                                    }
                                    else
                                    {
                                        //下单
                                        IDictionary <string, string> buyParams = new Dictionary <string, string>();
                                        buyParams.Add("code", checkCode);
                                        buyParams.Add("vCode", checkCode);
                                        buyParams.Add("mobile", u._phone);
                                        //buyParams.Add("payTypeRadio", "1");
                                        buyParams.Add("product_id", this.mProductID);
                                        buyParams.Add("product_props", "");
                                        buyParams.Add("product_type", "0");
                                        buyParams.Add("payTypeRadio", "ABC2");
                                        buyParams.Add("quantity", "1");
                                        buyParams.Add("userOrdersCount", "1");
                                        buyParams.Add("maxOrdersCount", "10");
                                        HttpWebResponse responseBuy = HttpWebResponseUtility.CreatePostHttpResponse(
                                            mBuyURL, buyParams, null, null, encoding, cookieCollection, true);
                                        if (responseBuy.StatusCode == HttpStatusCode.OK)
                                        {
                                            //log("下单");
                                            System.IO.StreamReader srBuy = new System.IO.StreamReader(responseBuy.GetResponseStream());
                                            String contentBuy            = srBuy.ReadToEnd(); //这里的content就是网页内容了
                                            srBuy.Close();
                                            //成功啦
                                            if (contentBuy.Contains("抱歉") || contentBuy.Contains("未开始秒杀"))
                                            {
                                                msg = "ER:下单失败啦";
                                            }
                                            else
                                            {
                                                msg = "DONE:快付款吧";
                                            }
                                        }
                                        else
                                        {
                                            //log("下单错误,返回code:" + responseBuy.StatusCode);
                                        }
                                    } //if(!content3.Contains("抱歉"))
                                }     //if (response3.StatusCode == HttpStatusCode.OK)
                                else
                                {
                                    //log("提交form错误,返回code:" + response3.StatusCode);
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        String str = ex.ToString();
                        str = "ER:" + str;
                    }
                }
                mStr = msg;
                return(msg);
            }
            catch (Exception ex)
            {
                String str = "ER:出错了" + ex.ToString();
                return(str);
            }
        }
Exemplo n.º 12
0
 public WebViewForm(UserManager.User u)
 {
     InitializeComponent();
     mUser = u;
 }