Esempio n. 1
0
        // 환불 승인 처리
        public virtual bool Refund(string cpcode)
        {
            LQCrawlerInfo pCrawlerInfo = CrawlerManager.Instance.GetCrawlerInfo();
            string        useurl       = pCrawlerInfo.RUseUserUrl_;
            string        useparam     = pCrawlerInfo.RUseUserParam_;

            useparam = useparam.Replace("{CouponCode}", cpcode);

            LogManager.Instance.Log(useurl);
            LogManager.Instance.Log(useparam);

            HttpWebResponse pResponse = HKHttpWebRequest.ReqHttpRequest("POST", useurl, useparam, cookie_);

            if (pResponse == null)
            {
                return(false);
            }

            TextReader r          = (TextReader) new StreamReader(pResponse.GetResponseStream());
            string     htmlBuffer = r.ReadToEnd();

            if (htmlBuffer.IndexOf(pCrawlerInfo.RUseUserCheck_) < 0)
            {
                LogManager.Instance.Log("public virtual bool Refund(string cpcode) " + htmlBuffer);
                return(false);
            }

            return(true);
        }
Esempio n. 2
0
        public virtual bool First_UseData(Int32 goodsSeq, string cpcode, string goodscode)
        {
            // 웹 호출을 통해서 사용처리한다.
            LQCrawlerInfo pCrawlerInfo = CrawlerManager.Instance.GetCrawlerInfo();
            string        useurl       = pCrawlerInfo.UseUserUrl_;
            string        useparam     = pCrawlerInfo.UseUserParam_;

            string[] cpcodeArray = cpcode.Split('_');
            cpcode = cpcodeArray[0];

            useparam = useparam.Replace("{CouponCode}", cpcode);

            LogManager.Instance.Log(useurl);
            LogManager.Instance.Log(useparam);

            HttpWebResponse pResponse = HKHttpWebRequest.ReqHttpRequest("POST", useurl, useparam, cookie_);

            if (pResponse == null)
            {
                return(false);
            }

            TextReader r          = (TextReader) new StreamReader(pResponse.GetResponseStream());
            string     htmlBuffer = r.ReadToEnd();

            if (htmlBuffer.IndexOf(pCrawlerInfo.UseUserCheck_) < 0)
            {
                LogManager.Instance.Log("public virtual bool Use_Deal(string cpcode) " + htmlBuffer);
                return(false);
            }

            return(true);
        }
Esempio n. 3
0
        public ResultData ResultData_ = new ResultData();   // 크롤링 결과

        public void InitCrawler()
        {
            ChannelInfo_ = null;
            CrawlerInfo_ = null;
            Crawler_     = null;
            GoodsInfoList_.Clear();
        }
Esempio n. 4
0
        bool GetUseTicketInfo(string couponcode, string goodscode, ref string ticketcode)
        {
            LQCrawlerInfo pCrawlerInfo = CrawlerManager.Instance.GetCrawlerInfo();
            string        strurl       = pCrawlerInfo.UseGoodsUrl_;
            string        strparam     = pCrawlerInfo.UseGoodsParam_;

            strparam = strparam.Replace("{CouponCode}", couponcode);
            strparam = strparam.Replace("{GoodsCode}", goodscode);

            LogManager.Instance.Log(strurl);
            LogManager.Instance.Log(strparam);

            HttpWebResponse pResponse = HKHttpWebRequest.ReqHttpRequest("POST", strurl, strparam, cookie_);

            if (pResponse == null)
            {
                return(false);
            }

            TextReader r          = (TextReader) new StreamReader(pResponse.GetResponseStream());
            string     htmlBuffer = r.ReadToEnd();

            if (htmlBuffer.IndexOf(pCrawlerInfo.UseGoodsCheck_) < 0)
            {
                LogManager.Instance.Log(htmlBuffer);
                return(false);
            }

            Regex           re = new Regex(pCrawlerInfo.UseGoodsRule_, RegexOptions.IgnoreCase | RegexOptions.Singleline);
            MatchCollection oe = re.Matches(htmlBuffer);

            ticketcode = oe[0].Groups["CouponCode2"].ToString();

            return(true);
        }
