diff --git a/AllBase/BaseClass.cs b/AllBase/BaseClass.cs index 47e9342..f0f68d4 100644 --- a/AllBase/BaseClass.cs +++ b/AllBase/BaseClass.cs @@ -27,7 +27,7 @@ namespace AllBase /// /// 版本ID /// - public static int VersionCount = 631; + public static int VersionCount = 633; //public static int VersionCount = 613; /// diff --git a/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectListManageForm.Designer.cs b/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectListManageForm.Designer.cs index f5adcff..d343bfa 100644 --- a/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectListManageForm.Designer.cs +++ b/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectListManageForm.Designer.cs @@ -145,6 +145,7 @@ this.colOpResult = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage(); this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); + this.chkLongTitle = new TemuKJD.UserComponent.UcCheckBox(this.components); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); @@ -184,6 +185,7 @@ // // splitContainer1.Panel1 // + this.splitContainer1.Panel1.Controls.Add(this.chkLongTitle); this.splitContainer1.Panel1.Controls.Add(this.chkSameExtcodeRandomMainImg); this.splitContainer1.Panel1.Controls.Add(this.lblSkuRandomLetterNotes); this.splitContainer1.Panel1.Controls.Add(this.btnAdd); @@ -818,7 +820,7 @@ "核价成功", "核价成功(重复)", "重复"}); - this.cmbNotes.Location = new System.Drawing.Point(917, 8); + this.cmbNotes.Location = new System.Drawing.Point(917, 5); this.cmbNotes.Margin = new System.Windows.Forms.Padding(0); this.cmbNotes.Name = "cmbNotes"; this.cmbNotes.Size = new System.Drawing.Size(65, 25); @@ -843,7 +845,7 @@ "已上传", "草稿箱", "全部"}); - this.cmbStatus.Location = new System.Drawing.Point(814, 8); + this.cmbStatus.Location = new System.Drawing.Point(814, 5); this.cmbStatus.Margin = new System.Windows.Forms.Padding(0); this.cmbStatus.Name = "cmbStatus"; this.cmbStatus.Size = new System.Drawing.Size(65, 25); @@ -1210,7 +1212,7 @@ "全部", "重上", "已买"}); - this.cmbUserNotes.Location = new System.Drawing.Point(1044, 8); + this.cmbUserNotes.Location = new System.Drawing.Point(1044, 5); this.cmbUserNotes.Margin = new System.Windows.Forms.Padding(0); this.cmbUserNotes.Name = "cmbUserNotes"; this.cmbUserNotes.Size = new System.Drawing.Size(65, 25); @@ -1683,6 +1685,18 @@ this.statusBar.Size = new System.Drawing.Size(1558, 25); this.statusBar.TabIndex = 5; // + // chkLongTitle + // + this.chkLongTitle.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.chkLongTitle.AutoSize = true; + this.chkLongTitle.Location = new System.Drawing.Point(1276, 71); + this.chkLongTitle.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.chkLongTitle.Name = "chkLongTitle"; + this.chkLongTitle.Size = new System.Drawing.Size(96, 21); + this.chkLongTitle.TabIndex = 660; + this.chkLongTitle.Text = "500字长标题"; + this.chkLongTitle.UseVisualStyleBackColor = true; + // // DbProductSelectListManageForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; @@ -1839,5 +1853,6 @@ private UserComponent.UcCheckBox chkSkuRandomLetter; private System.Windows.Forms.Label lblSkuRandomLetterNotes; private UserComponent.UcCheckBox chkSameExtcodeRandomMainImg; + private UserComponent.UcCheckBox chkLongTitle; } } \ No newline at end of file diff --git a/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectListManageForm.cs b/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectListManageForm.cs index 7c712ce..e84e3e2 100644 --- a/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectListManageForm.cs +++ b/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectListManageForm.cs @@ -1139,9 +1139,20 @@ namespace TemuKJD.KJDForms.ProductSelectForms var allTxt = headWords + dbProd.product_name + centerWords + fissionTxt + "," + endWords; //var allTxt = dbProd.product_name + centerWords + fissionTxt + ","; byte[] bytes = Encoding.GetEncoding("gb2312").GetBytes(allTxt); - if (bytes.Length > 250) + int titleLength = allTxt.Length; + if (chkLongTitle.Checked) { - break; + if (titleLength > 500) + { + break; + } + } + else + { + if (bytes.Length > 250) + { + break; + } } centerWords += fissionTxt + ","; } diff --git a/TEMUKJD/MainForm.cs b/TEMUKJD/MainForm.cs index ca9f5a1..ed3356c 100644 --- a/TEMUKJD/MainForm.cs +++ b/TEMUKJD/MainForm.cs @@ -190,6 +190,8 @@ namespace TemuKJD //settings.CachePath = null; //禁止缓存 //settings.CefCommandLineArgs.Add("enable-javascript", "1"); //settings.CefCommandLineArgs.Add("disable-features", "NetworkService,NetworkServiceInProcess"); + settings.CefCommandLineArgs.Add("--disable-web-security", "1"); + //settings.CefCommandLineArgs.Add("--disable-request-handling-for-testing", "1"); Cef.Initialize(settings); } diff --git a/TEMUKJD/PDDForms/ShopForms/PDDShopLoginForm.cs b/TEMUKJD/PDDForms/ShopForms/PDDShopLoginForm.cs index 099fd82..4c9477a 100644 --- a/TEMUKJD/PDDForms/ShopForms/PDDShopLoginForm.cs +++ b/TEMUKJD/PDDForms/ShopForms/PDDShopLoginForm.cs @@ -1371,7 +1371,7 @@ function getElementWithText(sText) } - private void btnSendToUpload_Click(object sender, EventArgs e) + private async void btnSendToUpload_Click(object sender, EventArgs e) { if (prodUserSelectForm == null) { @@ -1387,26 +1387,55 @@ function getElementWithText(sText) var prodInfoStr = JsonHelper.SerializeObject(jObj["result"]); PDDProductDetailInfo detailInfo = JsonHelper.DeserializeJsonToObject(prodInfoStr); - //string jsStr = "function getSkuChange() {" + - // " var spec1 = document.getElementsByClassName('property-container-v2 package');" + - // " var spec2 = document.getElementsByClassName('goods-spec-row');" + - // " if (spec1) return 'success';" + - // " if (spec1) return spec1;" + - // " else if (spec2) return spec2;" + - // " else return document.body;" + - // "}" + - // "getSkuChange();"; + string jsStr = "function getSkuChange() {\r\n" + + //" var spec1 = window.parent.document.getElementsByClassName('property-container-v2 package');\r\n" + + " var spec1 = window.parent.document.getElementsByClassName('property-values-container');\r\n" + + " var spec2 = window.parent.document.getElementsByClassName('goods-spec-row');\r\n" + + " var rst = '';\r\n" + + " if (spec1.length > 0) {\r\n" + + " rst += spec1[0].innerHTML + '&&&&SPLIT1&&&&';\r\n" + + " for (i = 1; i < spec1.length; i++) {\r\n" + + " var chkCheckedLst = spec1[i].getElementsByClassName('CBX_active_5-161-0');\r\n" + + " if (chkCheckedLst.length > 0) {\r\n" + + " for (j = 0; j < chkCheckedLst.length; j++){\r\n" + + " rst += chkCheckedLst[j].innerHTML;\r\n" + + " }\r\n" + + " rst += '&&&&SPLIT1&&&&';\r\n" + + " }\r\n" + + " else\r\n" + + " rst += spec1[i].innerHTML + '&&&&SPLIT1&&&&';" + + " }\r\n" + + " return rst;\r\n" + + " }\r\n" + + " else if (spec2.length > 0) {\r\n" + + " for (i = 0; i < spec2.length; i++) {\r\n" + + " rst += spec2[i].innerHTML + '&&&&SPLIT2&&&&';" + + " }\r\n" + + " return rst;\r\n" + + " }\r\n" + + " else return document.body.innerHTML;\r\n" + + "}\r\n" + + "getSkuChange();"; - //Task.Run(() => - //{ - // var t1 = cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(jsStr); - // t1.Wait(); - - - // var t2 = cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync("alert('" + 333 + "');"); - // t2.Wait(2000); - //}); - //return; + string skuHtml = ""; + // 此处不使用工作台无法正常执行js // cef Request BrowserId : 1 not found it's likely the browser is already closed + // 获取页面内sku信息(支持删除sku后抓取商品也删除对应sku) + var client = cefWebBrowser.GetDevToolsClient(); + if (client != null) + { + var result = await client.Runtime.EvaluateAsync(jsStr, null, true, null, null, true, null, true); + if (result != null && result.ExceptionDetails == null) + { + skuHtml = (result.Result?.Value).ParseToString(); + } + } + var skuHtmlLst = skuHtml.Split(new string[] { "&&&&SPLIT1&&&&", "&&&&SPLIT2&&&&" }, StringSplitOptions.RemoveEmptyEntries); + if (skuHtml.Contains("&&&&SPLIT1&&&&")) + { + } + else + { + } var skuPrice = (this.txtSendPrice.Text.ParseToDecimal() * 100).ParseToInt(); foreach (var sku in detailInfo.sku) @@ -1421,12 +1450,23 @@ function getElementWithText(sText) List skuTmpLst = new List(); foreach (var sku in detailInfo.sku) { - if (1==1) + string spec1Name = sku.spec.FirstOrDefault().spec_name; + string spec2Name = sku.spec.LastOrDefault().spec_name; + if (string.IsNullOrEmpty(skuHtml)) { skuTmpLst.Add(sku); } + else if ((skuHtmlLst.FirstOrDefault().Contains("value=\"" + spec1Name + "\"") || skuHtmlLst.FirstOrDefault().Contains(">" + spec1Name + "<")) && + (skuHtmlLst.LastOrDefault().Contains("value=\"" + spec2Name + "\"") || skuHtmlLst.LastOrDefault().Contains(">" + spec2Name + "<"))) + { + skuTmpLst.Add(sku); + } + else + { + } } - detailInfo.sku = skuTmpLst; + if (skuTmpLst.Count > 0) + detailInfo.sku = skuTmpLst; jObj = JObject.Parse(pddSourceGoodsDecorationTemp); var prodDecorationTStr = JsonHelper.SerializeObject(jObj["result"]);