// 환불 승인 처리 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); }
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); }
public ResultData ResultData_ = new ResultData(); // 크롤링 결과 public void InitCrawler() { ChannelInfo_ = null; CrawlerInfo_ = null; Crawler_ = null; GoodsInfoList_.Clear(); }
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); }
// 환불 승인 처리 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); }
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); }
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 type=""hidden"" name=""ACCESS_NO"" 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); }
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); }
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); }
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(); }
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); }
// 체커로의 연결을 확인 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(); } }
// 매니저의 연결을 확인 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(); } }
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); }
// 크롤링 정보 로드 하기 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); }
// 모든 크롤러 정보 로드 하기 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); }
public void SetCrawlerInfo(LQStructures.LQCrawlerInfo pInfo) { CrawlerInfo_ = pInfo; }
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("크롤링이 끝났습니다."); }
// 상품 사용 처리 티켓번호 얻어오기 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); }