Esempio n. 5
0
        // 환불 승인 처리
        public override bool Refund(string cpcode)
        {
            // 웹 호출을 통해서 사용처리한다.
            LQCrawlerInfo pCrawlerInfo = CrawlerManager.Instance.GetCrawlerInfo();
            string        useurl       = pCrawlerInfo.RUseUserUrl_;
            string        useparam     = pCrawlerInfo.RUseUserParam_;

            // 두번째 쿠폰 코드 찾기
            Int32  n      = cpcode.IndexOf('-');
            Int32  nCount = cpcode.Length - (n + 1);
            string cp_sub = cpcode.Substring(n + 1, nCount);

            useparam = useparam.Replace("{CouponCode2}", cp_sub);


            LogManager.Instance.Log(useurl);
            LogManager.Instance.Log(useparam);

            HttpWebResponse pResponse  = HKHttpWebRequest.ReqHttpRequest("POST", useurl, useparam, cookie_);
            TextReader      r          = (TextReader) new StreamReader(pResponse.GetResponseStream());
            string          htmlBuffer = r.ReadToEnd();

            if (htmlBuffer.IndexOf(pCrawlerInfo.RUseUserCheck_) < 0)
            {
                LogManager.Instance.Log("public virtual bool Refund(string cpcode) " + htmlBuffer);
                return(false);
            }

            return(true);
        }
Esempio n. 6
0
        bool use_step_3(string ticketcode, string cpcode)
        {
            LQCrawlerInfo pCrawlerInfo = CrawlerManager.Instance.GetCrawlerInfo();
            string        useurl       = str_use_url_3_;
            string        useparam     = str_use_param_3_;

            string[] cpcodeArray = cpcode.Split('_');
            cpcode = cpcodeArray[0];

            useparam = useparam.Replace("{CouponCode}", cpcode);

            LogManager.Instance.Log(useurl);
            LogManager.Instance.Log(useparam);

            HttpWebResponse pResponse = HKHttpWebRequest.ReqHttpRequest("POST", useurl, useparam, cookie_);

            if (pResponse == null)
            {
                return(false);
            }

            TextReader r          = (TextReader) new StreamReader(pResponse.GetResponseStream());
            string     htmlBuffer = r.ReadToEnd();

            if (htmlBuffer.IndexOf(str_use_check_2_) < 0)
            {
                LogManager.Instance.Log("public override bool use_step_2(string cpcode) " + htmlBuffer);
                return(false);
            }

            return(true);
        }
Esempio n. 7
0
        public bool Down_stap1(ref string secureKey, string sData, string eDate)
        {
            LQCrawlerInfo pCrawlerInfo = CrawlerManager.Instance.GetCrawlerInfo();
            Dictionary <Int32, ChannelGoodInfo> pInfoList = CrawlerManager.Instance.GetGoodsInfo();

            DateTime dtNow = DateTime.Now;

            string strurl    = str_down_url_1_;
            string strparam  = @"sch_date_type=ORDER_DATE&sch_rpt_status=&sch_sel_svcd_name=%BC%AD%BA%F1%BD%BA+%C0%FC%C3%BC&afterLogURL=%2Fwl%2Fservlets%2Ftbs.pmt.servlets.PayMainBackServlet%3Faction%3Dlist&type=I&curPage=1&sch_value=&sch_sel_vendor=leisureq&sch_sel_cmpy=&sch_sel_method_name=%B0%E1%C1%A6%B9%E6%B9%FD%C0%FC%C3%BC&sch_sel_method=&sch_to_order_date=2014-07-24&sch_fr_order_date=2014-07-24&xls=Y&sch_field=USER_NAME&sch_ord_status=&sch_pmt_status=&sch_sel_svcd=&sch_item=&ACCESS_TYPE=XLS&ACCESS_REASON=%BE%F7%B9%AB%BF%EB&ACCESS_ADMIN=E&DATA_MASK_YN=Y&ACCESS_AGREE=";//str_down_param_1_;
            string regstring = @"<input&nbsp;type=""hidden""&nbsp;name=""ACCESS_NO""&nbsp;value=""(?<SecurityKey>\S+)"">""";

            HttpWebResponse pResponse = HKHttpWebRequest.ReqHttpRequest("POST", strurl, strparam, cookie_);

            if (pResponse == null)
            {
                return(false);
            }

            TextReader r          = (TextReader) new StreamReader(pResponse.GetResponseStream());
            string     htmlBuffer = r.ReadToEnd();

            if (htmlBuffer.IndexOf(str_down_check_1_) < 0)
            {
                LogManager.Instance.Log(htmlBuffer);
                return(false);
            }

            Regex           re = new Regex(regstring, RegexOptions.IgnoreCase | RegexOptions.Singleline);
            MatchCollection oe = re.Matches(htmlBuffer);

            secureKey = oe[0].Groups["TicketCode"].ToString();

            return(true);
        }
Esempio n. 8
0
        public override bool Use_Deal(Int32 goodsSeq, string cpcode, string goodscode)
        {
            try
            {
                // 웹 호출을 통해서 사용처리한다.
                LQCrawlerInfo pCrawlerInfo = CrawlerManager.Instance.GetCrawlerInfo();
                string        useurl       = pCrawlerInfo.UseUserUrl_;
                string        useparam     = pCrawlerInfo.UseUserParam_;

                // 두번째 쿠폰 코드 찾기
                Int32  n      = cpcode.IndexOf('-');
                string cp_sub = "";
                if (n < 0)
                {
                    GetUseTicketInfo(cpcode, goodscode, ref cp_sub);
                }
                else
                {
                    cp_sub = cpcode.Substring(n + 1, 9);
                }

                useparam = useparam.Replace("{CouponCode}", cpcode);
                useparam = useparam.Replace("{CouponCode2}", cp_sub);
                useparam = useparam.Replace("{GoodsCode}", goodscode);

                LogManager.Instance.Log(useurl);
                LogManager.Instance.Log(useparam);

                HttpWebResponse pResponse = HKHttpWebRequest.ReqHttpRequest("POST", useurl, useparam, cookie_);

                if (pResponse == null)
                {
                    return(false);
                }

                TextReader r          = (TextReader) new StreamReader(pResponse.GetResponseStream());
                string     htmlBuffer = r.ReadToEnd();

                if (htmlBuffer.IndexOf(pCrawlerInfo.UseUserCheck_) < 0)
                {
                    LogManager.Instance.Log(htmlBuffer);
                    return(false);
                }
            }
            catch (System.Exception ex)
            {
                LogManager.Instance.Log(string.Format("사용처리 에러남 {0}", ex.Message));
                return(false);
            }

            return(true);
        }
Esempio n. 9
0
        private void OnConnet(object sender, AsyncSocketConnectionEventArgs e)
        {
            LogManager.Instance.Log("private void OnConnet(object sender, AsyncSocketConnectionEventArgs e)");
            LQCrawlerInfo      pInfo = CrawlerManager.Instance.GetCrawlerInfo();
            C_TO_M_CHANNEL_IDX p     = new C_TO_M_CHANNEL_IDX();

            p.num = (byte)PACKET_IDX.CM_CHANNEL_IDX;
            p.len = (Int16)Marshal.SizeOf(p);
            //p.nIdx = CrawlerInfoManager.Instance.channelidx_;
            p.nIdx = pInfo.nIdx_;

            byte[] sendbuffer = new byte[p.len];
            PacketProcess.Serialize(p, sendbuffer);
            ((AsyncSocketClient)sender).Send(sendbuffer);
        }
Esempio n. 10
0
        private void button_FileShow_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(SelectedFilePath_) == true)
            {
                MessageBox.Show("파일을 먼저 선택하세요.");
                return;
            }

            string        channel_name = Convert.ToString(comboBox_SelectChannel.SelectedItem);
            LQCrawlerInfo pInfo        = GetCrawlingInfo(channel_name);

            CrawlerManager.Instance.SetCrawlerInfo(pInfo);

            if (pInfo == null)
            {
                MessageBox.Show("크롤러 정보가 잘못되었습니다.");
                return;
            }

            // 크롤러 정보 만들기
            // 크롤러 생성
            CrawlerManager.Instance.MakeCrawler(pInfo.Channel_Idx_);
            LQCrawlerBase pLQCrawlerBase = CrawlerManager.Instance.GetCrawler();

            if (pLQCrawlerBase == null)
            {
                MessageBox.Show("크롤러 매니저 생성 실패");
                return;
            }

            // 엑셀 데이터 읽어오기
            bool   bFixed    = false;
            string exceltype = Convert.ToString(comboBox_ExcelFrom.SelectedItem);

            if (string.Compare(ExcelTypeName_, exceltype) == 0)
            {
                bFixed = true;
            }

            OrderManager.Instance.Init();
            pLQCrawlerBase.LoadExcelAndInsertList(SelectedFilePath_, 0, bFixed, "");

            DataInsertToGrid();
        }
Esempio n. 11
0
        bool DownRefundList(string downfile, string goodscode)
        {
            // 웹 호출을 통해서 사용처리한다.
            LQCrawlerInfo pCrawlerInfo = CrawlerManager.Instance.GetCrawlerInfo();
            string        useurl       = @"http://biz.wemakeprice.com/dealer/deal_list/do_xsl_download/{GoodsCode}/1";
            string        useparam     = "";

            useparam = useparam.Replace("{GoodsCode}", goodscode);

            HttpWebResponse pResponse = HKHttpWebRequest.ReqHttpRequest("GET", useurl, useparam, cookie_);

            if (pResponse == null)
            {
                return(false);
            }

            if (pResponse.CharacterSet == "" || pResponse.CharacterSet == "euc-kr")
            {
                FileStream fs = File.OpenWrite(downfile);

                string d = pResponse.CharacterSet;
                Stream responsestream = pResponse.GetResponseStream();
                byte[] buffer         = new byte[2048];

                long totalBytesRead = 0;
                int  bytesRead;

                while ((bytesRead = responsestream.Read(buffer, 0, buffer.Length)) > 0)
                {
                    totalBytesRead += bytesRead;
                    fs.Write(buffer, 0, bytesRead);
                }
                fs.Close();
            }
            else
            {
                TextReader textReader = (TextReader) new StreamReader(pResponse.GetResponseStream(), Encoding.GetEncoding(pResponse.CharacterSet));
                string     htmlBuffer = textReader.ReadToEnd();
                HKLibrary.UTIL.HKFileHelper.SaveToFile(downfile, htmlBuffer);
            }

            return(true);
        }
Esempio n. 12
0
        // 체커로의 연결을 확인
        void CheckChecker()
        {
            //LogManager.Instance.Log("체커 연결 확인");

            bool bNeedConnection = false;

            if (checker_socket_ == null)
            {
                bNeedConnection = true;
            }
            else
            {
                if (checker_socket_.Connection == null)
                {
                    bNeedConnection = true;
                }
                else
                {
                    if (checker_socket_.Connection.Connected == false)
                    {
                        bNeedConnection = true;
                    }
                    else
                    {
                        LQCrawlerInfo    pInfo = CrawlerManager.Instance.GetCrawlerInfo();
                        C_TO_K_HEARTBEAT p     = new C_TO_K_HEARTBEAT();
                        p.num           = (byte)PACKET_IDX.CK_HEARTBEAT;
                        p.len           = (Int16)Marshal.SizeOf(p);
                        p.CrawlingCount = CrawlerManager.Instance.CrawlingCount();
                        byte[] sendbuffer = new byte[p.len];
                        PacketProcess.Serialize(p, sendbuffer);
                        checker_socket_.Send(sendbuffer);
                    }
                }
            }

            if (bNeedConnection == true)
            {
                CheckerConnect();
            }
        }
Esempio n. 13
0
        // 매니저의 연결을 확인
        void CheckManager()
        {
            bool bNeedConnection = false;

            if (manager_socket_ == null)
            {
                bNeedConnection = true;
            }
            else
            {
                if (manager_socket_.Connection == null)
                {
                    bNeedConnection = true;
                }
                else
                {
                    if (manager_socket_.Connection.Connected == false)
                    {
                        bNeedConnection = true;
                    }
                    else
                    {
                        LQCrawlerInfo      pInfo = CrawlerManager.Instance.GetCrawlerInfo();
                        C_TO_M_CHANNEL_IDX p     = new C_TO_M_CHANNEL_IDX();
                        p.num  = (byte)PACKET_IDX.CM_CHANNEL_IDX;
                        p.len  = (Int16)Marshal.SizeOf(p);
                        p.nIdx = pInfo.nIdx_;
                        byte[] sendbuffer = new byte[p.len];
                        PacketProcess.Serialize(p, sendbuffer);
                        manager_socket_.Send(sendbuffer);
                    }
                }
            }

            if (bNeedConnection == true)
            {
                ManagerConnect();
            }
        }
Esempio n. 14
0
        public override bool Use_Deal(Int32 goodsSeq, string cpcode, string goodscode)
        {
            LQCrawlerInfo pCrawlerInfo = CrawlerManager.Instance.GetCrawlerInfo();
            string        useurl       = pCrawlerInfo.UseUserUrl_;
            string        useparam     = pCrawlerInfo.UseUserParam_;

            string ticketcode = "";

            if (GetUseTicketInfo(cpcode, ref ticketcode) == false)
            {
                return(false);
            }

            useparam = useparam.Replace("{GoodsCode}", goodscode);
            useparam = useparam.Replace("{TicketCode}", ticketcode);
            useparam = useparam.Replace("{CouponCode}", cpcode);

            LogManager.Instance.Log(useurl);
            LogManager.Instance.Log(useparam);

            HttpWebResponse pResponse = HKHttpWebRequest.ReqHttpRequest("POST", useurl, useparam, cookie_);

            if (pResponse == null)
            {
                return(false);
            }

            TextReader r          = (TextReader) new StreamReader(pResponse.GetResponseStream());
            string     htmlBuffer = r.ReadToEnd();

            if (htmlBuffer.IndexOf(pCrawlerInfo.UseUserCheck_) < 0)
            {
                LogManager.Instance.Log(htmlBuffer);
                return(false);
            }
            return(true);
        }
Esempio n. 15
0
        // 크롤링 정보 로드 하기
        public static bool GetCrawlerInfo(SqlHelper dbHelper, Int32 nChannelIdx, Int32 PartnerIdx)
        {
            bool bResult = false;

            try
            {
                Dictionary <string, object> argdic = new Dictionary <string, object>();
                argdic.Add("xChannelIdx", nChannelIdx.ToString());
                argdic.Add("xPartnerIdx", PartnerIdx.ToString());

                MySqlDataReader datareader = dbHelper.call_proc("sp_select_Crawler_Info", argdic);
                while (datareader.Read())
                {
                    bResult = true;

                    LQCrawlerInfo pInfo = new LQCrawlerInfo();
                    pInfo.nIdx_         = Convert.ToInt32(datareader["idx"]);
                    pInfo.Channel_Idx_  = Convert.ToInt32(datareader["Channel_Idx"]);
                    pInfo.ChannelName_  = Convert.ToString(datareader["AuthorityName"]);
                    pInfo.AuthoritySeq_ = Convert.ToInt32(datareader["AuthoritySeq"]);
                    pInfo.PartnerSeq_   = Convert.ToInt32(datareader["PartnerSeq"]);
                    pInfo.PartnerName_  = Convert.ToString(datareader["PartnerName"]);

                    pInfo.MainUrl_            = Convert.ToString(datareader["MainUrl"]); // 메인 URL
                    pInfo.LoginIDTAG_         = Convert.ToString(datareader["LoginIDTAG"]);
                    pInfo.LoginPWTAG_         = Convert.ToString(datareader["LoginPWTAG"]);
                    pInfo.LoginUrl_           = Convert.ToString(datareader["LoginUrl"]);
                    pInfo.LoginParam_         = Convert.ToString(datareader["LoginParam"]);  // 로그인 셋팅값
                    pInfo.LoginID_            = Convert.ToString(datareader["LoginID"]);     // 로그인 아이디
                    pInfo.LoginPW_            = Convert.ToString(datareader["LoginPW"]);     // 로그인 암호
                    pInfo.LoginMethod_        = Convert.ToString(datareader["LoginMethod"]); // 로그인 방식
                    pInfo.LoginEvent_         = Convert.ToString(datareader["LoginEvent"]);  // 로그인 버튼 이벤트
                    pInfo.LoginCheck_         = Convert.ToString(datareader["LoginCheck"]);
                    pInfo.LoginType_          = Convert.ToChar(datareader["LoginType"]);
                    pInfo.ExcelDownUrl_       = Convert.ToString(datareader["ExcelDownUrl"]);    // 엑셀 다운로드 URL
                    pInfo.ExcelDownParameter_ = Convert.ToString(datareader["ExcelDownParameter"]);
                    pInfo.ExcelDownMethod_    = Convert.ToString(datareader["ExcelDownMethod"]); // 엑셀 다운로드 방식
                    pInfo.ExcelDownRule_      = Convert.ToString(datareader["ExcelDownRule"]);

                    pInfo.UseGoodsUrl_   = Convert.ToString(datareader["UseGoodsUrl"]);
                    pInfo.UseGoodsParam_ = Convert.ToString(datareader["UseGoodsParam"]);
                    pInfo.UseGoodsCheck_ = Convert.ToString(datareader["UseGoodsCheck"]);
                    pInfo.UseGoodsRule_  = Convert.ToString(datareader["UseGoodsRule"]);

                    pInfo.UseUserUrl_   = Convert.ToString(datareader["UseUserUrl"]);
                    pInfo.UseUserParam_ = Convert.ToString(datareader["UseUserParam"]);
                    pInfo.UseUserCheck_ = Convert.ToString(datareader["UseUserCheck"]);

                    pInfo.NUseGoodsUrl_   = Convert.ToString(datareader["NUseGoodsUrl"]);
                    pInfo.NUseGoodsParam_ = Convert.ToString(datareader["NUseGoodsParam"]);
                    pInfo.NUseGoodsCheck_ = Convert.ToString(datareader["NUseGoodsCheck"]);
                    pInfo.NUseGoodsRule_  = Convert.ToString(datareader["NUseGoodsRule"]);

                    pInfo.NUseUserUrl_   = Convert.ToString(datareader["NUseUserUrl"]);
                    pInfo.NUseUserParam_ = Convert.ToString(datareader["NUseUserParam"]);
                    pInfo.NUseUserCheck_ = Convert.ToString(datareader["NUseUserCheck"]);

                    pInfo.RUseUserUrl_   = Convert.ToString(datareader["RUseUserUrl"]);
                    pInfo.RUseUserParam_ = Convert.ToString(datareader["RUseUserParam"]);
                    pInfo.RUseUserCheck_ = Convert.ToString(datareader["RUseUserCheck"]);

                    pInfo.ExData_Start_       = Convert.ToInt32(datareader["ExData_Start"]);
                    pInfo.ExData_Coupncode_   = Convert.ToInt32(datareader["ExData_Coupncode"]);
                    pInfo.ExData_Buydate_     = Convert.ToInt32(datareader["ExData_Buydate"]);
                    pInfo.ExData_Option_      = Convert.ToInt32(datareader["ExData_Option"]);
                    pInfo.ExData_Cancel_      = Convert.ToInt32(datareader["ExData_Cancel"]);
                    pInfo.ExData_Count_       = Convert.ToInt32(datareader["ExData_Count"]);
                    pInfo.ExData_Use_         = Convert.ToInt32(datareader["ExData_Use"]);
                    pInfo.ExData_Buyer_       = Convert.ToInt32(datareader["ExData_Buyer"]);
                    pInfo.ExData_Buyphone_    = Convert.ToInt32(datareader["ExData_Buyphone"]);
                    pInfo.ExData_Price_       = Convert.ToInt32(datareader["ExData_Price"]);
                    pInfo.ExData_UseCheck_    = Convert.ToString(datareader["ExData_UseCheck"]);
                    pInfo.ExData_CancelCheck_ = Convert.ToString(datareader["ExData_CancelCheck"]);

                    CrawlerManager.Instance.SetCrawlerInfo(pInfo);
                    break;
                }
                datareader.Close();
                datareader.Dispose();
                datareader = null;
            }
            catch (System.Exception ex)
            {
                LogManager.Instance.Log(ex.Message);
                bResult = false;
            }

            return(bResult);
        }
Esempio n. 16
0
        // 모든 크롤러 정보 로드 하기
        public bool SelectAllChannelInfos()
        {
            try
            {
                SqlHelper pMySqlDB = new SqlHelper();

                pMySqlDB.Connect(CrawlerInfoManager.Instance.method_, CrawlerInfoManager.Instance.dbip_, CrawlerInfoManager.Instance.dbport_, CrawlerInfoManager.Instance.dbname_
                                 , CrawlerInfoManager.Instance.dbaccount_, CrawlerInfoManager.Instance.dbpw_, CrawlerInfoManager.Instance.sshhostname_, CrawlerInfoManager.Instance.sshuser_
                                 , CrawlerInfoManager.Instance.sshpw_);

                MySqlDataReader datareader = pMySqlDB.call_proc("sp_select_All_Crawler_Info", null);

                while (datareader.Read())
                {
                    LQCrawlerInfo pInfo = new LQCrawlerInfo();
                    pInfo.nIdx_        = Convert.ToInt32(datareader["idx"]);
                    pInfo.Channel_Idx_ = Convert.ToInt32(datareader["Channel_Idx"]);
                    pInfo.ChannelName_ = Convert.ToString(datareader["Channel_Name"]);
                    pInfo.PartnerSeq_  = Convert.ToInt32(datareader["PartnerSeq"]);
                    pInfo.PartnerName_ = Convert.ToString(datareader["PartnerName"]);

                    // 권리사 (2014-07-30) . 추가
                    pInfo.AuthoritySeq_  = Convert.ToInt32(datareader["AuthoritySeq"]);
                    pInfo.AuthoriryName_ = Convert.ToString(datareader["AuthorityName"]);

                    pInfo.MainUrl_            = Convert.ToString(datareader["MainUrl"]); // 메인 URL
                    pInfo.LoginIDTAG_         = Convert.ToString(datareader["LoginIDTAG"]);
                    pInfo.LoginPWTAG_         = Convert.ToString(datareader["LoginPWTAG"]);
                    pInfo.LoginUrl_           = Convert.ToString(datareader["LoginUrl"]);
                    pInfo.LoginParam_         = Convert.ToString(datareader["LoginParam"]);  // 로그인 셋팅값
                    pInfo.LoginID_            = Convert.ToString(datareader["LoginID"]);     // 로그인 아이디
                    pInfo.LoginPW_            = Convert.ToString(datareader["LoginPW"]);     // 로그인 암호
                    pInfo.LoginMethod_        = Convert.ToString(datareader["LoginMethod"]); // 로그인 방식
                    pInfo.LoginEvent_         = Convert.ToString(datareader["LoginEvent"]);  // 로그인 버튼 이벤트
                    pInfo.LoginCheck_         = Convert.ToString(datareader["LoginCheck"]);
                    pInfo.LoginType_          = Convert.ToChar(datareader["LoginType"]);
                    pInfo.ExcelDownUrl_       = Convert.ToString(datareader["ExcelDownUrl"]);    // 엑셀 다운로드 URL
                    pInfo.ExcelDownParameter_ = Convert.ToString(datareader["ExcelDownParameter"]);
                    pInfo.ExcelDownMethod_    = Convert.ToString(datareader["ExcelDownMethod"]); // 엑셀 다운로드 방식
                    pInfo.ExcelDownRule_      = Convert.ToString(datareader["ExcelDownRule"]);

                    pInfo.UseGoodsUrl_   = Convert.ToString(datareader["UseGoodsUrl"]);
                    pInfo.UseGoodsParam_ = Convert.ToString(datareader["UseGoodsParam"]);
                    pInfo.UseGoodsCheck_ = Convert.ToString(datareader["UseGoodsCheck"]);
                    pInfo.UseGoodsRule_  = Convert.ToString(datareader["UseGoodsRule"]);

                    pInfo.UseUserUrl_   = Convert.ToString(datareader["UseUserUrl"]);
                    pInfo.UseUserParam_ = Convert.ToString(datareader["UseUserParam"]);
                    pInfo.UseUserCheck_ = Convert.ToString(datareader["UseUserCheck"]);

                    pInfo.NUseGoodsUrl_   = Convert.ToString(datareader["NUseGoodsUrl"]);
                    pInfo.NUseGoodsParam_ = Convert.ToString(datareader["NUseGoodsParam"]);
                    pInfo.NUseGoodsCheck_ = Convert.ToString(datareader["NUseGoodsCheck"]);
                    pInfo.NUseGoodsRule_  = Convert.ToString(datareader["NUseGoodsRule"]);

                    pInfo.NUseUserUrl_   = Convert.ToString(datareader["NUseUserUrl"]);
                    pInfo.NUseUserParam_ = Convert.ToString(datareader["NUseUserParam"]);
                    pInfo.NUseUserCheck_ = Convert.ToString(datareader["NUseUserCheck"]);

                    pInfo.RUseUserUrl_   = Convert.ToString(datareader["RUseUserUrl"]);
                    pInfo.RUseUserParam_ = Convert.ToString(datareader["RUseUserParam"]);
                    pInfo.RUseUserCheck_ = Convert.ToString(datareader["RUseUserCheck"]);

                    pInfo.ExData_Start_       = Convert.ToInt32(datareader["ExData_Start"]);
                    pInfo.ExData_Coupncode_   = Convert.ToInt32(datareader["ExData_Coupncode"]);
                    pInfo.ExData_Buydate_     = Convert.ToInt32(datareader["ExData_Buydate"]);
                    pInfo.ExData_Option_      = Convert.ToInt32(datareader["ExData_Option"]);
                    pInfo.ExData_Cancel_      = Convert.ToInt32(datareader["ExData_Cancel"]);
                    pInfo.ExData_Use_         = Convert.ToInt32(datareader["ExData_Use"]);
                    pInfo.ExData_Buyer_       = Convert.ToInt32(datareader["ExData_Buyer"]);
                    pInfo.ExData_Count_       = Convert.ToInt32(datareader["ExData_Count"]);
                    pInfo.ExData_Buyphone_    = Convert.ToInt32(datareader["ExData_Buyphone"]);
                    pInfo.ExData_Price_       = Convert.ToInt32(datareader["ExData_Price"]);
                    pInfo.ExData_UseCheck_    = Convert.ToString(datareader["ExData_UseCheck"]);
                    pInfo.ExData_CancelCheck_ = Convert.ToString(datareader["ExData_CancelCheck"]);


                    CrawlerInfoList_.Add(pInfo.AuthoritySeq_, pInfo);
                }

                datareader.Close();
                datareader.Dispose();
                datareader = null;
            }
            catch (System.Exception ex)
            {
                LogManager.Instance.Log(string.Format("채널정보 로드 실패 {0}", ex.Message));
                return(false);
            }


            return(true);
        }
Esempio n. 17
0
 public void SetCrawlerInfo(LQStructures.LQCrawlerInfo pInfo)
 {
     CrawlerInfo_ = pInfo;
 }
Esempio n. 18
0
        private void button_DBInsert_Click(object sender, EventArgs e)
        {
            if (comboBox_SelectAuthor.SelectedIndex <= 0)
            {
                MessageBox.Show("권리사를 선택 해주세요.");
                return;
            }

            if (comboBox_SelectChannel.SelectedIndex <= 0)
            {
                MessageBox.Show("채널을 선택 해주세요.");
                return;
            }

            if (comboBox_ExcelFrom.SelectedIndex <= 0)
            {
                MessageBox.Show("엑셀 폼을 선택해 주세요.");
                return;
            }

            LQCrawlerBase pLQCrawlerBase = CrawlerManager.Instance.GetCrawler();
            LQCrawlerInfo pLQCrawlerInfo = CrawlerManager.Instance.GetCrawlerInfo();

            if (pLQCrawlerBase == null || pLQCrawlerInfo == null)
            {
                MessageBox.Show("크롤러가 생성되지 않았습니다.");
                return;
            }

            // 상품 정보 읽어오기
            SqlHelper pMySqlDB = new SqlHelper();

            pMySqlDB.Connect(CrawlerInfoManager.Instance.method_, CrawlerInfoManager.Instance.dbip_, CrawlerInfoManager.Instance.dbport_, CrawlerInfoManager.Instance.dbname_
                             , CrawlerInfoManager.Instance.dbaccount_, CrawlerInfoManager.Instance.dbpw_, CrawlerInfoManager.Instance.sshhostname_
                             , CrawlerInfoManager.Instance.sshuser_, CrawlerInfoManager.Instance.sshpw_);

            DBFunctions.SelectStateTable(pMySqlDB);
            DBFunctions.GetGoodsTable(pMySqlDB, pLQCrawlerInfo.Channel_Idx_, pLQCrawlerInfo.AuthoritySeq_);
            Dictionary <Int32, ChannelGoodInfo> pGoodInfoList = CrawlerManager.Instance.GetGoodsInfo();

            DBFunctions.Select_tblOrder(pMySqlDB, pLQCrawlerInfo.Channel_Idx_);
            DBFunctions.Select_tblOrderWr(pMySqlDB, pLQCrawlerInfo.Channel_Idx_);

            pLQCrawlerBase.Login();
            pLQCrawlerBase.Combine_DB_And_Excel(false);
            pLQCrawlerBase.Process_RefundData(pMySqlDB);
            pLQCrawlerBase.Process_ExpiredData();

            // 채널에 상품처리// 채널에 취소처리  // 채널에 반품처리
            pLQCrawlerBase.Process_Use_Cancel_Refund();

            // DB 에 처리
            SqlHelper pMySqlDB2 = new SqlHelper();

            pMySqlDB2.Connect(CrawlerInfoManager.Instance.method_, CrawlerInfoManager.Instance.dbip_, CrawlerInfoManager.Instance.dbport_, CrawlerInfoManager.Instance.dbname_
                              , CrawlerInfoManager.Instance.dbaccount_, CrawlerInfoManager.Instance.dbpw_, CrawlerInfoManager.Instance.sshhostname_
                              , CrawlerInfoManager.Instance.sshuser_, CrawlerInfoManager.Instance.sshpw_);
            pLQCrawlerBase.Process_DB(pMySqlDB2);

            if (pMySqlDB2.Close() == false)
            {
                LogManager.Instance.Log("<<< 삭제 실패 2 >>>");
            }

            pMySqlDB2 = null;

            MessageBox.Show("크롤링이 끝났습니다.");
        }
Esempio n. 19
0
        // 상품 사용 처리 티켓번호 얻어오기
        bool GetUseTicketInfo(Int32 goodsSeq, string cpcode, ref string ticketcode)
        {
            LQCrawlerInfo pCrawlerInfo = CrawlerManager.Instance.GetCrawlerInfo();
            Dictionary <Int32, ChannelGoodInfo> pInfoList = CrawlerManager.Instance.GetGoodsInfo();

            ChannelGoodInfo pGoodInfo = pInfoList[goodsSeq];

            if (pGoodInfo == null)
            {
                string Message = string.Format("GetUseTicketInfo 매칭되는 코드가 없다.{0}/{1}{2}", goodsSeq, cpcode, ticketcode);
                LogManager.Instance.Log(Message);
                return(false);
            }

            DateTime dtNow = DateTime.Now;
            string   eDate = "";

            if (pGoodInfo.eDateFormat_ != null)
            {
                eDate = string.Format(pGoodInfo.eDateFormat_, dtNow.Year, dtNow.Month, dtNow.Day);
            }


            string strurl   = pCrawlerInfo.UseGoodsUrl_;
            string strparam = pCrawlerInfo.UseGoodsParam_;

            string[] cpcodeArray = cpcode.Split('_');
            cpcode   = cpcodeArray[0];
            strparam = strparam.Replace("{CouponCode}", cpcode);
            strparam = strparam.Replace("{sDate}", pGoodInfo.sDate_);
            strparam = strparam.Replace("{eDate}", eDate);

            HttpWebResponse pResponse = HKHttpWebRequest.ReqHttpRequest("GET", strurl, strparam, cookie_);

            if (pResponse == null)
            {
                return(false);
            }

            TextReader r          = (TextReader) new StreamReader(pResponse.GetResponseStream());
            string     htmlBuffer = r.ReadToEnd();

            if (htmlBuffer.IndexOf(pCrawlerInfo.UseGoodsCheck_) < 0)
            {
                LogManager.Instance.Log(htmlBuffer);
                return(false);
            }

            Regex           re = new Regex(pCrawlerInfo.UseGoodsRule_, RegexOptions.IgnoreCase | RegexOptions.Singleline);
            MatchCollection oe = re.Matches(htmlBuffer);

            if (oe.Count != 0)
            {
                ticketcode = oe[0].Groups["TicketCode"].ToString();
            }
            else
            {
                return(false);
            }
            return(true);
        }