删除没用的文件

This commit is contained in:
wule committed 2025-12-23 11:26:05 +08:00
1 parent 358bb5490e
commit 9e0a3fc10c
32 files changed
+3 -17521

No files matched your search

+1 -21
View File
@@ -19,34 +19,14 @@ namespace AllBase.Helper
/// </summary>
public static ConcurrentList<ShopLoginInfo> ShopLoginList { get; set; } = new ConcurrentList<ShopLoginInfo>();
/// <summary>
/// 非当前账户下的店铺列表
/// </summary>
public static ConcurrentList<ShopLoginInfo> DouShopLoginOtherUserShopList { get; set; }
/// <summary>
/// 店铺设置参数
/// </summary>
public static TemuShopSettingParam TemuShopSettingParam { get; set; } = new TemuShopSettingParam();
/// <summary>
/// 抖音号cookie
/// </summary>
public static string DouUserCookies { get; set; }
/// <summary>
/// 巨量百应cookies
/// </summary>
public static string DouBuyinCookies { get; set; }
public static IDictionary<string, object> dicLocalStorage { get; set; }
public static IDictionary<string, object> dicLocalDetailStorage { get; set; }
public static FissionSettingParam FissionSettingParam { get; set; }
public static TemuProductWords ProductWords { get; set; }
public static string cAgentIpCode { get; } = "AFZ94w3a";
public static List<SameProductCheckParam> SameProductCheckParamList { get; set; }
public static TemuProductWords ProductWords { get; set; }
}
}
+1 -58
View File
@@ -178,25 +178,6 @@
<Compile Include="KJDForms\JITForms\JitShopActiveForm.Designer.cs">
<DependentUpon>JitShopActiveForm.cs</DependentUpon>
</Compile>
<Compile Include="KJDForms\ProductForms\FissionUserControl\Fission.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="KJDForms\ProductForms\FissionUserControl\Fission.designer.cs">
<DependentUpon>Fission.cs</DependentUpon>
</Compile>
<Compile Include="KJDForms\ProductForms\FissionUserControl\FissionBrowserObject.cs" />
<Compile Include="KJDForms\ProductForms\FissionUserControl\FissionDataBaseForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="KJDForms\ProductForms\FissionUserControl\FissionDataBaseForm.designer.cs">
<DependentUpon>FissionDataBaseForm.cs</DependentUpon>
</Compile>
<Compile Include="KJDForms\ProductForms\FissionUserControl\FissionShowBigImgForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="KJDForms\ProductForms\FissionUserControl\FissionShowBigImgForm.designer.cs">
<DependentUpon>FissionShowBigImgForm.cs</DependentUpon>
</Compile>
<Compile Include="KJDForms\AdminForms\AdminProductPriceCheckForm.cs">
<SubType>Form</SubType>
</Compile>
@@ -324,18 +305,6 @@
<Compile Include="KJDForms\OrderForms\OrderForm.Designer.cs">
<DependentUpon>OrderForm.cs</DependentUpon>
</Compile>
<Compile Include="KJDForms\ProductForms\FissionUserControl\UcCategoryProp.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="KJDForms\ProductForms\FissionUserControl\UcCategoryProp.Designer.cs">
<DependentUpon>UcCategoryProp.cs</DependentUpon>
</Compile>
<Compile Include="KJDForms\ProductForms\FissionUserControl\UcQualifiaction.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="KJDForms\ProductForms\FissionUserControl\UcQualifiaction.Designer.cs">
<DependentUpon>UcQualifiaction.cs</DependentUpon>
</Compile>
<Compile Include="KJDForms\ProductForms\PriceManageForm.cs">
<SubType>Form</SubType>
</Compile>
@@ -679,12 +648,6 @@
<Compile Include="ToolForms\Old\JDVerifyForm\CollectVerifyForm.designer.cs">
<DependentUpon>CollectVerifyForm.cs</DependentUpon>
</Compile>
<Compile Include="ToolForms\Old\KeywordsForms\KeywordsCatchFrom.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="ToolForms\Old\KeywordsForms\KeywordsCatchFrom.Designer.cs">
<DependentUpon>KeywordsCatchFrom.cs</DependentUpon>
</Compile>
<Compile Include="ToolForms\Old\MeituMessageDialog.cs">
<SubType>Form</SubType>
</Compile>
@@ -958,15 +921,6 @@
<EmbeddedResource Include="KJDForms\JITForms\JitShopActiveForm.resx">
<DependentUpon>JitShopActiveForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="KJDForms\ProductForms\FissionUserControl\Fission.resx">
<DependentUpon>Fission.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="KJDForms\ProductForms\FissionUserControl\FissionDataBaseForm.resx">
<DependentUpon>FissionDataBaseForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="KJDForms\ProductForms\FissionUserControl\FissionShowBigImgForm.resx">
<DependentUpon>FissionShowBigImgForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="KJDForms\AdminForms\AdminProductPriceCheckForm.resx">
<DependentUpon>AdminProductPriceCheckForm.cs</DependentUpon>
</EmbeddedResource>
@@ -1030,12 +984,6 @@
<EmbeddedResource Include="KJDForms\OrderForms\OrderForm.resx">
<DependentUpon>OrderForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="KJDForms\ProductForms\FissionUserControl\UcCategoryProp.resx">
<DependentUpon>UcCategoryProp.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="KJDForms\ProductForms\FissionUserControl\UcQualifiaction.resx">
<DependentUpon>UcQualifiaction.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="KJDForms\ProductForms\PriceManageForm.resx">
<DependentUpon>PriceManageForm.cs</DependentUpon>
</EmbeddedResource>
@@ -1207,9 +1155,6 @@
<EmbeddedResource Include="ToolForms\Old\JDVerifyForm\CollectVerifyForm.resx">
<DependentUpon>CollectVerifyForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="ToolForms\Old\KeywordsForms\KeywordsCatchFrom.resx">
<DependentUpon>KeywordsCatchFrom.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="ToolForms\Old\MeituMessageDialog.resx">
<DependentUpon>MeituMessageDialog.cs</DependentUpon>
</EmbeddedResource>
@@ -1432,9 +1377,7 @@
<Name>Work</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Folder Include="KJDForms\ProductForms\ProductResponse\" />
</ItemGroup>
<ItemGroup />
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.6.2">
<Visible>False</Visible>
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -1,366 +0,0 @@
using AllBase;
using AllBase.Model.Param.FissionManage;
using TemuKJD.BaseForms;
using TemuKJD.KJDForms.ToolForms;
using NaiBa.Util;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Work;
namespace TemuKJD.KJDForms.ProductForms
{
class FissionBrowserObject
{
public delegate void InformationReceivedHandler(string information);
public event InformationReceivedHandler InformationReceived;
/// <summary>
/// 编辑图片后更新到服务器
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public string updatePic(string str)
{
string requestData = "data=" + GetHtml.UrlEncodeUtf8(str);
string url = BaseClass.FissionPicUrl;
string result = GetHtml.PostUtf8(url, requestData);
return result.Replace("https:", "http:");
}
string addResult = "";
public string addLocalPic()
{
// 单线程单元(STA)模式运行文件对话框,否则会报错。
System.Threading.Thread InvokeThread = new System.Threading.Thread(new System.Threading.ThreadStart(addLocalPicInvokeMethod));
InvokeThread.SetApartmentState(System.Threading.ApartmentState.STA);
InvokeThread.Start();
InvokeThread.Join();
if (addResult.Equals("图片过大"))
{
BaseMsgForm.ShowInfo("本地图片大小不能超过500KB", "提示");
return "";
}
return addResult;
}
public string addLocalPic(bool isMultiselect, int maxSize = 1024)
{
addLocalPicInvokeMethod(isMultiselect, maxSize);
if (addResult.Equals("图片过大"))
{
BaseMsgForm.ShowInfo(("本地图片大小不能超过" + maxSize + "KB").Replace("1024KB", "1MB"), "提示");
return "";
}
return addResult;
}
private void addLocalPicInvokeMethod()
{
addLocalPicInvokeMethod(true);
}
private string addLocalPicInvokeMethod(bool isMultiselect, int maxSize = 500)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "图片文件|*.png;*.jpg;*.jpeg;*.gif";
ofd.ValidateNames = true;
ofd.CheckPathExists = true;
ofd.CheckFileExists = true;
ofd.Multiselect = isMultiselect;
if (ofd.ShowDialog() == DialogResult.OK)
{
var result = "";
foreach (var fName in ofd.FileNames)
{
FileInfo file = new FileInfo(fName);
var size = file.Length;
// 图片大小限制500k;
if (size <= 1024 * maxSize)
{
string strFileName = fName;
var base64 = "data:image/" + System.IO.Path.GetExtension(fName).Replace(".", "").Replace("jpeg", "jpg") +
";base64," + Convert.ToBase64String(System.IO.File.ReadAllBytes(strFileName));
result += updatePic(base64) + "|";
}
else
{
result += "图片过大|";
}
}
addResult = result.TrimEnd('|');
}
return addResult;
}
/// <summary>
/// 前端处理图片如果有跨域问题,将图片地址传到cs代码解决
/// </summary>
/// <param name="picUrl">跨域的图片地址</param>
/// <returns>图片的base64数据</returns>
public string getHttpPicBase64(string picUrl)
{
System.Drawing.Image image = System.Drawing.Image.FromStream(
System.Net.WebRequest.Create(picUrl).GetResponse().GetResponseStream());
System.IO.MemoryStream ms = new System.IO.MemoryStream();
image.Save(ms, image.RawFormat);
byte[] byteArray = ms.ToArray();
var str64 = "data:image/" + System.IO.Path.GetExtension(picUrl).Replace(".", "").Replace("jpeg", "jpg") +
";base64," + Convert.ToBase64String(byteArray);
ms.Close();
image.Dispose();
return str64;
}
/// <summary>
/// 使用美图秀秀软件修图
/// </summary>
/// <param name="src">图片网址</param>
/// <param name="bOpenMeitu">下载图片后是否打开美图</param>
public string OpenMeitu(string src, bool bOpenMeitu = true)
{
string imgName = System.IO.Path.GetFileNameWithoutExtension(src) +
System.IO.Path.GetExtension(src).Replace(".jpeg", ".jpg");
string savePath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
string saveFilePath = System.IO.Path.Combine(savePath, imgName);
System.Net.WebRequest imgRequst = System.Net.WebRequest.Create(src);
System.Drawing.Image downImage = System.Drawing.Image.FromStream(imgRequst.GetResponse().GetResponseStream());
downImage.Save(saveFilePath);
downImage.Dispose();
if (!bOpenMeitu) return "success";
if (System.IO.File.Exists(saveFilePath))
{
if (!System.IO.File.Exists(Fission.GetInstance().MeituPath))
{
//MessageBox.Show("请指定美图秀秀启动文件。");
if (MeituMessageDialog.ShowMessageDialog("请指定美图秀秀启动文件。\r\n如未安装美图秀秀,请下载。", "下载美图秀秀,指定启动文件") == "指定启动文件")
{
// 单线程单元(STA)模式运行文件对话框,否则会报错。
System.Threading.Thread InvokeThread = new System.Threading.Thread(new System.Threading.ThreadStart(SetMeituPath));
InvokeThread.SetApartmentState(System.Threading.ApartmentState.STA);
InvokeThread.Start();
InvokeThread.Join();
}
}
if (System.IO.File.Exists(Fission.GetInstance().MeituPath))
{
try
{
int i = 0;
while (i < 2500)
{
System.Diagnostics.Process[] processList = System.Diagnostics.Process.GetProcesses();
if (processList.Any(p => p.ProcessName.ToLower() == "xiuxiu"))
{
System.Threading.Thread.Sleep(250);
i += 250;
continue;
}
break;
}
System.Diagnostics.Process.Start(Fission.GetInstance().MeituPath, saveFilePath);
return "success";
}
catch { }
}
}
return "failed";
}
private void SetMeituPath()
{
Fission.GetInstance().setMeituPath();
}
/// <summary>
/// 将美图修好的本地文件回传服务器
/// </summary>
public string PullBackPic(string src)
{
string imgName = Path.GetFileName(src);
string savePath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
string filePath = Path.Combine(savePath, imgName);
filePath = GetMeituHandledFilePath(filePath);
if (!File.Exists(filePath))
{
BaseMsgForm.ShowInfo("未找到修图文件,请确认已使用[美图秀秀]\r\n进行修图且保存路径为[覆盖原图]!", "提示");
return "";
}
var fileByte = System.IO.File.ReadAllBytes(filePath);
//using (FileStream fs = new FileStream(filePath,FileMode.Open,FileAccess.Read))
//{
// System.Drawing.Image img = Image.FromStream(fs);
// var width = img.Width;
// img.Dispose();
// if (width < 480)
// {
// BaseMsgForm.ShowError("详情图宽度不得小于480", "错误");
// return "";
// }
//}
if (fileByte.Length > 1024 * 500)
{
BaseMsgForm.ShowError("本地图片大小不能超过500KB", "错误");
return "";
}
var base64 = "data:image/" + System.IO.Path.GetExtension(filePath).Replace(".", "").Replace("jpeg", "jpg") +
";base64," + Convert.ToBase64String(fileByte);
var uploadResult = updatePic(base64);
return uploadResult;
}
void SendCmd(string information)
{
if (InformationReceived != null)
InformationReceived(information);
}
/// <summary>
/// 显示大图
/// </summary>
/// <param name="imgSrc"></param>
/// <returns></returns>
public string ShowBigImg(string imgSrc)
{
var f = Fission.GetInstance();
if (f != null && !string.IsNullOrEmpty(imgSrc))
{
string[] str = imgSrc.Split('|');
imgSrc = str[0];
string imgId = "";
if (str.Length > 1)
imgId = str[1];
return f.ShowBigImg(imgSrc, imgId);
}
return "error";
}
/// <summary>
/// 编辑图片后加载
/// </summary>
/// <param name="id"></param>
/// <param name="src"></param>
/// <param name="text"></param>
/// <returns></returns>
public string OnloadImg(string id, string src)
{
//src = Fission.RemovePrefix(src);
//if (src.Contains("deifei.com"))
//{
// var jdImg = Fission.jdTransparentImgList.Find(x => x.id == id);
// if (jdImg != null)
// {
// jdImg.OriginalImgUrl = src;
// return JsonHelper.SerializeObject(new { code = 1, src = "http://" + jdImg.OriginalImgUrl, msg = "原" });
// }
//}
return JsonHelper.SerializeObject(new { code = 0, src = src, msg = "" });
}
/// <summary>
/// 获取美图秀秀处理过的图片路径
/// </summary>
/// <param name="filePath">初始图片路径</param>
/// <returns>处理后的图片路径</returns>
private string GetMeituHandledFilePath(string filePath)
{
string filePathWithoutExt = filePath.Substring(0, filePath.LastIndexOf('.'));
//jpg png bmp为美图秀秀指定的三种图片保存格式
if (File.Exists(filePathWithoutExt + ".jpg"))
{
return filePathWithoutExt + ".jpg";
}
if (File.Exists(filePathWithoutExt + ".png"))
{
return filePathWithoutExt + ".png";
}
if (File.Exists(filePathWithoutExt + ".bmp"))
{
return filePathWithoutExt + ".bmp";
}
return filePath;
}
/// <summary>
/// 裂变页面 js回调添加入库数据
/// </summary>
/// <param name="jsonStr"></param>
/// <returns></returns>
public string updateFessionDate(string jsonStr)
{
try
{
FissionDataModel fessionDataModel = Newtonsoft.Json.JsonConvert.DeserializeObject<FissionDataModel>(jsonStr);
fessionDataModel.prop_pic?.Clear();
var props = JsonHelper.DeserializeJsonToObject<List<PropBase>>(fessionDataModel.props);
foreach (var prop in props)
{
foreach (var value in prop.Values)
{
if (!string.IsNullOrEmpty(value.image))
{
var strImg = value.image;
if (!strImg.StartsWith("http"))
strImg = "http:" + strImg;
fessionDataModel.prop_pic.Add(strImg);
}
}
}
jsonStr = JsonHelper.SerializeObject(fessionDataModel);
// 调用php后台
string requestData = UserLogin.GetSignaturex() + "&act=add&text=" + GetHtml.UrlEncodeUtf8(jsonStr);
string url = BaseClass.BuildFissionObjString("fession_api");
string result = GetHtml.PostUtf8(url, requestData);
if (!result.Contains("\"code\":0"))
{
}
return result;
}
catch (Exception ex)
{
return "{\"code\":1}";
}
}
public string GetFissionPicCountPreLine()
{
var count = ""; // NaiBa.Util.Helper.ConfigHelper.LoadConfig<string>("fission_pic_count_pre_line");
try { count = NaiBa.Util.Helper.FileHelper.ReadAllText("data\\config\\fission_pic_count_pre_line")?.Trim('\"'); } catch { }
if (string.IsNullOrEmpty(count))
return "3";
else
return count;
}
public string SaveFissionPicCountPreLine(string count)
{
try
{
NaiBa.Util.Helper.ConfigHelper.SaveConfig<string>("fission_pic_count_pre_line", count);
return "success";
}
catch
{
}
return "failed";
}
}
}
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -1,183 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="ColSelect.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ColId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Title.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ColOriginalTitle.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Price.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="SaleAmount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ColCategory.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ColFullCategory.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ColCategory1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ColCategory2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ColCategory3.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ColTitleNum.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ColUseCount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ColDel.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ColReEdit.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colMessage.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ColSource.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ColSourceFake.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ColRkTime.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ColUpdateTime.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ColNeedUpdate.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>
@@ -1,199 +0,0 @@
using CefSharp;
using TemuKJD.BaseForms;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TemuKJD.KJDForms.ProductForms
{
public partial class FissionShowBigImgForm : LRBaseForm
{
public string imgUrl = "";
public string imgId = "";
public FissionShowBigImgForm(string ImgUrl = "", string ImgId = "")
{
this.DoubleBuffered = true;//设置本窗体
SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景.
SetStyle(ControlStyles.DoubleBuffer, true); // 双缓冲
SetStyle(ControlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true);
UpdateStyles();
InitializeComponent();
imgUrl = ImgUrl;
imgId = ImgId;
this.ShowMaximizeBox = true;
}
protected override void WndProc(ref Message m)
{
if (m.Msg == 0x0014) // 禁掉清除背景消息
return;
const int WM_HOTKEY = 0x0312;
//按快捷键
switch (m.Msg)
{
case WM_HOTKEY:
switch (m.WParam.ToInt32())
{
case 100: //按下的是100号快捷键
btnShowPrev_Click(null, null); //此处填写快捷键响应代码
break;
case 101: //按下的是101号快捷键
btnShowNext_Click(null, null); //此处填写快捷键响应代码
break;
case 102: //按下的是102号快捷键
this.Close(); //此处填写快捷键响应代码
break;
}
break;
}
base.WndProc(ref m);
}
private void ShowBigImgForm_Load(object sender, EventArgs e)
{
ShowImg();
}
public void ShowImg()
{
if (string.IsNullOrEmpty(imgId))
{
this.btnShowPrev.Visible = false;
this.btnShowNext.Visible = false;
}
if (!string.IsNullOrEmpty(imgUrl))
{
try
{
Task.Run(() =>
{
System.Threading.Thread.Sleep(10);
AllBase.WebClientx web = new AllBase.WebClientx();
var imgArr = web.DownloadData(imgUrl);
MemoryStream ms = new MemoryStream(imgArr);
Invoke(new Action(() =>
{
this.pnlImg.BackgroundImage = Image.FromStream(ms);
ms.Dispose();
}));
});
}
catch
{
}
}
}
private void ShowBigImgForm_SizeChanged(object sender, EventArgs e)
{
var deltaNumber = this.Height - 60;
if (this.Width - 28 < this.Height - 60)
deltaNumber = this.Width - 28;
this.pnlImg.Width = deltaNumber;
this.pnlImg.Height = deltaNumber;
this.pnlImg.Location = new Point((this.Width - 2) / 2 - this.pnlImg.Width / 2, (this.Height - 32 - 2) / 2 - this.pnlImg.Height / 2);
}
private void btnShowNext_Click(object sender, EventArgs e)
{
if (btnShowNext.Visible == false)
return;
var fiss = Fission.GetInstance();
if (fiss != null && fiss.browser != null && fiss.browser.IsBrowserInitialized)
{
var jsCode = @"ShowNextImg('" + this.imgId + "');";
Fission.GetInstance().browser.GetMainFrame().EvaluateScriptAsync(jsCode, null);
}
}
private void btnShowPrev_Click(object sender, EventArgs e)
{
if (btnShowPrev.Visible == false)
return;
var fiss = Fission.GetInstance();
if (fiss != null && fiss.browser != null && fiss.browser.IsBrowserInitialized)
{
var jsCode = @"ShowPrevImg('" + this.imgId + "');";
Fission.GetInstance().browser.GetMainFrame().EvaluateScriptAsync(jsCode, null);
}
}
/// <summary>
/// 窗体激活时注册快捷键
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void FissionShowBigImgForm_Activated(object sender, EventArgs e)
{
//注册热键Shift+S,Id号为100。HotKey.KeyModifiers.Shift也可以直接使用数字4来表示。
HotKey.RegisterHotKey(Handle, 100, HotKey.KeyModifiers.None, Keys.Left);
//注册热键Ctrl+B,Id号为101。HotKey.KeyModifiers.Ctrl也可以直接使用数字2来表示。
HotKey.RegisterHotKey(Handle, 101, HotKey.KeyModifiers.None, Keys.Right);
//注册热键Alt+D,Id号为102。HotKey.KeyModifiers.Alt也可以直接使用数字1来表示。
HotKey.RegisterHotKey(Handle, 102, HotKey.KeyModifiers.None, Keys.Escape);
}
/// <summary>
/// 窗体离开时注销快捷键
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void FissionShowBigImgForm_Leave(object sender, EventArgs e)
{
//注销Id号为100的热键设定
HotKey.UnregisterHotKey(Handle, 100);
//注销Id号为101的热键设定
HotKey.UnregisterHotKey(Handle, 101);
//注销Id号为102的热键设定
HotKey.UnregisterHotKey(Handle, 102);
}
}
class HotKey
{
//如果函数执行成功,返回值不为0。
//如果函数执行失败,返回值为0。要得到扩展错误信息,调用GetLastError。
[DllImport("user32.dll", SetLastError = true)]
public static extern bool RegisterHotKey(
IntPtr hWnd, //要定义热键的窗口的句柄
int id, //定义热键ID(不能与其它ID重复)
KeyModifiers fsModifiers, //标识热键是否在按Alt、Ctrl、Shift、Windows等键时才会生效
Keys vk //定义热键的内容
);
[DllImport("user32.dll", SetLastError = true)]
public static extern bool UnregisterHotKey(
IntPtr hWnd, //要取消热键的窗口的句柄
int id //要取消热键的ID
);
//定义了辅助键的名称(将数字转变为字符以便于记忆,也可去除此枚举而直接使用数值)
[Flags()]
public enum KeyModifiers
{
None = 0,
Alt = 1,
Ctrl = 2,
Shift = 4,
WindowsKey = 8
}
}
}
@@ -1,142 +0,0 @@
namespace TemuKJD.KJDForms.ProductForms
{
partial class FissionShowBigImgForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FissionShowBigImgForm));
this.panel2 = new System.Windows.Forms.Panel();
this.btnShowPrev = new DevComponents.DotNetBar.PanelEx();
this.btnShowNext = new DevComponents.DotNetBar.PanelEx();
this.pnlImg = new System.Windows.Forms.Panel();
this.panel2.SuspendLayout();
this.SuspendLayout();
//
// panel2
//
this.panel2.BackColor = System.Drawing.Color.White;
this.panel2.Controls.Add(this.btnShowPrev);
this.panel2.Controls.Add(this.btnShowNext);
this.panel2.Controls.Add(this.pnlImg);
this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel2.Location = new System.Drawing.Point(1, 33);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(1198, 766);
this.panel2.TabIndex = 1;
//
// btnShowPrev
//
this.btnShowPrev.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.btnShowPrev.CanvasColor = System.Drawing.SystemColors.Control;
this.btnShowPrev.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnShowPrev.DisabledBackColor = System.Drawing.Color.Empty;
this.btnShowPrev.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnShowPrev.Location = new System.Drawing.Point(94, 358);
this.btnShowPrev.Name = "btnShowPrev";
this.btnShowPrev.Size = new System.Drawing.Size(50, 50);
this.btnShowPrev.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnShowPrev.Style.BackColor1.Color = System.Drawing.Color.White;
this.btnShowPrev.Style.BackColor2.Color = System.Drawing.Color.White;
this.btnShowPrev.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
this.btnShowPrev.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnShowPrev.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.btnShowPrev.Style.GradientAngle = 90;
this.btnShowPrev.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnShowPrev.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnShowPrev.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnShowPrev.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
this.btnShowPrev.TabIndex = 12;
this.btnShowPrev.Text = "<";
this.btnShowPrev.Click += new System.EventHandler(this.btnShowPrev_Click);
//
// btnShowNext
//
this.btnShowNext.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.btnShowNext.CanvasColor = System.Drawing.SystemColors.Control;
this.btnShowNext.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnShowNext.DisabledBackColor = System.Drawing.Color.Empty;
this.btnShowNext.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnShowNext.Location = new System.Drawing.Point(1056, 358);
this.btnShowNext.Name = "btnShowNext";
this.btnShowNext.Size = new System.Drawing.Size(50, 50);
this.btnShowNext.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnShowNext.Style.BackColor1.Color = System.Drawing.Color.White;
this.btnShowNext.Style.BackColor2.Color = System.Drawing.Color.White;
this.btnShowNext.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
this.btnShowNext.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnShowNext.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.btnShowNext.Style.GradientAngle = 90;
this.btnShowNext.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnShowNext.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnShowNext.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnShowNext.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
this.btnShowNext.TabIndex = 5;
this.btnShowNext.Text = ">";
this.btnShowNext.Click += new System.EventHandler(this.btnShowNext_Click);
//
// pnlImg
//
this.pnlImg.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.pnlImg.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
this.pnlImg.Location = new System.Drawing.Point(230, 13);
this.pnlImg.Name = "pnlImg";
this.pnlImg.Size = new System.Drawing.Size(740, 740);
this.pnlImg.TabIndex = 4;
//
// FissionShowBigImgForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(9)))), ((int)(((byte)(131)))), ((int)(((byte)(247)))));
this.ClientSize = new System.Drawing.Size(1200, 800);
this.Controls.Add(this.panel2);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.ShowMaximizeBox = true;
this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.ShowMinimizedBox = true;
this.Name = "FissionShowBigImgForm";
this.Text = "图片查看器";
this.TitleText = "图片查看器";
this.Activated += new System.EventHandler(this.FissionShowBigImgForm_Activated);
this.Load += new System.EventHandler(this.ShowBigImgForm_Load);
this.SizeChanged += new System.EventHandler(this.ShowBigImgForm_SizeChanged);
this.Leave += new System.EventHandler(this.FissionShowBigImgForm_Leave);
this.Controls.SetChildIndex(this.panel2, 0);
this.panel2.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Panel panel2;
private System.Windows.Forms.Panel pnlImg;
private DevComponents.DotNetBar.PanelEx btnShowNext;
private DevComponents.DotNetBar.PanelEx btnShowPrev;
}
}
@@ -1,298 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAgIAQXAAAAABoKAAAFgAAACgAAACAAAAAAAEAAAEABAAAAAAAACgAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
AAD///8AAAAAAAAAAAAAAAAABEZmbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMZmZkQAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAZszMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
zMxmAAAAAAAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzMzMzMzMzMxkAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzMzMzMzMzMzMzMzMzGQAAAAAAAAAAAAAAAAAAAbMzMzMzMzMzMzMzMzMzMzMzMzMd3d3d3d3d3
d3d3fMzMzMzMzMzMzMzMzMzMzMzMzMYAAAAAAAAAAAAAAAAARszMzMzMzMzMzMzMzMzMzMd3d3iIiIiI
iIiIiIiIiIh3d3d8zMzMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAABszMzMzMzMzMzMzMzMzMx3eIiIiI
iIiIiIiIiIiIiIiIiIiIiHd8zMzMzMzMzMzMzMzMzMxgAAAAAAAAAAAAAGzMzMzMzMzMzMzMzMzMd4iI
iIiIiIiIiIiIiIiIiIiIiIiIiIiIiHfMzMzMzMzMzMzMzMzMxgAAAAAAAAAAAAbMzMzMzMzMzMzMzMzH
eIiIiIiIiIiHZmZmZmZmZmZmZ3eIiIiIiIiIiHzMzMzMzMzMzMzMzMxgAAAAAAAAAABszMzMzMzMzMzM
zMzHiIiIiIiHZmZmZmZmZmZmZmZmZmZmZmZmeIiIiIiIfMzMzMzMzMzMzMzMxgAAAAAAAAAGzMzMzMzM
zMzMzMzHiIiIiIdmZmZmZgAAAAAAAAAAAAZmZmZmZmZmeIiIiIh8zMzMzMzMzMzMzMxgAAAAAAAATMzM
zMzMzMzMzMzHiIiIiHZmZgAAAAAAAAAAAAEAAAAAAAAAAGZmZmZniIiIiHzMzMzMzMzMzMzMxAAAAAAA
AGzMzMzMzMzMzMzMeIiIiGZmAAAAAAERERmZmZmZmZmZkRERERAAAGZmZmZ4iIiIfMzMzMzMzMzMzMYA
AAAAAAbMzMzMzMzMzMzMeIiIiGZgAAAAERmZmZmZmZmZmZmZmZmZmZmZkREAAGZmZniIiIfMzMzMzMzM
zMzMYAAAAABMzMzMzMzMzMzMzIiIiHYAAAARGZmZiIiIj///////+IiIiIeZmZmZkREAZmZmiIiIfMzM
zMzMzMzMzMQAAAAAbMzMzMzMzMzMzO6IiIYAAAARmYiI/////////////////////4iHmZmZEQBmZmeI
iIh8zMzMzMzMzMzGAAAABMzMzMzMzMzMzMeIiIdgAAAZmI////////////////////////////iJmZmR
EGZmZ4iIh8zMzMzMzMzMzEAAAAbMzMzMzMzMzMzoiIhwAAAZeP//////////////////////////////
/4iZmZEAZmZ4iIh8zMzMzMzMzMxgAABMzMzMzMzMzMzOiIiGAAABiP//////////////////////////
////////+JmZkQZmZ4iIh8zMzMzMzMzMxAAAbMzMzMzMzMzM7oiIYAABeP//////////////////////
///////////////4mZkQZmZ4iIjMzMzMzMzMzMYAAMzMzMzMzMzMzu6IhwAAGP//////////////////
/////////////////////4iZmRZmZ4iIfMzMzMzMzMzMAAbMzMzMzMzMzM7oiHAAB4//////////////
////////////////////////////iZmRBmZ4iIfMzMzMzMzMzGAGzMzMzMzMzMzuiIcAAHj/////////
//////////////////////////////////iZmRZmZ4iIzMzMzMzMzMxgDMzMzMzMzMzM7ohwAAf/////
////////////////////////////////////////95mRZmaIiHzMzMzMzMzMwEzMzMzMzMzMzuiIEABo
//////////////////////////////////////////////95mRZmaIiMzMzMzMzMzMRszMzMzMzMzM7o
hwAGj///////////////////////////////////////////////95kQZmeIh8zMzMzMzMzGbMzMzMzM
zMzu6HEAB/////////////////////////////////////////////////+ZkQZmiIjMzMzMzMzMxmzM
zMzMzMzM7ohwAGj/////////////////////////////////////////////////iZkWZniIfMzMzMzM
zMZszMzMzMzMxu6HEAbv/4iI/////////////////////////////////////////4iP//iZEGZoiHzM
zMzMzMzGbMzMzMzMzM7uhxAGj/iIiIj//////////////////////////////////////4iIiI//mZFm
aIiMzMzMzMzMxszMzMzMzMzO6IEAbv+IiIiIj/////////////////////////////////////iIiIiP
/4mRBmeIh8zMzMzMzMbMzMzMzMzMbuhxAG7/iIiIiI////////////////iIj///j//////////////4
iIiIiP/5mQZmiIfMzMzMzMzMzMzMzMzMzO7ocQDo+IiIiIiP///////////////u7u7u7u7o////////
////iIiIiIj/+JkWZoiHzMzMzMzMzMzMzMzMzMzu6BEG7/iIiIiIj/////////////+Hd3ju5maO7v//
/////////4iIiIiI//iZEGaIh8zMzMzMzMzMzMzMzMzM7ugRBu//iIiIiI//////////////kZmZdmAZ
mP/////////////4iIiIiP//mRBmeIjMzMzMzMzMzMzMzMzMzO7nEAbv/4iIiIiP////////////+HiI
mZEBd5n/////////////+IiIiIj//4mQZniIzMzMzMzMzMzMzMzMzMzu5xAO7//4iIiI//ju7o//////
//j//4mZeP/4//////////////iIiIiP//+JkGZ4iHzMzMzMzMzMzMzMzMzG7ocQDu///4iI//ju7u7u
j//////////4mP//////////////7u7uiIiI////iZBmaIh8zMzMzMzMzMzMzMzMzu6HEG7v//////+G
ZmZ47u7//////////4//////////////7u7u7u6P/////4mQBmiIfMzMzMzMzMzMzMzMzM7uhRBu7///
///3AAAAF37u7///////////////////////h2AABm7u7v/////5kAZ4iHzMzMzMzMzMzMzMzMzO7oUQ
bu//////gQAAZgEG7u//////////////////////+BAAAAAFfu6P////+ZAGeIjMzMzMzMzMzMzMzMzM
zu6FEG7v////+JEAAXhwAG7o/////////////////////4gAABEGARbu7/////kQBoiIzMzMzMzMzMzM
zMzMzM7uhRBu7/////iZABmZkQBm6P////////////////////+JABGZF2AAbo////+JEGaIiMzMzMzM
zMzMzMzMzMzO7ucRbu/////4mRZ4iZkQBu//////////////////////mQB5mZdgAG7/////iRBmiIfM
zMzMzMzMzMzMzMzMxu7nEQ7v////+Bl+j/iZEAaP/////////////////////5l2/4mRAABu/////4kQ
ZoiHzMzMzMzMzMzMzMzMzMzu5xEO6P//+Phgbu/4kQAI//////////////////////+Zfo/4kQAAeIiP
//+JEGaIh8zMzMzMzMzMzMzMzMzM7ucRBu7///iOYHiI+HAAf///////////////////////mYjv+BAA
BuiIj///iQBniIfMzMzMzMzMzMzMzMzMzO7nEQbu///3EAAG6IcRF4iP/////////////////////4GP
/4cQAAZnbv///5EAaIiMzMzMzMzMzMzMzMzMzMzu5xEW7v//iRF3dmZgAXjmj///////////////////
///3ePiBEQAHdm7///iRAGiIfMzMzMzMzMzMzMzMzMzM7u5xFu6P/5EZmXZmZmbmaP//////////////
///////4/4d2cRAAFwbuj//4kQZoiHzMzMzMzMzMzMzMzMzMzG7ucRDu7/iXiZkQAAZmAH//////////
////////////+IiIdmYABmAX//j/+BAGeIh8zMzMzMzMzMzMzMzMzMzO7nEQbu/4iP+BERkREZf/////
//////////////////+JmXdxEBEAB3////kQBoiIzMzMzMzMzMzMzMzMzMzMzu5xEW7o+P//gZmZmZmP
////////////////////////+JmZmZmZl453//+JAGaIh8zMzMzMzMzMzMzMzMzMzM7u5xEO7vj/+IeP
iIj////////////////////////////4iZmZmZiPiP//cQBoiIfMzMzMzMzMzMzMzMzMzMzM7ucRFu6P
//iP//////////////////////////////////////+Jn/j/+JAAaIiMzMzMzMzMzMzMzMzMzMzMzO7n
ERbu7//4/////////////////////////////////////////4j///gQBoiIfMzMzMzMzMzMzMzMzMzM
zMzu7nERbuj////////////////////////////////////////////4//+BAAaIiMzMzMzMzMzMzMzM
zMzMzMzMzu5xEW7u////////////////////////////////////////////////cQBoiIfMzMzMzMzM
zMzMzMzMzMzMzM7u5xEW7u//////////////////////////////////////////////+BAAaIiMzMzM
zMzMzMzMzMzMzMzMzMzO7uYREO7o//7v//////////////////////////////////////////cABoiI
fMzMzMzMzMzMzMzMzMzMzMzMzO7ucRFu7oj/7o////////////////////////////////////////9x
AAeIiMzMzMzMzMzMzMzMzMzMzMzMzMzO7ucRFu7nePju7u7v////////////////////////////////
6P/4EAB4iIfMzMzMzMzMzMzMzMzMzMzMzMzMzu7nERBu7nmIiO7oj///////////////////////////
ju7u7o//hwAGiIh8zMzMzMzMzMzMzMzMzMzMzMzMzMzu7nERbu7nmZl5eP//////////////////////
///4iPiO5nj/+HAAaIiIzMzMzMzMzMzMzMzMzMzMzMzMzMzM7u7nERbu7oiZeI//////////////////
////////+ImXd5mP/4cAAHiIh8zMzMzMzMzMzMzMzMzMzMzMzMzMzM7u53ERbu7v////////////////
///////////////4iZl4//hgAAeIiHzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM7u53ERBu7v//////////
//////////////////////////+GAAB4iI7MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzO7uiHEADujv////
///////////////////////////////3AAAGiIh8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzO7ohwABmP
////////////////////////////////////iREAZniIjMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzuiI
EAB4f///////////////////////////////////+JmZkWZoiIfMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
zO6IhwBo//////////////////////////////////////iImZl2ZoiIzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzuiHAA7////////////////////////////////////////4iZFmZ4iHzMzMzMzMzMzMzMzMzM
zMzMzMzMzMzO6IgQBo/////4j///////////////////////////////////mZFmaIiMzMzMzMzMzMzM
zMzMzMzMzMzMzMzMzuiHAA7/////iIiP//////7o//////////////////iI/////4mRZmeIh8zMzMzM
zMzMzMzMzMzMzMzMzMzMzO6IcQBo////+IiIiI/////+7u7u7uiIiI7u7v////iIiI/////5mRZmiIjM
zMzMzMzMzMzMzMzMzMzMzMzMzMzuiHAA7////4iIiIiIj//3d2bu7u7u7u7u7u7//4iIiIiP////+JkW
ZniIfMzMzMzMzMzMzMzMzMzMzMzMzMzO6IcQBo////+IiIiIiI//+ZkAAGZmZmZmZmbv//iIiIiIiP//
//+ZkWZoiIzMzMzMzMzMzMzMzMzMzMzMzMzMzuiFAG7////4iIiIiIj///iZABEREREREBAG7//4iIiI
iIj/////iZFmaIiMzMzMzMzMzMzMzMzMzMzMzMzMzO6IcQBo////+IiIiIiI///4kQARERERERERDo//
+IiIiIiIj/////mZBmeIh8zMzMzMzMzMzMzMzMzMzMzMzMzuiHAG7////4iIiIiIiP//+JFmeHd3d3dx
EW6P//iIiIiIiI/////4mRZmiIfMzMzMzMzMzMzMzMzMzMzMzMzO7ocQBo////+IiIiIiIj///iQZoiO
7u7u5xFu7//4iIiIiIiI////+JkWZniIzMzMzMzMzMzMzMzMzMzMzMzMzuiHEA7////4iIiIiIiP///5
kGaIju7u7ucRbu///4iIiIiIiP////95kGZ4iHzMzMzMzMzMzMzMzMzMzMzMzM7ogQBu////+IiIiIiI
j///+RBmiI7u7u7nEW7v//+IiIiIiIiP////iZFmaIh8zMzMzMzMzMzMzMzMzMzMzMzu6HEAaP////iI
iIiIiI////kQZoiHzMzu5xEO6P//iIiIiIiIj////4mRZmiIjMzMzMzMzMzMzMzMzMzMzMzM7ugRBu//
///4iIiIiIj///+JEGaIh8zM7ucRBu7//4iIiIiIiI/////5kQZniIzMzMzMzMzMzMzMzMzMzMzMzO6I
EAbv////iIiIiIiI////iQBniIzMzO7oERbu///4iIiIiIiP////+JkGZ4iHzMzMzMzMzMzMzMzMzMzM
zMbuhxAGj////4iIiIiIj////3kAaIiMzMzu7nEW7v//+IiIiIiIiP////iZFmaIh8zMzMzMzMzMzMzM
zMzMzMzO7oUQbv////+IiIiIiI////+RBmiIfMzMzu5xFu6P//+IiIiIiIj////4mRZmiIfMzMzMzMzM
zMzMzMzMzMzMzu6BAG7////4iIiIiIj////4kQZoiHzMzM7ucRDu7///iIiIiIiIj////5kQZoiHzMzM
zMzMzMzMzMzMzMzMzM7ocQBu////+IiIiIiI////+JAGeIh8zMzO7nERbu///4iIiIiIiI////95EGaI
h8zMzMzMzMzMzMzMzMzMzMxu6HEA7v////iIiIiIiP////cQBoiIzMzMzu7lEW7v///4iIiIiIiP////
iRBmeIjMzMzMzMzMzMzMzMzMzMzM7uhxBuj////4iIiIiI/////5EAaIiMzMzMbu5xEO7v//+IiIiIiI
j////4kQZniIzMzMzMzMzMzMzMzMzMzMzO7oEQbv////+IiIiIj/////iQBmiIfMzMzM7ucRBu7///iI
iIiIiIj///+JkGZ4iMzMzMzMzMzMzMzMzMzMzMzu6BEG7/////iIiIiI/////4EAaIiHzMzMzO7nERbu
j///iIiIiIiI////iZBmaIh8zMzMzMzMzMzMzMzMzMzM7ucRBu/////4iIiIj/////+RAGiIjMzMzMzu
7nEQ7u////iIiIiIiP///4mQBmiIfMzMzMzMzMzMzMzMzMzMzO7nEAbv////+IiIiP/////4EAZ4iHzM
zMzMzu5xEG7v///4iIiIiIj///+JkAZoiHzMzMzMzMzMxmzMzMzMzMzu5xAO7/////+IiI//////+RAG
iIjMzMzMzM7ucRFu7v///4iIiIiI////+ZAGaIh8zMzMzMzMzMZszMzMzMzG7ocQDu//////+I//////
/4EAZoiIzMzMzMzO7ucRBu7////4iIiIiP////mQBmiIfMzMzMzMzMzGbMzMzMzMzu6HEA7v////////
//////9xAGiIh8zMzMzMzO7nERbu7///+IiIiI/////5kAZoiHzMzMzMzMzMxmzMzMzMzM7uhxAO7///
///////////4EABoiIzMzMzMzMzu7nEQbu////+IiIiP////+ZAGaIh8zMzMzMzMzMZszMzMzMzO7oUQ
Du//////////////9xAGiIh8zMzMzMzM7u5xEW7u/////4iI//////mQBmiIfMzMzMzMzMzGTMzMzMzM
zu6HEA7v/////////////4EABoiIzMzMzMzMzM7u5xEG7v/////////////5kAZoiHzMzMzMzMzMxAzM
zMzMzM7uhxEO7/////////////9wAGiIh8zMzMzMzMzO7ucRFu7v////////////+RAGeIh8zMzMzMzM
zMAGzMzMzMzO7ucRDuj////////////4EAB4iIzMzMzMzMzMzO7ucRBu6P///////////4kQBoiIzMzM
zMzMzMxgBszMzMzMxu7nEQbo////////////gQAGiIh8zMzMzMzMzMzu7nERDu7///////////+JEAaI
iMzMzMzMzMzMYADMzMzMzMzu5xEG7v///////////3EAZ4iIzMzMzMzMzMzMzu7nERbu7///////////
gQBmiIfMzMzMzMzMzAAAbMzMzMzM7ucRBu7///////////gQAGiIh8zMzMzMzMzMzM7u5xEQbu7/////
/////5EAZ4iHzMzMzMzMzMYAAEzMzMzMzO7nERDu7/////////+HAAaIiIzMzMzMzMzMzMzM7u5xEQ7u
7/////////gQAGiIjMzMzMzMzMzEAAAGzMzMzMzu7nEQbuj////////4cAAHiIh8zMzMzMzMzMzMzO7u
dxEW7uj////////3AAZoiHzMzMzMzMzMYAAABMzMzMzM7u5xEG7u////////hgAAeIiHzMzMzMzMzMzM
zMzO7ucREW7u7///////gQAGiIh8zMzMzMzMzEAAAABszMzMzM7ucREG7uj/////hmAAB4iI7MzMzMzM
zMzMzMzMzu7ucREG7u6P////+AAAB4iIzMzMzMzMzMYAAAAATMzMzMzO7ucREG7u7oiO7mAAAHiIiMzM
zMzMzMzMzMzMzMzu7ucREG7u7o//+HYAAHiIh8zMzMzMzMzEAAAAAAbMzMzMzu7nEREG7u7u5mAAAAeI
iIfMzMzMzMzMzMzMzMzMzu7ucREQbu7u7uYAAAeIiHzMzMzMzMzMYAAAAAAAbMzMzMzu7nEREAZmZgAA
AAF4iI58zMzMzMzMzMzMzMzMzMzu7ncREQZm7mZgAAB4iI7MzMzMzMzMxgAAAAAAAEzMzMzM7u7nEREQ
AAAAABF4iI7uzMzMzMzMzMzMzMzMzMzM7u7ucRERAAAAAAAHiIiMzMzMzMzMzMQAAAAAAAAGzMzMzM7u
7nERERERERF3iIju7MzMzMzMzMzMzMzMzMzMzM7u7udREREQAAAReIiIfMzMzMzMzMxgAAAAAAAAAGzM
zMzM7u7udRERERV4iI7u7MzMzMzMzMzMzMzMzMzMzMzM7u7u5xEREREReIiO7MzMzMzMzMzGAAAAAAAA
AAAGzMzMzM7u7u53d3eIiO7u7szMzMzMzMzMzMzMzMzMzMzMzM7u7u7nd1F3eIiO7uzMzMzMzMzMYAAA
AAAAAAAAAGzMzMzM7u7u7u7u7u7u7szMzMzMzMzMzMzMzMzMzMzMzMzMzu7u7u6IiI7u7uzMzMzMzMzM
xgAAAAAAAAAAAAAGzMzMzMzu7u7u7u7u5szMzMzMzMzMzMzMzMzMzMzMzMzMzMzO7u7u7u7u7u7MzMzM
zMzMzGAAAAAAAAAAAAAAAEbMzMzMzG7u7u7ubMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM7u7u7u7uzM
zMzMzMzMzGQAAAAAAAAAAAAAAAAAbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzG7u
7szMzMzMzMzMzMYAAAAAAAAAAAAAAAAAAARszMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAABGzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzMzMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAAAAAAAABmzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzMzMzMzMzMzMzMzMzMzMzMzGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARGZmzMzMzMzMzMzMzM
zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMZmZEAAAAAAAAAAAAAAAAD////+AAAAAAAAAAD/////////AAAA
AAAAAAAAAP//////+AAAAAAAAAAAAAAf/////+AAAAAAAAAAAAAAB/////+AAAAAAAAAAAAAAAH////+
AAAAAAAAAAAAAAAAf////AAAAAAAAAAAAAAAAD////AAAAAAAAAAAAAAAAAP///gAAAAAAAAAAAAAAAA
B///wAAAAAAAAAAAAAAAAAP//4AAAAAAAAAAAAAAAAAB//8AAAAAAAAAAAAAAAAAAP/+AAAAAAAAAAAA
AAAAAAB//gAAAAAAAAAAAAAAAAAAf/wAAAAAAAAAAAAAAAAAAD/4AAAAAAAAAAAAAAAAAAAf+AAAAAAA
AAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP4AAAAAAAAAAAAAAAAAAAB+AA
AAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAA
AAOAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABAAAAAAAA
AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
AAAAAAABgAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAA
AAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH8AAAAAAAAAAAAAAAAAAAD/AA
AAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/wAAAAAAAAAAAAAAAAA
AD/+AAAAAAAAAAAAAAAAAAB//gAAAAAAAAAAAAAAAAAAf/8AAAAAAAAAAAAAAAAAAP//gAAAAAAAAAAA
AAAAAAH//8AAAAAAAAAAAAAAAAAD///gAAAAAAAAAAAAAAAAB///8AAAAAAAAAAAAAAAAA////wAAAAA
AAAAAAAAAAA////+AAAAAAAAAAAAAAAAf////4AAAAAAAAAAAAAAAf/////gAAAAAAAAAAAAAAf/////
+AAAAAAAAAAAAAAf//////8AAAAAAAAAAAAA/////////gAAAAAAAAAAf////w==
</value>
</data>
</root>
@@ -1,84 +0,0 @@
namespace TemuKJD.KJDForms.ProductForms.FissionUserControl
{
partial class UcCategoryProp
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region 组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components);
this.txtPropValue = new DevComponents.DotNetBar.Controls.TextBoxX();
this.ucGroupBoxEx1.SuspendLayout();
this.SuspendLayout();
//
// ucGroupBoxEx1
//
this.ucGroupBoxEx1.BorderColor = System.Drawing.Color.DodgerBlue;
this.ucGroupBoxEx1.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.SQUARE;
this.ucGroupBoxEx1.Controls.Add(this.txtPropValue);
this.ucGroupBoxEx1.Dock = System.Windows.Forms.DockStyle.Fill;
this.ucGroupBoxEx1.Location = new System.Drawing.Point(0, 0);
this.ucGroupBoxEx1.Name = "ucGroupBoxEx1";
this.ucGroupBoxEx1.Size = new System.Drawing.Size(200, 50);
this.ucGroupBoxEx1.TabIndex = 3;
this.ucGroupBoxEx1.TabStop = false;
this.ucGroupBoxEx1.Text = "属性名称";
//
// txtPropValue
//
this.txtPropValue.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
//
//
//
this.txtPropValue.Border.Class = "TextBoxBorder";
this.txtPropValue.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.txtPropValue.Location = new System.Drawing.Point(6, 20);
this.txtPropValue.Name = "txtPropValue";
this.txtPropValue.PreventEnterBeep = true;
this.txtPropValue.Size = new System.Drawing.Size(188, 21);
this.txtPropValue.TabIndex = 69;
this.txtPropValue.TextChanged += new System.EventHandler(this.txtPropValue_TextChanged);
//
// UcCategoryProp
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.Controls.Add(this.ucGroupBoxEx1);
this.Name = "UcCategoryProp";
this.Size = new System.Drawing.Size(200, 50);
this.Load += new System.EventHandler(this.UcCategoryProp_Load);
this.ucGroupBoxEx1.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private UserComponent.UcGroupBoxEx ucGroupBoxEx1;
public DevComponents.DotNetBar.Controls.TextBoxX txtPropValue;
}
}
@@ -1,56 +0,0 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using AllBase.Helper;
using TemuKJD.BaseForms;
namespace TemuKJD.KJDForms.ProductForms.FissionUserControl
{
public partial class UcCategoryProp : UserControl
{
private string propName;
public string PropName
{
get { return propName; }
set
{
propName = value;
}
}
public string PropValue { get; set; }
/// <summary>
/// 如果是品牌,则记录品牌Id
/// </summary>
public string PropBrandId { get; set; }
public UcCategoryProp()
{
InitializeComponent();
}
private void UcCategoryProp_Load(object sender, EventArgs e)
{
if (propName != null)
{
this.ucGroupBoxEx1.Text = propName;
if (PropValue != null)
{
this.txtPropValue.Text = PropValue;
}
}
}
private void txtPropValue_TextChanged(object sender, EventArgs e)
{
this.PropValue = txtPropValue.Text;
}
}
}
@@ -1,120 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
@@ -1,173 +0,0 @@
namespace TemuKJD.KJDForms.ProductForms.FissionUserControl
{
partial class UcQualifiaction
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region 组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.txtQualificationNumber = new DevComponents.DotNetBar.Controls.TextBoxX();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components);
this.label1 = new System.Windows.Forms.Label();
this.btnUploadImg = new DevComponents.DotNetBar.PanelEx();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.ucGroupBoxEx1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
this.splitContainer1.SuspendLayout();
this.SuspendLayout();
//
// txtQualificationNumber
//
this.txtQualificationNumber.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
//
//
//
this.txtQualificationNumber.Border.Class = "TextBoxBorder";
this.txtQualificationNumber.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.txtQualificationNumber.Location = new System.Drawing.Point(3, 23);
this.txtQualificationNumber.Name = "txtQualificationNumber";
this.txtQualificationNumber.PreventEnterBeep = true;
this.txtQualificationNumber.Size = new System.Drawing.Size(188, 21);
this.txtQualificationNumber.TabIndex = 0;
this.txtQualificationNumber.TextChanged += new System.EventHandler(this.txtQualificationNumber_TextChanged);
//
// pictureBox1
//
this.pictureBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.pictureBox1.Location = new System.Drawing.Point(3, 0);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(188, 162);
this.pictureBox1.TabIndex = 1;
this.pictureBox1.TabStop = false;
this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click);
//
// ucGroupBoxEx1
//
this.ucGroupBoxEx1.BorderColor = System.Drawing.Color.DodgerBlue;
this.ucGroupBoxEx1.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.SQUARE;
this.ucGroupBoxEx1.Controls.Add(this.splitContainer1);
this.ucGroupBoxEx1.Dock = System.Windows.Forms.DockStyle.Fill;
this.ucGroupBoxEx1.Location = new System.Drawing.Point(0, 0);
this.ucGroupBoxEx1.Name = "ucGroupBoxEx1";
this.ucGroupBoxEx1.Size = new System.Drawing.Size(200, 260);
this.ucGroupBoxEx1.TabIndex = 2;
this.ucGroupBoxEx1.TabStop = false;
this.ucGroupBoxEx1.Text = "资质名称";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(6, 6);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(65, 12);
this.label1.TabIndex = 68;
this.label1.Text = "资质编号:";
//
// btnUploadImg
//
this.btnUploadImg.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.btnUploadImg.CanvasColor = System.Drawing.SystemColors.Control;
this.btnUploadImg.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnUploadImg.DisabledBackColor = System.Drawing.Color.Empty;
this.btnUploadImg.Location = new System.Drawing.Point(3, 164);
this.btnUploadImg.Name = "btnUploadImg";
this.btnUploadImg.Size = new System.Drawing.Size(188, 23);
this.btnUploadImg.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnUploadImg.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
this.btnUploadImg.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
this.btnUploadImg.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
this.btnUploadImg.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnUploadImg.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.btnUploadImg.Style.GradientAngle = 90;
this.btnUploadImg.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center;
this.btnUploadImg.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnUploadImg.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnUploadImg.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnUploadImg.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
this.btnUploadImg.TabIndex = 66;
this.btnUploadImg.Text = "上传图片";
this.btnUploadImg.Click += new System.EventHandler(this.btnUploadImg_Click);
//
// splitContainer1
//
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
this.splitContainer1.Location = new System.Drawing.Point(3, 17);
this.splitContainer1.Name = "splitContainer1";
this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
//
// splitContainer1.Panel1
//
this.splitContainer1.Panel1.Controls.Add(this.label1);
this.splitContainer1.Panel1.Controls.Add(this.txtQualificationNumber);
//
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(this.pictureBox1);
this.splitContainer1.Panel2.Controls.Add(this.btnUploadImg);
this.splitContainer1.Size = new System.Drawing.Size(194, 240);
this.splitContainer1.SplitterDistance = 46;
this.splitContainer1.TabIndex = 72;
//
// QualifiactionControl
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.Controls.Add(this.ucGroupBoxEx1);
this.Name = "QualifiactionControl";
this.Size = new System.Drawing.Size(200, 260);
this.Load += new System.EventHandler(this.QualifiactionControl_Load);
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.ucGroupBoxEx1.ResumeLayout(false);
this.splitContainer1.Panel1.ResumeLayout(false);
this.splitContainer1.Panel1.PerformLayout();
this.splitContainer1.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
this.splitContainer1.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private DevComponents.DotNetBar.Controls.TextBoxX txtQualificationNumber;
private System.Windows.Forms.PictureBox pictureBox1;
private UserComponent.UcGroupBoxEx ucGroupBoxEx1;
private DevComponents.DotNetBar.PanelEx btnUploadImg;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.SplitContainer splitContainer1;
}
}
@@ -1,116 +0,0 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using AllBase.Model.Param.ProductManage;
using AllBase;
using TemuKJD.BaseForms;
using TemuKJD.KJDForms.ProductForms;
namespace TemuKJD.KJDForms.ProductForms.FissionUserControl
{
public partial class UcQualifiaction : UserControl
{
private QualificationConfig qualification;
public QualificationConfig Qualification
{
get { return qualification; }
set
{
qualification = value;
if (qualification.name == "包装标签图")
{
this.Height = 220; this.splitContainer1.Panel1Collapsed = true;
}
}
}
public quality_file QualificationFile { get; set; }
public UcQualifiaction()
{
InitializeComponent();
}
private void pictureBox1_Click(object sender, EventArgs e)
{
if (this.QualificationFile != null && this.QualificationFile.quality_attachments.Count > 0)
{
new FissionBrowserObject().ShowBigImg(this.QualificationFile.quality_attachments[0].url);
}
}
private void QualifiactionControl_Load(object sender, EventArgs e)
{
this.pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
ShowQualification();
}
public void ShowQualification()
{
if (Qualification != null)
{
this.ucGroupBoxEx1.Text = Qualification.name;
if (QualificationFile != null)
{
this.txtQualificationNumber.Text = QualificationFile.quality_number;
if (QualificationFile.quality_attachments.Count > 0)
this.pictureBox1.Load(QualificationFile.quality_attachments.FirstOrDefault().url);
}
}
}
private void btnUploadImg_Click(object sender, EventArgs e)
{
if (Qualification == null || string.IsNullOrEmpty(Qualification.name))
{
BaseMsgForm.ShowError("资质属性获取失败!请关闭窗口重试");
return;
}
var uploadResult = new FissionBrowserObject().addLocalPic(false);
if (uploadResult.Contains("\"msg\":\"success\""))
{
if (QualificationFile == null)
{
QualificationFile = new quality_file();
QualificationFile.quality_key = Qualification.key;
QualificationFile.quality_name = Qualification.name;
}
if (QualificationFile.quality_attachments == null)
QualificationFile.quality_attachments = new List<quality_attachment>();
var imageUrl = BaseRegex.GetStringJson(ref uploadResult, "src")?.Replace("\\/", "/");
if (!string.IsNullOrEmpty(imageUrl))
{
QualificationFile.quality_attachments.Clear();
QualificationFile.quality_attachments.Add(new quality_attachment { media_type = 1, url = imageUrl });
this.pictureBox1.Load(imageUrl);
}
}
}
private void txtQualificationNumber_TextChanged(object sender, EventArgs e)
{
if (Qualification == null || string.IsNullOrEmpty(Qualification.name))
{
BaseMsgForm.ShowError("资质属性获取失败!请关闭窗口重试");
return;
}
if (QualificationFile == null)
{
QualificationFile = new quality_file();
QualificationFile.quality_key = Qualification.key;
QualificationFile.quality_name = Qualification.name;
}
QualificationFile.quality_number = txtQualificationNumber.Text;
}
}
}
@@ -1,120 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
@@ -1,799 +0,0 @@
namespace TemuKJD.KJDForms.ToolForms.KeywordsForms
{
partial class KeywordsCatchFrom
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(KeywordsCatchFrom));
this.panel2 = new System.Windows.Forms.Panel();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.ucGroupBoxEx2 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components);
this.btnChangeFissionTitle = new DevComponents.DotNetBar.PanelEx();
this.btnPicToContent = new DevComponents.DotNetBar.PanelEx();
this.exportButtonX = new DevComponents.DotNetBar.PanelEx();
this.btnPicToMain = new DevComponents.DotNetBar.PanelEx();
this.newWordTextBox = new System.Windows.Forms.TextBox();
this.wordReplaceButtonX = new DevComponents.DotNetBar.PanelEx();
this.oldWordTextBox = new System.Windows.Forms.TextBox();
this.participleButtonX = new DevComponents.DotNetBar.PanelEx();
this.toSpecialButtonX = new DevComponents.DotNetBar.PanelEx();
this.remDataButtonX = new DevComponents.DotNetBar.PanelEx();
this.keyWordShortButtonX = new DevComponents.DotNetBar.PanelEx();
this.toRepeatButtonX = new DevComponents.DotNetBar.PanelEx();
this.removeEnglishButtonX = new DevComponents.DotNetBar.PanelEx();
this.IrregularitiesButtonX = new DevComponents.DotNetBar.PanelEx();
this.keyWordLengthButtonX = new DevComponents.DotNetBar.PanelEx();
this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components);
this.checkBox1 = new System.Windows.Forms.CheckBox();
this.label14 = new System.Windows.Forms.Label();
this.endPriceTextBox = new System.Windows.Forms.TextBox();
this.startPriceTextBox = new System.Windows.Forms.TextBox();
this.priceCheckBox = new System.Windows.Forms.CheckBox();
this.titleLengthTextBox = new System.Windows.Forms.TextBox();
this.titleLengthCheckBox = new System.Windows.Forms.CheckBox();
this.btnCaptureTitleZc = new DevComponents.DotNetBar.PanelEx();
this.btnCollectZc = new DevComponents.DotNetBar.PanelEx();
this.txbSearchWord = new DevComponents.DotNetBar.Controls.TextBoxX();
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
this.descriptionTextBox = new DevComponents.DotNetBar.Controls.RichTextBoxEx();
this.dataGridViewX1 = new TemuKJD.UserComponent.DataGridViewEx();
this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.colId = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colKeywords = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colFrequency = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colDel = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.panel2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
this.splitContainer1.SuspendLayout();
this.ucGroupBoxEx2.SuspendLayout();
this.ucGroupBoxEx1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
this.splitContainer2.Panel1.SuspendLayout();
this.splitContainer2.Panel2.SuspendLayout();
this.splitContainer2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGridViewX1)).BeginInit();
this.SuspendLayout();
//
// panel2
//
this.panel2.BackColor = System.Drawing.Color.White;
this.panel2.Controls.Add(this.splitContainer1);
this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel2.Location = new System.Drawing.Point(0, 32);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(1280, 768);
this.panel2.TabIndex = 1;
//
// splitContainer1
//
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
this.splitContainer1.Name = "splitContainer1";
this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
//
// splitContainer1.Panel1
//
this.splitContainer1.Panel1.Controls.Add(this.ucGroupBoxEx2);
this.splitContainer1.Panel1.Controls.Add(this.ucGroupBoxEx1);
//
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(this.splitContainer2);
this.splitContainer1.Size = new System.Drawing.Size(1280, 768);
this.splitContainer1.SplitterDistance = 120;
this.splitContainer1.TabIndex = 0;
//
// ucGroupBoxEx2
//
this.ucGroupBoxEx2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.ucGroupBoxEx2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.ucGroupBoxEx2.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND;
this.ucGroupBoxEx2.Controls.Add(this.btnChangeFissionTitle);
this.ucGroupBoxEx2.Controls.Add(this.btnPicToContent);
this.ucGroupBoxEx2.Controls.Add(this.exportButtonX);
this.ucGroupBoxEx2.Controls.Add(this.btnPicToMain);
this.ucGroupBoxEx2.Controls.Add(this.newWordTextBox);
this.ucGroupBoxEx2.Controls.Add(this.wordReplaceButtonX);
this.ucGroupBoxEx2.Controls.Add(this.oldWordTextBox);
this.ucGroupBoxEx2.Controls.Add(this.participleButtonX);
this.ucGroupBoxEx2.Controls.Add(this.toSpecialButtonX);
this.ucGroupBoxEx2.Controls.Add(this.remDataButtonX);
this.ucGroupBoxEx2.Controls.Add(this.keyWordShortButtonX);
this.ucGroupBoxEx2.Controls.Add(this.toRepeatButtonX);
this.ucGroupBoxEx2.Controls.Add(this.removeEnglishButtonX);
this.ucGroupBoxEx2.Controls.Add(this.IrregularitiesButtonX);
this.ucGroupBoxEx2.Controls.Add(this.keyWordLengthButtonX);
this.ucGroupBoxEx2.Location = new System.Drawing.Point(377, 1);
this.ucGroupBoxEx2.Name = "ucGroupBoxEx2";
this.ucGroupBoxEx2.Size = new System.Drawing.Size(900, 117);
this.ucGroupBoxEx2.TabIndex = 632;
this.ucGroupBoxEx2.TabStop = false;
this.ucGroupBoxEx2.Text = "采集参数";
//
// btnChangeFissionTitle
//
this.btnChangeFissionTitle.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnChangeFissionTitle.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnChangeFissionTitle.DisabledBackColor = System.Drawing.Color.Empty;
this.btnChangeFissionTitle.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnChangeFissionTitle.Location = new System.Drawing.Point(583, 33);
this.btnChangeFissionTitle.Name = "btnChangeFissionTitle";
this.btnChangeFissionTitle.Size = new System.Drawing.Size(60, 23);
this.btnChangeFissionTitle.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnChangeFissionTitle.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnChangeFissionTitle.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnChangeFissionTitle.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnChangeFissionTitle.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnChangeFissionTitle.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnChangeFissionTitle.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnChangeFissionTitle.Style.GradientAngle = 90;
this.btnChangeFissionTitle.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnChangeFissionTitle.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnChangeFissionTitle.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnChangeFissionTitle.TabIndex = 720;
this.btnChangeFissionTitle.Text = "标题替换";
this.btnChangeFissionTitle.Click += new System.EventHandler(this.btnChangeFissionTitle_Click);
//
// btnPicToContent
//
this.btnPicToContent.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnPicToContent.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnPicToContent.DisabledBackColor = System.Drawing.Color.Empty;
this.btnPicToContent.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnPicToContent.Location = new System.Drawing.Point(715, 33);
this.btnPicToContent.Name = "btnPicToContent";
this.btnPicToContent.Size = new System.Drawing.Size(60, 23);
this.btnPicToContent.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnPicToContent.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnPicToContent.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnPicToContent.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnPicToContent.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnPicToContent.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnPicToContent.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnPicToContent.Style.GradientAngle = 90;
this.btnPicToContent.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnPicToContent.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnPicToContent.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnPicToContent.TabIndex = 669;
this.btnPicToContent.Text = "转内容图";
this.btnPicToContent.Click += new System.EventHandler(this.btnPicToContent_Click);
//
// exportButtonX
//
this.exportButtonX.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.exportButtonX.CanvasColor = System.Drawing.SystemColors.Control;
this.exportButtonX.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.exportButtonX.DisabledBackColor = System.Drawing.Color.Empty;
this.exportButtonX.Location = new System.Drawing.Point(805, 66);
this.exportButtonX.Name = "exportButtonX";
this.exportButtonX.Size = new System.Drawing.Size(60, 23);
this.exportButtonX.Style.Alignment = System.Drawing.StringAlignment.Center;
this.exportButtonX.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
this.exportButtonX.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
this.exportButtonX.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
this.exportButtonX.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.exportButtonX.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.exportButtonX.Style.GradientAngle = 90;
this.exportButtonX.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center;
this.exportButtonX.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.exportButtonX.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.exportButtonX.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.exportButtonX.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
this.exportButtonX.TabIndex = 686;
this.exportButtonX.Text = "导出CSV";
this.exportButtonX.Click += new System.EventHandler(this.exportButtonX_Click);
//
// btnPicToMain
//
this.btnPicToMain.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnPicToMain.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnPicToMain.DisabledBackColor = System.Drawing.Color.Empty;
this.btnPicToMain.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnPicToMain.Location = new System.Drawing.Point(649, 33);
this.btnPicToMain.Name = "btnPicToMain";
this.btnPicToMain.Size = new System.Drawing.Size(60, 23);
this.btnPicToMain.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnPicToMain.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnPicToMain.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnPicToMain.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnPicToMain.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnPicToMain.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnPicToMain.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnPicToMain.Style.GradientAngle = 90;
this.btnPicToMain.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnPicToMain.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnPicToMain.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnPicToMain.TabIndex = 656;
this.btnPicToMain.Text = "图片转主";
this.btnPicToMain.Click += new System.EventHandler(this.btnPicToMain_Click);
//
// newWordTextBox
//
this.newWordTextBox.Location = new System.Drawing.Point(470, 33);
this.newWordTextBox.Name = "newWordTextBox";
this.newWordTextBox.Size = new System.Drawing.Size(60, 23);
this.newWordTextBox.TabIndex = 682;
//
// wordReplaceButtonX
//
this.wordReplaceButtonX.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.wordReplaceButtonX.Cursor = System.Windows.Forms.Cursors.Hand;
this.wordReplaceButtonX.DisabledBackColor = System.Drawing.Color.Empty;
this.wordReplaceButtonX.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.wordReplaceButtonX.Location = new System.Drawing.Point(404, 33);
this.wordReplaceButtonX.Name = "wordReplaceButtonX";
this.wordReplaceButtonX.Size = new System.Drawing.Size(60, 23);
this.wordReplaceButtonX.Style.Alignment = System.Drawing.StringAlignment.Center;
this.wordReplaceButtonX.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.wordReplaceButtonX.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.wordReplaceButtonX.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.wordReplaceButtonX.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.wordReplaceButtonX.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.wordReplaceButtonX.Style.ForeColor.Color = System.Drawing.Color.White;
this.wordReplaceButtonX.Style.GradientAngle = 90;
this.wordReplaceButtonX.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.wordReplaceButtonX.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.wordReplaceButtonX.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.wordReplaceButtonX.TabIndex = 681;
this.wordReplaceButtonX.Text = "替换成";
this.wordReplaceButtonX.Click += new System.EventHandler(this.wordReplaceButtonX_Click);
//
// oldWordTextBox
//
this.oldWordTextBox.Location = new System.Drawing.Point(338, 33);
this.oldWordTextBox.Name = "oldWordTextBox";
this.oldWordTextBox.Size = new System.Drawing.Size(60, 23);
this.oldWordTextBox.TabIndex = 677;
//
// participleButtonX
//
this.participleButtonX.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.participleButtonX.Cursor = System.Windows.Forms.Cursors.Hand;
this.participleButtonX.DisabledBackColor = System.Drawing.Color.Empty;
this.participleButtonX.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.participleButtonX.Location = new System.Drawing.Point(262, 66);
this.participleButtonX.Name = "participleButtonX";
this.participleButtonX.Size = new System.Drawing.Size(60, 23);
this.participleButtonX.Style.Alignment = System.Drawing.StringAlignment.Center;
this.participleButtonX.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.participleButtonX.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.participleButtonX.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.participleButtonX.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.participleButtonX.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.participleButtonX.Style.ForeColor.Color = System.Drawing.Color.White;
this.participleButtonX.Style.GradientAngle = 90;
this.participleButtonX.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.participleButtonX.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.participleButtonX.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.participleButtonX.TabIndex = 676;
this.participleButtonX.Text = "一键分词";
this.participleButtonX.Click += new System.EventHandler(this.participleButtonX_Click);
//
// toSpecialButtonX
//
this.toSpecialButtonX.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.toSpecialButtonX.Cursor = System.Windows.Forms.Cursors.Hand;
this.toSpecialButtonX.DisabledBackColor = System.Drawing.Color.Empty;
this.toSpecialButtonX.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.toSpecialButtonX.Location = new System.Drawing.Point(110, 66);
this.toSpecialButtonX.Name = "toSpecialButtonX";
this.toSpecialButtonX.Size = new System.Drawing.Size(60, 23);
this.toSpecialButtonX.Style.Alignment = System.Drawing.StringAlignment.Center;
this.toSpecialButtonX.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.toSpecialButtonX.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.toSpecialButtonX.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.toSpecialButtonX.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.toSpecialButtonX.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.toSpecialButtonX.Style.ForeColor.Color = System.Drawing.Color.White;
this.toSpecialButtonX.Style.GradientAngle = 90;
this.toSpecialButtonX.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.toSpecialButtonX.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.toSpecialButtonX.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.toSpecialButtonX.TabIndex = 674;
this.toSpecialButtonX.Text = "去符号";
this.toSpecialButtonX.Click += new System.EventHandler(this.toSpecialButtonX_Click);
//
// remDataButtonX
//
this.remDataButtonX.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.remDataButtonX.Cursor = System.Windows.Forms.Cursors.Hand;
this.remDataButtonX.DisabledBackColor = System.Drawing.Color.Empty;
this.remDataButtonX.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.remDataButtonX.Location = new System.Drawing.Point(186, 66);
this.remDataButtonX.Name = "remDataButtonX";
this.remDataButtonX.Size = new System.Drawing.Size(60, 23);
this.remDataButtonX.Style.Alignment = System.Drawing.StringAlignment.Center;
this.remDataButtonX.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.remDataButtonX.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.remDataButtonX.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.remDataButtonX.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.remDataButtonX.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.remDataButtonX.Style.ForeColor.Color = System.Drawing.Color.White;
this.remDataButtonX.Style.GradientAngle = 90;
this.remDataButtonX.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.remDataButtonX.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.remDataButtonX.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.remDataButtonX.TabIndex = 675;
this.remDataButtonX.Text = "去数字";
this.remDataButtonX.Click += new System.EventHandler(this.remDataButtonX_Click);
//
// keyWordShortButtonX
//
this.keyWordShortButtonX.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.keyWordShortButtonX.Cursor = System.Windows.Forms.Cursors.Hand;
this.keyWordShortButtonX.DisabledBackColor = System.Drawing.Color.Empty;
this.keyWordShortButtonX.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.keyWordShortButtonX.Location = new System.Drawing.Point(34, 66);
this.keyWordShortButtonX.Name = "keyWordShortButtonX";
this.keyWordShortButtonX.Size = new System.Drawing.Size(60, 23);
this.keyWordShortButtonX.Style.Alignment = System.Drawing.StringAlignment.Center;
this.keyWordShortButtonX.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.keyWordShortButtonX.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.keyWordShortButtonX.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.keyWordShortButtonX.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.keyWordShortButtonX.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.keyWordShortButtonX.Style.ForeColor.Color = System.Drawing.Color.White;
this.keyWordShortButtonX.Style.GradientAngle = 90;
this.keyWordShortButtonX.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.keyWordShortButtonX.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.keyWordShortButtonX.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.keyWordShortButtonX.TabIndex = 673;
this.keyWordShortButtonX.Text = "短词排前";
this.keyWordShortButtonX.Click += new System.EventHandler(this.keyWordShortButtonX_Click);
//
// toRepeatButtonX
//
this.toRepeatButtonX.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.toRepeatButtonX.Cursor = System.Windows.Forms.Cursors.Hand;
this.toRepeatButtonX.DisabledBackColor = System.Drawing.Color.Empty;
this.toRepeatButtonX.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.toRepeatButtonX.Location = new System.Drawing.Point(262, 33);
this.toRepeatButtonX.Name = "toRepeatButtonX";
this.toRepeatButtonX.Size = new System.Drawing.Size(60, 23);
this.toRepeatButtonX.Style.Alignment = System.Drawing.StringAlignment.Center;
this.toRepeatButtonX.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.toRepeatButtonX.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.toRepeatButtonX.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.toRepeatButtonX.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.toRepeatButtonX.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.toRepeatButtonX.Style.ForeColor.Color = System.Drawing.Color.White;
this.toRepeatButtonX.Style.GradientAngle = 90;
this.toRepeatButtonX.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.toRepeatButtonX.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.toRepeatButtonX.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.toRepeatButtonX.TabIndex = 660;
this.toRepeatButtonX.Text = "去重复";
this.toRepeatButtonX.Click += new System.EventHandler(this.toRepeatButtonX_Click);
//
// removeEnglishButtonX
//
this.removeEnglishButtonX.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.removeEnglishButtonX.Cursor = System.Windows.Forms.Cursors.Hand;
this.removeEnglishButtonX.DisabledBackColor = System.Drawing.Color.Empty;
this.removeEnglishButtonX.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.removeEnglishButtonX.Location = new System.Drawing.Point(110, 33);
this.removeEnglishButtonX.Name = "removeEnglishButtonX";
this.removeEnglishButtonX.Size = new System.Drawing.Size(60, 23);
this.removeEnglishButtonX.Style.Alignment = System.Drawing.StringAlignment.Center;
this.removeEnglishButtonX.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.removeEnglishButtonX.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.removeEnglishButtonX.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.removeEnglishButtonX.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.removeEnglishButtonX.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.removeEnglishButtonX.Style.ForeColor.Color = System.Drawing.Color.White;
this.removeEnglishButtonX.Style.GradientAngle = 90;
this.removeEnglishButtonX.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.removeEnglishButtonX.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.removeEnglishButtonX.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.removeEnglishButtonX.TabIndex = 639;
this.removeEnglishButtonX.Text = "去英文";
this.removeEnglishButtonX.Click += new System.EventHandler(this.removeEnglishButtonX_Click);
//
// IrregularitiesButtonX
//
this.IrregularitiesButtonX.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.IrregularitiesButtonX.Cursor = System.Windows.Forms.Cursors.Hand;
this.IrregularitiesButtonX.DisabledBackColor = System.Drawing.Color.Empty;
this.IrregularitiesButtonX.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.IrregularitiesButtonX.Location = new System.Drawing.Point(186, 33);
this.IrregularitiesButtonX.Name = "IrregularitiesButtonX";
this.IrregularitiesButtonX.Size = new System.Drawing.Size(60, 23);
this.IrregularitiesButtonX.Style.Alignment = System.Drawing.StringAlignment.Center;
this.IrregularitiesButtonX.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.IrregularitiesButtonX.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.IrregularitiesButtonX.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.IrregularitiesButtonX.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.IrregularitiesButtonX.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.IrregularitiesButtonX.Style.ForeColor.Color = System.Drawing.Color.White;
this.IrregularitiesButtonX.Style.GradientAngle = 90;
this.IrregularitiesButtonX.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.IrregularitiesButtonX.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.IrregularitiesButtonX.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.IrregularitiesButtonX.TabIndex = 659;
this.IrregularitiesButtonX.Text = "去违规词";
this.IrregularitiesButtonX.Click += new System.EventHandler(this.IrregularitiesButtonX_Click);
//
// keyWordLengthButtonX
//
this.keyWordLengthButtonX.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.keyWordLengthButtonX.Cursor = System.Windows.Forms.Cursors.Hand;
this.keyWordLengthButtonX.DisabledBackColor = System.Drawing.Color.Empty;
this.keyWordLengthButtonX.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.keyWordLengthButtonX.Location = new System.Drawing.Point(34, 33);
this.keyWordLengthButtonX.Name = "keyWordLengthButtonX";
this.keyWordLengthButtonX.Size = new System.Drawing.Size(60, 23);
this.keyWordLengthButtonX.Style.Alignment = System.Drawing.StringAlignment.Center;
this.keyWordLengthButtonX.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.keyWordLengthButtonX.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.keyWordLengthButtonX.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.keyWordLengthButtonX.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.keyWordLengthButtonX.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.keyWordLengthButtonX.Style.ForeColor.Color = System.Drawing.Color.White;
this.keyWordLengthButtonX.Style.GradientAngle = 90;
this.keyWordLengthButtonX.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.keyWordLengthButtonX.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.keyWordLengthButtonX.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.keyWordLengthButtonX.TabIndex = 635;
this.keyWordLengthButtonX.Text = "长词排前";
this.keyWordLengthButtonX.Click += new System.EventHandler(this.keyWordLengthButtonX_Click);
//
// ucGroupBoxEx1
//
this.ucGroupBoxEx1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.ucGroupBoxEx1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.ucGroupBoxEx1.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND;
this.ucGroupBoxEx1.Controls.Add(this.checkBox1);
this.ucGroupBoxEx1.Controls.Add(this.label14);
this.ucGroupBoxEx1.Controls.Add(this.endPriceTextBox);
this.ucGroupBoxEx1.Controls.Add(this.startPriceTextBox);
this.ucGroupBoxEx1.Controls.Add(this.priceCheckBox);
this.ucGroupBoxEx1.Controls.Add(this.titleLengthTextBox);
this.ucGroupBoxEx1.Controls.Add(this.titleLengthCheckBox);
this.ucGroupBoxEx1.Controls.Add(this.btnCaptureTitleZc);
this.ucGroupBoxEx1.Controls.Add(this.btnCollectZc);
this.ucGroupBoxEx1.Controls.Add(this.txbSearchWord);
this.ucGroupBoxEx1.Location = new System.Drawing.Point(3, 1);
this.ucGroupBoxEx1.Name = "ucGroupBoxEx1";
this.ucGroupBoxEx1.Size = new System.Drawing.Size(374, 117);
this.ucGroupBoxEx1.TabIndex = 631;
this.ucGroupBoxEx1.TabStop = false;
this.ucGroupBoxEx1.Text = "采集参数";
//
// checkBox1
//
this.checkBox1.AutoSize = true;
this.checkBox1.Location = new System.Drawing.Point(154, 53);
this.checkBox1.Name = "checkBox1";
this.checkBox1.Size = new System.Drawing.Size(87, 21);
this.checkBox1.TabIndex = 646;
this.checkBox1.Text = "采集有销量";
this.checkBox1.UseVisualStyleBackColor = true;
//
// label14
//
this.label14.AutoSize = true;
this.label14.Location = new System.Drawing.Point(133, 83);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(18, 17);
this.label14.TabIndex = 645;
this.label14.Text = "--";
//
// endPriceTextBox
//
this.endPriceTextBox.Location = new System.Drawing.Point(154, 80);
this.endPriceTextBox.Name = "endPriceTextBox";
this.endPriceTextBox.Size = new System.Drawing.Size(31, 23);
this.endPriceTextBox.TabIndex = 644;
//
// startPriceTextBox
//
this.startPriceTextBox.Location = new System.Drawing.Point(99, 80);
this.startPriceTextBox.Name = "startPriceTextBox";
this.startPriceTextBox.Size = new System.Drawing.Size(31, 23);
this.startPriceTextBox.TabIndex = 643;
//
// priceCheckBox
//
this.priceCheckBox.AutoSize = true;
this.priceCheckBox.Location = new System.Drawing.Point(16, 81);
this.priceCheckBox.Name = "priceCheckBox";
this.priceCheckBox.Size = new System.Drawing.Size(75, 21);
this.priceCheckBox.TabIndex = 642;
this.priceCheckBox.Text = "价格区间";
this.priceCheckBox.UseVisualStyleBackColor = true;
//
// titleLengthTextBox
//
this.titleLengthTextBox.Location = new System.Drawing.Point(99, 51);
this.titleLengthTextBox.Name = "titleLengthTextBox";
this.titleLengthTextBox.Size = new System.Drawing.Size(31, 23);
this.titleLengthTextBox.TabIndex = 641;
//
// titleLengthCheckBox
//
this.titleLengthCheckBox.AutoSize = true;
this.titleLengthCheckBox.Location = new System.Drawing.Point(16, 53);
this.titleLengthCheckBox.Name = "titleLengthCheckBox";
this.titleLengthCheckBox.Size = new System.Drawing.Size(88, 21);
this.titleLengthCheckBox.TabIndex = 640;
this.titleLengthCheckBox.Text = "删除长度 <";
this.titleLengthCheckBox.UseVisualStyleBackColor = true;
//
// btnCaptureTitleZc
//
this.btnCaptureTitleZc.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnCaptureTitleZc.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnCaptureTitleZc.DisabledBackColor = System.Drawing.Color.Empty;
this.btnCaptureTitleZc.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnCaptureTitleZc.Location = new System.Drawing.Point(303, 22);
this.btnCaptureTitleZc.Name = "btnCaptureTitleZc";
this.btnCaptureTitleZc.Size = new System.Drawing.Size(60, 23);
this.btnCaptureTitleZc.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnCaptureTitleZc.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnCaptureTitleZc.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnCaptureTitleZc.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnCaptureTitleZc.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnCaptureTitleZc.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnCaptureTitleZc.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnCaptureTitleZc.Style.GradientAngle = 90;
this.btnCaptureTitleZc.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnCaptureTitleZc.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnCaptureTitleZc.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnCaptureTitleZc.TabIndex = 639;
this.btnCaptureTitleZc.Text = "抓取标题";
this.btnCaptureTitleZc.Click += new System.EventHandler(this.btnCaptureTitleZc_Click);
//
// btnCollectZc
//
this.btnCollectZc.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnCollectZc.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnCollectZc.DisabledBackColor = System.Drawing.Color.Empty;
this.btnCollectZc.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnCollectZc.Location = new System.Drawing.Point(230, 22);
this.btnCollectZc.Name = "btnCollectZc";
this.btnCollectZc.Size = new System.Drawing.Size(60, 23);
this.btnCollectZc.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnCollectZc.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnCollectZc.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnCollectZc.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnCollectZc.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnCollectZc.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnCollectZc.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnCollectZc.Style.GradientAngle = 90;
this.btnCollectZc.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnCollectZc.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnCollectZc.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnCollectZc.TabIndex = 635;
this.btnCollectZc.Text = "开始采集";
this.btnCollectZc.Click += new System.EventHandler(this.btnCollectZc_Click);
//
// txbSearchWord
//
//
//
//
this.txbSearchWord.Border.Class = "TextBoxBorder";
this.txbSearchWord.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.txbSearchWord.Location = new System.Drawing.Point(16, 22);
this.txbSearchWord.Name = "txbSearchWord";
this.txbSearchWord.PreventEnterBeep = true;
this.txbSearchWord.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this.txbSearchWord.Size = new System.Drawing.Size(208, 23);
this.txbSearchWord.TabIndex = 630;
this.txbSearchWord.WatermarkText = "输入关键词/URL";
//
// splitContainer2
//
this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer2.Location = new System.Drawing.Point(0, 0);
this.splitContainer2.Name = "splitContainer2";
//
// splitContainer2.Panel1
//
this.splitContainer2.Panel1.Controls.Add(this.descriptionTextBox);
this.splitContainer2.Panel1.Padding = new System.Windows.Forms.Padding(4, 0, 0, 4);
//
// splitContainer2.Panel2
//
this.splitContainer2.Panel2.Controls.Add(this.dataGridViewX1);
this.splitContainer2.Panel2.Padding = new System.Windows.Forms.Padding(0, 0, 4, 4);
this.splitContainer2.Size = new System.Drawing.Size(1280, 644);
this.splitContainer2.SplitterDistance = 635;
this.splitContainer2.TabIndex = 0;
//
// descriptionTextBox
//
//
//
//
this.descriptionTextBox.BackgroundStyle.Class = "RichTextBoxBorder";
this.descriptionTextBox.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.descriptionTextBox.Dock = System.Windows.Forms.DockStyle.Fill;
this.descriptionTextBox.Location = new System.Drawing.Point(4, 0);
this.descriptionTextBox.Name = "descriptionTextBox";
this.descriptionTextBox.Rtf = "{\\rtf1\\ansi\\deff0\\nouicompat{\\fonttbl{\\f0\\fnil\\fcharset134 \\\'ce\\\'a2\\\'c8\\\'ed\\\'d1\\\'" +
"c5\\\'ba\\\'da;}}\r\n{\\*\\generator Riched20 10.0.19041}\\viewkind4\\uc1 \r\n\\pard\\f0\\fs18\\" +
"lang2052 .\\par\r\n}\r\n";
this.descriptionTextBox.Size = new System.Drawing.Size(631, 640);
this.descriptionTextBox.TabIndex = 1;
this.descriptionTextBox.Text = ".";
//
// dataGridViewX1
//
this.dataGridViewX1.AllowUserToAddRows = false;
this.dataGridViewX1.AllowUserToDeleteRows = false;
dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
this.dataGridViewX1.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
this.dataGridViewX1.BackgroundColor = System.Drawing.Color.White;
this.dataGridViewX1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dataGridViewX1.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2;
this.dataGridViewX1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridViewX1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colSelect,
this.colId,
this.colKeywords,
this.colFrequency,
this.colDel});
this.dataGridViewX1.Dock = System.Windows.Forms.DockStyle.Fill;
this.dataGridViewX1.Location = new System.Drawing.Point(0, 0);
this.dataGridViewX1.Name = "dataGridViewX1";
this.dataGridViewX1.ReadOnly = true;
dataGridViewCellStyle3.Font = new System.Drawing.Font("微软雅黑", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.dataGridViewX1.RowsDefaultCellStyle = dataGridViewCellStyle3;
this.dataGridViewX1.RowTemplate.Height = 23;
this.dataGridViewX1.Size = new System.Drawing.Size(637, 640);
this.dataGridViewX1.TabIndex = 7;
//
// colSelect
//
this.colSelect.FillWeight = 50F;
this.colSelect.HeaderText = "选";
this.colSelect.Name = "colSelect";
this.colSelect.ReadOnly = true;
this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colSelect.Width = 41;
//
// colId
//
this.colId.HeaderText = "序号";
this.colId.Name = "colId";
this.colId.ReadOnly = true;
this.colId.Width = 150;
//
// colKeywords
//
this.colKeywords.HeaderText = "关键词";
this.colKeywords.Name = "colKeywords";
this.colKeywords.ReadOnly = true;
this.colKeywords.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colKeywords.Width = 350;
//
// colFrequency
//
this.colFrequency.HeaderText = "出现频率";
this.colFrequency.Name = "colFrequency";
this.colFrequency.ReadOnly = true;
this.colFrequency.Width = 60;
//
// colDel
//
this.colDel.HeaderText = "删除";
this.colDel.Name = "colDel";
this.colDel.ReadOnly = true;
this.colDel.Width = 60;
//
// KeywordsCatchFrom
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(1280, 800);
this.Controls.Add(this.panel2);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "KeywordsCatchFrom";
this.Padding = new System.Windows.Forms.Padding(0);
this.ShowMaximizeBox = true;
this.Text = "抓词工具";
this.TitleText = "抓词工具";
this.Load += new System.EventHandler(this.KeywordsCatchFrom_Load);
this.Controls.SetChildIndex(this.panel2, 0);
this.panel2.ResumeLayout(false);
this.splitContainer1.Panel1.ResumeLayout(false);
this.splitContainer1.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
this.splitContainer1.ResumeLayout(false);
this.ucGroupBoxEx2.ResumeLayout(false);
this.ucGroupBoxEx2.PerformLayout();
this.ucGroupBoxEx1.ResumeLayout(false);
this.ucGroupBoxEx1.PerformLayout();
this.splitContainer2.Panel1.ResumeLayout(false);
this.splitContainer2.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();
this.splitContainer2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dataGridViewX1)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Panel panel2;
private System.Windows.Forms.SplitContainer splitContainer1;
private DevComponents.DotNetBar.Controls.TextBoxX txbSearchWord;
private UserComponent.UcGroupBoxEx ucGroupBoxEx1;
private UserComponent.UcGroupBoxEx ucGroupBoxEx2;
private System.Windows.Forms.TextBox newWordTextBox;
private DevComponents.DotNetBar.PanelEx wordReplaceButtonX;
private System.Windows.Forms.TextBox oldWordTextBox;
private DevComponents.DotNetBar.PanelEx participleButtonX;
private DevComponents.DotNetBar.PanelEx toSpecialButtonX;
private DevComponents.DotNetBar.PanelEx remDataButtonX;
private DevComponents.DotNetBar.PanelEx keyWordShortButtonX;
private DevComponents.DotNetBar.PanelEx toRepeatButtonX;
private DevComponents.DotNetBar.PanelEx removeEnglishButtonX;
private DevComponents.DotNetBar.PanelEx IrregularitiesButtonX;
private DevComponents.DotNetBar.PanelEx keyWordLengthButtonX;
private System.Windows.Forms.CheckBox checkBox1;
private System.Windows.Forms.Label label14;
private System.Windows.Forms.TextBox endPriceTextBox;
private System.Windows.Forms.TextBox startPriceTextBox;
private System.Windows.Forms.CheckBox priceCheckBox;
private System.Windows.Forms.TextBox titleLengthTextBox;
private System.Windows.Forms.CheckBox titleLengthCheckBox;
private DevComponents.DotNetBar.PanelEx btnCaptureTitleZc;
private DevComponents.DotNetBar.PanelEx btnCollectZc;
private DevComponents.DotNetBar.PanelEx exportButtonX;
private System.Windows.Forms.SplitContainer splitContainer2;
private DevComponents.DotNetBar.Controls.RichTextBoxEx descriptionTextBox;
private UserComponent.DataGridViewEx dataGridViewX1;
private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect;
private System.Windows.Forms.DataGridViewTextBoxColumn colId;
private System.Windows.Forms.DataGridViewTextBoxColumn colKeywords;
private System.Windows.Forms.DataGridViewTextBoxColumn colFrequency;
private System.Windows.Forms.DataGridViewTextBoxColumn colDel;
private DevComponents.DotNetBar.PanelEx btnPicToMain;
private DevComponents.DotNetBar.PanelEx btnPicToContent;
private DevComponents.DotNetBar.PanelEx btnChangeFissionTitle;
}
}
@@ -1,639 +0,0 @@
using AllBase;
using CefSharp;
using CefSharp.WinForms;
using TemuKJD.Helper;
using TemuKJD.BaseForms;
using TemuKJD.KJDForms.ProductForms;
using NaiBa.CefHelper.Handler;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using Work.BLL.Upload;
using Work.CollectClass;
namespace TemuKJD.KJDForms.ToolForms.KeywordsForms
{
public partial class KeywordsCatchFrom : LRBaseForm
{
public Fission fission = null;
private bool IsCf = false;
private string tempUrl = "";
public delegate void delegateView();
private List<string> titleList = new List<string>(); // 用于存储标题集合
public ChromiumWebBrowser cwbSearchTitle; // 用于根据关键词采集标题
private List<string> TemptitleList = new List<string>();//用于存储标题的临时集合
public KeywordsCatchFrom()
{
InitializeComponent();
}
private void KeywordsCatchFrom_Load(object sender, EventArgs e)
{
}
private void btnCollectZc_Click(object sender, EventArgs e)
{
if (txbSearchWord.Text.Trim().Length == 0)
{
BaseMsgForm.ShowInfo("请输入关键词!", "提示");
return;
}
titleList.Clear();
DisabledCaptureTitleZc();
//TemptitleList.Clear();
string targetUrl;
//根据文本框内容判断是网址还是关键词
if (txbSearchWord.Text.Trim().Contains("/"))
{
targetUrl = txbSearchWord.Text.Trim();
}
else
{
targetUrl = "https://s.taobao.com/search?initiative_id=tbindexz_20170306&ie=utf8&spm=a21bo.2017.201856-taobao-item.2&sourceId=tb.index&search_type=item&ssid=s5-e&commend=all&imgfile=&q=" + txbSearchWord.Text.Trim() + "&suggest=history_1&_input_charset=utf-8&wq=&suggest_query=&source=suggest";
if (priceCheckBox.Checked)
{
string minPrice = startPriceTextBox.Text;
string maxPrice = endPriceTextBox.Text;
targetUrl += "&filter=reserve_price%5B" + minPrice + "%2C" + maxPrice + "%5D";
}
}
if (cwbSearchTitle != null)
{
cwbSearchTitle.Load(targetUrl);
cwbSearchTitle.Visible = true;
return;
}
cwbSearchTitle = new ChromiumWebBrowser(targetUrl) { Dock = DockStyle.Fill, Visible = true };
splitContainer1.Panel2.Controls.Add(cwbSearchTitle);
cwbSearchTitle.BringToFront();
cwbSearchTitle.AddressChanged += CwbSearchTitle_AddressChanged; //url 地址有变化 则触发 add by tl 20190227
cwbSearchTitle.FrameLoadEnd += cwbSearchTitle_FrameLoadEnd;
cwbSearchTitle.LifeSpanHandler = new LifeSpanHandlerLocal(PopWindowType.SelfWindow);
cwbSearchTitle.KeyboardHandler = new KeyboardHandler();
}
/// <summary>
/// url 有变化时 则触发 add by tl 20190228
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void CwbSearchTitle_AddressChanged(object sender, AddressChangedEventArgs e)
{
Invoke(new delegateView(DisabledCaptureTitleZc));
if (!IsCf)
{
if (e.Address.Contains("https://s.taobao.com/search/_____tmd_____/verify/?nc_token="))
{
IsCf = true;
cwbSearchTitle.Load(tempUrl);
return;
}
}
//判断url是否有变化 有变化则需要load一下,这样获取网页源码才能有变化 add by tl 20190228
if (tempUrl != e.Address)
{
tempUrl = e.Address; //临时存储url
cwbSearchTitle.Load(e.Address);
}
//点击页面排序时 清空集合 add by tl 20190228
if (e.Address.Contains("default") || e.Address.Contains("sale-desc") || e.Address.Contains("credit-desc"))
{
if (e.Address.Contains("default&") || e.Address.Contains("sale-desc&") || e.Address.Contains("credit-desc&"))
{
//TempSort = "default&";
}
else
{
titleList.Clear();
TemptitleList.Clear();
return;
}
}
}
/// <summary>
/// 禁用抓取标题 add by tl 20190304
/// </summary>
public void DisabledCaptureTitleZc()
{
btnCaptureTitleZc.Enabled = false;
}
/// <summary>
/// 界面加载完成时 add by tl 20190228
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void cwbSearchTitle_FrameLoadEnd(object sender, FrameLoadEndEventArgs e)
{
//界面加载完成则获取标题 add by tl 20190228
new Thread(GetData).Start();
}
/// <summary>
/// 获取标题 add by tl 20190228
/// </summary>
private void GetData()
{
var task = cwbSearchTitle.GetSourceAsync();
task.Wait();
string html = task.Result;
string sContent = task.Result;
if (sContent.Length == 0) return;
string strReg = "g_page_config = [^<]+";
var titleCon = BaseRegex.GetMatchRegex(ref sContent, strReg);
if (titleCon.Count == 0)
{
return;
}
int titleLength = titleLengthTextBox.Text == "" ? 0 : Convert.ToInt32(titleLengthTextBox.Text);//去除标题小于这个长度的
string content = titleCon[0].Groups[0].Value;
string regTitle = "\"raw_title\":\"([\\s\\S]+?)\"";
string regPrice = "\"view_price\":\"([\\s\\S]+?)\"";
string regSales = "\"view_sales\":\"(\\d*)人付款\"";
var priceArr = BaseRegex.GetMatchRegex(ref content, regPrice);
var titleArr = BaseRegex.GetMatchRegex(ref content, regTitle);
var salesArr = BaseRegex.GetMatchRegex(ref content, regSales);
if (titleArr.Count > 0)
{
for (int i = 0; i < titleArr.Count; i++)
{
string titleItem = titleArr[i].Value;
if (titleLengthCheckBox.Checked)//判断标题长度够不够
{
int titleItemLength = titleItem.Length;
if (titleItemLength <= titleLength)
{
continue;
}
}
if (checkBox1.Checked && salesArr.Count == titleArr.Count)
{
string sales = salesArr[i].Value;
if (BaseRegex.GetStringJson(ref sales, "view_sales") == "0人付款")
continue;
}
string title = BaseRegex.GetStringJson(ref titleItem, "raw_title");
titleList.Add(title.Replace("\"", ""));
}
};
if (titleList.Count > 0)
{
Invoke(new delegateView(EnabledCaptureTitleZc));
}
//Invoke(new delegateView(ShowView));
//cwbSearchTitle.Visible = false;
}
/// <summary>
/// 显示抓取标题 add by tl 20190304
/// </summary>
public void EnabledCaptureTitleZc()
{
btnCaptureTitleZc.Enabled = true;
}
private void btnCaptureTitleZc_Click(object sender, EventArgs e)
{
//titleList.Clear();
descriptionTextBox.Text = "";
if (cwbSearchTitle == null) return;
//将数据显示到文本框中 add by tl 20190228
Invoke(new delegateView(ShowView));
cwbSearchTitle.Visible = false;//显示控件 add by tl 20190228
}
public void ShowView()
{
descriptionTextBox.Clear();
//if (TemptitleList.Count <= 0) return;
//获取标题临时变量赋值,同时去重 add by tl 20190228
titleList = titleList.Distinct().ToList();
for (int i = 0; i < titleList.Count; i++)
{
descriptionTextBox.AppendText(titleList[i] + "\r\n");
}
}
private void keyWordLengthButtonX_Click(object sender, EventArgs e)
{
Reload();
titleList = titleList.OrderByDescending(s => s.Length).ToList();
Invoke(new delegateView(ShowView));
}
private void Reload()
{
titleList.Clear();
string[] l = descriptionTextBox.Text.Split('\n');
for (int i = 0; i < l.Length; i++)
{
if (string.IsNullOrEmpty(l[i]))
continue;
l[i] = l[i].Trim();
titleList.Add(l[i]);
}
}
private void keyWordShortButtonX_Click(object sender, EventArgs e)
{
Reload();
titleList = titleList.OrderBy(s => s.Length).ToList();
Invoke(new delegateView(ShowView));
}
private void removeEnglishButtonX_Click(object sender, EventArgs e)
{
Reload();
new Thread(RemoveEnglish).Start();
}
public void RemoveEnglish()
{
for (int i = 0; i < titleList.Count; i++)
{
string pattern = @"[A-Za-z]{3,}";
var viewMatch = BaseRegex.GetMatchRegex(titleList[i], pattern);
if (viewMatch != null && viewMatch.Count > 0)
{
for (int j = 0; j < viewMatch.Count; j++)
{
string englishstr = viewMatch[j].Groups[0].Value;
titleList[i] = titleList[i].Replace(englishstr, "").Replace(" ", "");
}
}
}
Invoke(new delegateView(ShowView));
}
private void toSpecialButtonX_Click(object sender, EventArgs e)
{
Reload();
for (int i = 0; i < titleList.Count; i++)
{
titleList[i] = ReplaceStr(titleList[i]);
}
Invoke(new delegateView(ShowView));
}
public static string ReplaceStr(string str)
{
str = str.Replace(",", "");
str = str.Replace("'", "");
str = str.Replace(";", "");
str = str.Replace(":", "");
str = str.Replace("/", "");
str = str.Replace("?", "");
str = str.Replace("<", "");
str = str.Replace(">", "");
str = str.Replace(".", "");
str = str.Replace("#", "");
str = str.Replace("%", "");
str = str.Replace("%", "");
str = str.Replace("^", "");
str = str.Replace("//", "");
str = str.Replace("@", "");
str = str.Replace("(", "");
str = str.Replace(")", "");
str = str.Replace("*", "");
str = str.Replace("~", "");
str = str.Replace("`", "");
str = str.Replace("$", "");
str = str.Replace(" ", "");
return str;
}
private void IrregularitiesButtonX_Click(object sender, EventArgs e)
{
Reload();
for (int i = 0; i < titleList.Count; i++)
{
for (int j = 0; j < UploadProductBLL.FilterTitleWordList.Count; j++)
{
if (titleList[i].Contains(UploadProductBLL.FilterTitleWordList[j]))
titleList[i] = titleList[i].Replace(UploadProductBLL.FilterTitleWordList[j], "");
}
for (int j = 0; j < UploadProductBLL.FilterRemoveTitleWordList.Count; j++)
{
if (titleList[i].Contains(UploadProductBLL.FilterRemoveTitleWordList[j]))
titleList[i] = titleList[i].Replace(UploadProductBLL.FilterRemoveTitleWordList[j], "");
}
for (int j = 0; j < UploadProductBLL.FilterBrandWordList.Count; j++)
{
if (titleList[i].Contains(UploadProductBLL.FilterBrandWordList[j]))
titleList[i] = titleList[i].Replace(UploadProductBLL.FilterBrandWordList[j], "");
}
}
Invoke(new delegateView(ShowView));
}
private void remDataButtonX_Click(object sender, EventArgs e)
{
Reload();
for (int i = 0; i < titleList.Count; i++)
{
string pattern = @"[\d]+";
var viewMatch = BaseRegex.GetMatchRegex(titleList[i], pattern);
if (viewMatch != null && viewMatch.Count > 0)
{
for (int j = 0; j < viewMatch.Count; j++)
{
string englishstr = viewMatch[j].Groups[0].Value;
titleList[i] = titleList[i].Replace(englishstr, "").Replace(" ", "");
}
}
}
Invoke(new delegateView(ShowView));
}
private void toRepeatButtonX_Click(object sender, EventArgs e)
{
Reload();
titleList = titleList.Distinct().ToList();
Invoke(new delegateView(ShowView));
}
Dictionary<string, int> keys = new Dictionary<string, int>();
private void participleButtonX_Click(object sender, EventArgs e)
{
Reload();
keys.Clear();
dataGridViewX1.Rows.Clear();
for (int i = 0; i < titleList.Count; i++)
{
GetFenCi(titleList[i]);
}
var keylist = keys.ToList();
keylist = keylist.OrderByDescending(u => u.Value).ToList();
for (int i = 0; i < keylist.Count; i++)
{
dataGridViewX1.Rows.Add(dataGridViewX1.Rows.Count + 1, keylist[i].Key, keylist[i].Value, "删除");
}
}
public static Dictionary<string, int> Keywords = new Dictionary<string, int>();
public void GetFenCi(string title)
{
for (int i = 2; i < title.Length; i++)
{
for (int j = 0; j < title.Length - i; j++)
{
string key = title.Substring(j, i).Trim();
if (string.IsNullOrEmpty(key))
continue;
if (Keywords.ContainsKey(key))
{
if (!keys.ContainsKey(key))
{
keys.Add(key, 1);
}
else
{
keys[key] = keys[key] + 1;
}
}
}
}
}
private void wordReplaceButtonX_Click(object sender, EventArgs e)
{
string oldWord = this.oldWordTextBox.Text;
string newWord = this.newWordTextBox.Text;
if (string.IsNullOrEmpty(oldWord)) // 替换的字符不能为空 否则程序报错 add by tl20190301
{
BaseMsgForm.ShowInfo("需要替换的字符不能为空!");
return;
}
descriptionTextBox.Text = descriptionTextBox.Text.Replace(oldWord, newWord);
}
private void exportButtonX_Click(object sender, EventArgs e)
{
SaveFileDialog dialog = new SaveFileDialog();
dialog.Title = "Save file as...";
dialog.Filter = "Excel files (*.csv)|*.csv|All files (*.*)|*.*";
dialog.RestoreDirectory = true;
dialog.FileName = "淘宝关键词:" + DateTime.Now.ToString("yyyy-MM-dd") + ".csv";
if (dialog.ShowDialog() != DialogResult.OK)
return;
OutExcel.SaveFile(dialog.FileName, dataGridViewX1);
}
private void btnPicToMain_Click(object sender, EventArgs e)
{
if (cwbSearchTitle == null || !cwbSearchTitle.IsBrowserInitialized)
{
BaseMsgForm.ShowInfo("网页加载失败!");
return;
}
// 详情页转主图
if (cwbSearchTitle.Address.Contains("tmall.com/item.htm?") || cwbSearchTitle.Address.Contains("taobao.com/item.htm?"))
{
//9787030687623
var jsStr = "function getImgUrl() {" +
" var imgStr = '';" +
" var mainPicControls = document.getElementsByClassName('tb-thumb tb-clearfix');" +
" if (mainPicControls.length === 0) {" +
" var uls = document.getElementsByTagName('ul');" +
" for (i = 0; i < uls.length; i++) {" +
" if (uls[i].className.indexOf('PicGallery--thumbnails') >= 0) {" +
" imgStr = uls[i].innerHTML;" +
" break;" +
" }" +
" }" +
" }" +
" else {" +
" imgStr = mainPicControls[0].innerHTML;" +
" }" +
" return imgStr;" +
"} " +
"getImgUrl();";
var t1 = cwbSearchTitle.GetMainFrame().EvaluateScriptAsync(jsStr);
t1.Wait();
var html = t1.Result?.Result?.ToString();
if (!string.IsNullOrEmpty(html))
{
var res = BaseRegex.GetMatchRegex(ref html, " src=\"([\\s\\S]+?)\"");
var htmlTempArr = res.Cast<Match>().Select(m => m.ToString()).ToArray();
htmlTempArr = htmlTempArr.Where(s => !s.EndsWith("/s.gif")).ToArray();
var htmlList = new List<string>();
foreach (var str in htmlTempArr)
{
var strTemp = str.Trim().Replace("src=", "").Trim('\"').Replace(".jpg_230x230", "").Replace("_.webp", "");
if (strTemp.Contains(".jpg_"))
strTemp = strTemp.Substring(0, strTemp.IndexOf(".jpg_")) + ".jpg";
if (!strTemp.StartsWith("http"))
strTemp = "https://" + strTemp.Trim('/');
htmlList.Add(strTemp);
}
Task.Run(() =>
{
if (fission != null)
fission.MulitAddMainImageWithCatchWords(htmlList);
Invoke(new Action(() => { BaseMsgForm.ShowInfo("图片转主完成!"); }));
});
}
else
BaseMsgForm.ShowInfo("图片转主失败!");
return;
//var address = cwbSearchTitle.Address;
//var id = BaseRegex.GetMatchRegexString(ref address, "id=(\\d{5,15})");
//if (!string.IsNullOrEmpty(id))
//{
// Task.Run(() =>
// {
// ProductCollectBase pcb = new ProductCollectBase
// {
// from_url = "https://item.taobao.com/item.htm?id=" + id,
// from_id = Convert.ToInt64(id),
// };
// TaobaoMobileCollect tm = new TaobaoMobileCollect(pcb);
// tm.Get();
// if (tm.Product != null && tm.Product.Images?.Count > 0 == true)
// {
// var htmlList = new List<string>();
// foreach (var str in tm.Product.Images)
// {
// htmlList.Add(str.Replace(".jpg_230x230", "").Replace("_.webp", ""));
// }
// if (fission != null)
// {
// fission.MulitAddMainImageWithCatchWords(htmlList);
// Invoke(new Action(() => { BaseMsgForm.ShowInfo("图片转主完成!"); }));
// }
// }
// });
//}
}
// 搜索页转主图
else
{
var jsStr = "function getImgUrl() {" +
" var imgs = document.getElementsByClassName('J_ItemPic img'); " +
" var result = '';" +
" for(i = 0; i < imgs.length; i++) {" +
" result += imgs[i].src + ';';" +
" }" +
" return result;" +
"} getImgUrl();";
var t1 = cwbSearchTitle.GetMainFrame().EvaluateScriptAsync(jsStr);
t1.Wait();
var html = t1.Result?.Result?.ToString();
if (!string.IsNullOrEmpty(html))
{
var htmlTempArr = html.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
htmlTempArr = htmlTempArr.Where(s => !s.EndsWith("/s.gif")).ToArray();
var htmlList = new List<string>();
foreach (var str in htmlTempArr)
{
htmlList.Add(str.Replace(".jpg_230x230", "").Replace("_.webp", ""));
}
Task.Run(() =>
{
if (fission != null)
fission.MulitAddMainImageWithCatchWords(htmlList);
BaseMsgForm.ShowInfo("图片转主完成!");
});
}
else
BaseMsgForm.ShowInfo("图片转主失败!");
}
}
private void btnPicToContent_Click(object sender, EventArgs e)
{
//descV8-singleImage-image lazyload
var jsStr = "function getImgUrl() {" +
" var imgs = document.getElementsByClassName('lazyload'); " +
" var result = '';" +
" for(i = 0; i < imgs.length; i++) {" +
" result += imgs[i].src + ';';" +
" }" +
" return result;" +
"} getImgUrl();";
var t1 = cwbSearchTitle.GetMainFrame().EvaluateScriptAsync(jsStr);
t1.Wait();
var html = t1.Result?.Result?.ToString();
if (string.IsNullOrEmpty(html))
{
jsStr = "function getDescription() {" +
" var descriptions = document.getElementById('description'); " +
" var imgs = descriptions.getElementsByTagName('img'); " +
" var result = '';" +
" for(i = 0; i < imgs.length; i++) {" +
" result += imgs[i].src + ';';" +
" }" +
" return result;" +
"} getDescription();";
}
t1 = cwbSearchTitle.GetMainFrame().EvaluateScriptAsync(jsStr);
t1.Wait();
html = t1.Result?.Result?.ToString();
if (!string.IsNullOrEmpty(html))
{
var htmlTempArr = html.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
htmlTempArr = htmlTempArr.Where(s => !s.EndsWith("spaceball.gif") && !s.EndsWith("790-300.png")).ToArray();
var htmlList = new List<string>();
foreach (var str in htmlTempArr)
{
htmlList.Add(str.Replace(".jpg_230x230", "").Replace("_.webp", ""));
}
Task.Run(() =>
{
if (fission != null)
fission.MulitAddContentImageWithCatchWords(htmlList);
BaseMsgForm.ShowInfo("转内容图完成!");
});
}
else
BaseMsgForm.ShowInfo("转内容图失败!");
}
private void btnChangeFissionTitle_Click(object sender, EventArgs e)
{
if (fission != null)
fission.ChangeFissionTitle(descriptionTextBox.Text.Trim().Replace("\r\n", ";").Replace("\n", ";"));
BaseMsgForm.ShowInfo("替换完成!");
}
}
}
@@ -1,313 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="colSelect.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colKeywords.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colFrequency.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDel.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAgIAQAAAAAABoKAAAFgAAACgAAACAAAAAAAEAAAEABAAAAAAAACgAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
AAD///8AAAAAAAAAAAAAAAAABEZmbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMZmZkQAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAZszMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
zMxmAAAAAAAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzMzMzMzMzMxkAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzMzMzMzMzMzMzMzMzGQAAAAAAAAAAAAAAAAAAAbMzMzMzMzMzMzMzMzMzMzMzMzMd3d3d3d3d3
d3d3fMzMzMzMzMzMzMzMzMzMzMzMzMYAAAAAAAAAAAAAAAAARszMzMzMzMzMzMzMzMzMzMd3d3iIiIiI
iIiIiIiIiIh3d3d8zMzMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAABszMzMzMzMzMzMzMzMzMx3eIiIiI
iIiIiIiIiIiIiIiIiIiIiHd8zMzMzMzMzMzMzMzMzMxgAAAAAAAAAAAAAGzMzMzMzMzMzMzMzMzMd4iI
iIiIiIiIiIiIiIiIiIiIiIiIiIiIiHfMzMzMzMzMzMzMzMzMxgAAAAAAAAAAAAbMzMzMzMzMzMzMzMzH
eIiIiIiIiIiHZmZmZmZmZmZmZ3eIiIiIiIiIiHzMzMzMzMzMzMzMzMxgAAAAAAAAAABszMzMzMzMzMzM
zMzHiIiIiIiHZmZmZmZmZmZmZmZmZmZmZmZmeIiIiIiIfMzMzMzMzMzMzMzMxgAAAAAAAAAGzMzMzMzM
zMzMzMzHiIiIiIdmZmZmZgAAAAAAAAAAAAZmZmZmZmZmeIiIiIh8zMzMzMzMzMzMzMxgAAAAAAAATMzM
zMzMzMzMzMzHiIiIiHZmZgAAAAAAAAAAAAEAAAAAAAAAAGZmZmZniIiIiHzMzMzMzMzMzMzMxAAAAAAA
AGzMzMzMzMzMzMzMeIiIiGZmAAAAAAERERmZmZmZmZmZkRERERAAAGZmZmZ4iIiIfMzMzMzMzMzMzMYA
AAAAAAbMzMzMzMzMzMzMeIiIiGZgAAAAERmZmZmZmZmZmZmZmZmZmZmZkREAAGZmZniIiIfMzMzMzMzM
zMzMYAAAAABMzMzMzMzMzMzMzIiIiHYAAAARGZmZiIiIj///////+IiIiIeZmZmZkREAZmZmiIiIfMzM
zMzMzMzMzMQAAAAAbMzMzMzMzMzMzO6IiIYAAAARmYiI/////////////////////4iHmZmZEQBmZmeI
iIh8zMzMzMzMzMzGAAAABMzMzMzMzMzMzMeIiIdgAAAZmI////////////////////////////iJmZmR
EGZmZ4iIh8zMzMzMzMzMzEAAAAbMzMzMzMzMzMzoiIhwAAAZeP//////////////////////////////
/4iZmZEAZmZ4iIh8zMzMzMzMzMxgAABMzMzMzMzMzMzOiIiGAAABiP//////////////////////////
////////+JmZkQZmZ4iIh8zMzMzMzMzMxAAAbMzMzMzMzMzM7oiIYAABeP//////////////////////
///////////////4mZkQZmZ4iIjMzMzMzMzMzMYAAMzMzMzMzMzMzu6IhwAAGP//////////////////
/////////////////////4iZmRZmZ4iIfMzMzMzMzMzMAAbMzMzMzMzMzM7oiHAAB4//////////////
////////////////////////////iZmRBmZ4iIfMzMzMzMzMzGAGzMzMzMzMzMzuiIcAAHj/////////
//////////////////////////////////iZmRZmZ4iIzMzMzMzMzMxgDMzMzMzMzMzM7ohwAAf/////
////////////////////////////////////////95mRZmaIiHzMzMzMzMzMwEzMzMzMzMzMzuiIEABo
//////////////////////////////////////////////95mRZmaIiMzMzMzMzMzMRszMzMzMzMzM7o
hwAGj///////////////////////////////////////////////95kQZmeIh8zMzMzMzMzGbMzMzMzM
zMzu6HEAB/////////////////////////////////////////////////+ZkQZmiIjMzMzMzMzMxmzM
zMzMzMzM7ohwAGj/////////////////////////////////////////////////iZkWZniIfMzMzMzM
zMZszMzMzMzMxu6HEAbv/4iI/////////////////////////////////////////4iP//iZEGZoiHzM
zMzMzMzGbMzMzMzMzM7uhxAGj/iIiIj//////////////////////////////////////4iIiI//mZFm
aIiMzMzMzMzMxszMzMzMzMzO6IEAbv+IiIiIj/////////////////////////////////////iIiIiP
/4mRBmeIh8zMzMzMzMbMzMzMzMzMbuhxAG7/iIiIiI////////////////iIj///j//////////////4
iIiIiP/5mQZmiIfMzMzMzMzMzMzMzMzMzO7ocQDo+IiIiIiP///////////////u7u7u7u7o////////
////iIiIiIj/+JkWZoiHzMzMzMzMzMzMzMzMzMzu6BEG7/iIiIiIj/////////////+Hd3ju5maO7v//
/////////4iIiIiI//iZEGaIh8zMzMzMzMzMzMzMzMzM7ugRBu//iIiIiI//////////////kZmZdmAZ
mP/////////////4iIiIiP//mRBmeIjMzMzMzMzMzMzMzMzMzO7nEAbv/4iIiIiP////////////+HiI
mZEBd5n/////////////+IiIiIj//4mQZniIzMzMzMzMzMzMzMzMzMzu5xAO7//4iIiI//ju7o//////
//j//4mZeP/4//////////////iIiIiP//+JkGZ4iHzMzMzMzMzMzMzMzMzG7ocQDu///4iI//ju7u7u
j//////////4mP//////////////7u7uiIiI////iZBmaIh8zMzMzMzMzMzMzMzMzu6HEG7v//////+G
ZmZ47u7//////////4//////////////7u7u7u6P/////4mQBmiIfMzMzMzMzMzMzMzMzM7uhRBu7///
///3AAAAF37u7///////////////////////h2AABm7u7v/////5kAZ4iHzMzMzMzMzMzMzMzMzO7oUQ
bu//////gQAAZgEG7u//////////////////////+BAAAAAFfu6P////+ZAGeIjMzMzMzMzMzMzMzMzM
zu6FEG7v////+JEAAXhwAG7o/////////////////////4gAABEGARbu7/////kQBoiIzMzMzMzMzMzM
zMzMzM7uhRBu7/////iZABmZkQBm6P////////////////////+JABGZF2AAbo////+JEGaIiMzMzMzM
zMzMzMzMzMzO7ucRbu/////4mRZ4iZkQBu//////////////////////mQB5mZdgAG7/////iRBmiIfM
zMzMzMzMzMzMzMzMxu7nEQ7v////+Bl+j/iZEAaP/////////////////////5l2/4mRAABu/////4kQ
ZoiHzMzMzMzMzMzMzMzMzMzu5xEO6P//+Phgbu/4kQAI//////////////////////+Zfo/4kQAAeIiP
//+JEGaIh8zMzMzMzMzMzMzMzMzM7ucRBu7///iOYHiI+HAAf///////////////////////mYjv+BAA
BuiIj///iQBniIfMzMzMzMzMzMzMzMzMzO7nEQbu///3EAAG6IcRF4iP/////////////////////4GP
/4cQAAZnbv///5EAaIiMzMzMzMzMzMzMzMzMzMzu5xEW7v//iRF3dmZgAXjmj///////////////////
///3ePiBEQAHdm7///iRAGiIfMzMzMzMzMzMzMzMzMzM7u5xFu6P/5EZmXZmZmbmaP//////////////
///////4/4d2cRAAFwbuj//4kQZoiHzMzMzMzMzMzMzMzMzMzG7ucRDu7/iXiZkQAAZmAH//////////
////////////+IiIdmYABmAX//j/+BAGeIh8zMzMzMzMzMzMzMzMzMzO7nEQbu/4iP+BERkREZf/////
//////////////////+JmXdxEBEAB3////kQBoiIzMzMzMzMzMzMzMzMzMzMzu5xEW7o+P//gZmZmZmP
////////////////////////+JmZmZmZl453//+JAGaIh8zMzMzMzMzMzMzMzMzMzM7u5xEO7vj/+IeP
iIj////////////////////////////4iZmZmZiPiP//cQBoiIfMzMzMzMzMzMzMzMzMzMzM7ucRFu6P
//iP//////////////////////////////////////+Jn/j/+JAAaIiMzMzMzMzMzMzMzMzMzMzMzO7n
ERbu7//4/////////////////////////////////////////4j///gQBoiIfMzMzMzMzMzMzMzMzMzM
zMzu7nERbuj////////////////////////////////////////////4//+BAAaIiMzMzMzMzMzMzMzM
zMzMzMzMzu5xEW7u////////////////////////////////////////////////cQBoiIfMzMzMzMzM
zMzMzMzMzMzMzM7u5xEW7u//////////////////////////////////////////////+BAAaIiMzMzM
zMzMzMzMzMzMzMzMzMzO7uYREO7o//7v//////////////////////////////////////////cABoiI
fMzMzMzMzMzMzMzMzMzMzMzMzO7ucRFu7oj/7o////////////////////////////////////////9x
AAeIiMzMzMzMzMzMzMzMzMzMzMzMzMzO7ucRFu7nePju7u7v////////////////////////////////
6P/4EAB4iIfMzMzMzMzMzMzMzMzMzMzMzMzMzu7nERBu7nmIiO7oj///////////////////////////
ju7u7o//hwAGiIh8zMzMzMzMzMzMzMzMzMzMzMzMzMzu7nERbu7nmZl5eP//////////////////////
///4iPiO5nj/+HAAaIiIzMzMzMzMzMzMzMzMzMzMzMzMzMzM7u7nERbu7oiZeI//////////////////
////////+ImXd5mP/4cAAHiIh8zMzMzMzMzMzMzMzMzMzMzMzMzMzM7u53ERbu7v////////////////
///////////////4iZl4//hgAAeIiHzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM7u53ERBu7v//////////
//////////////////////////+GAAB4iI7MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzO7uiHEADujv////
///////////////////////////////3AAAGiIh8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzO7ohwABmP
////////////////////////////////////iREAZniIjMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzuiI
EAB4f///////////////////////////////////+JmZkWZoiIfMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
zO6IhwBo//////////////////////////////////////iImZl2ZoiIzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzuiHAA7////////////////////////////////////////4iZFmZ4iHzMzMzMzMzMzMzMzMzM
zMzMzMzMzMzO6IgQBo/////4j///////////////////////////////////mZFmaIiMzMzMzMzMzMzM
zMzMzMzMzMzMzMzMzuiHAA7/////iIiP//////7o//////////////////iI/////4mRZmeIh8zMzMzM
zMzMzMzMzMzMzMzMzMzMzO6IcQBo////+IiIiI/////+7u7u7uiIiI7u7v////iIiI/////5mRZmiIjM
zMzMzMzMzMzMzMzMzMzMzMzMzMzuiHAA7////4iIiIiIj//3d2bu7u7u7u7u7u7//4iIiIiP////+JkW
ZniIfMzMzMzMzMzMzMzMzMzMzMzMzMzO6IcQBo////+IiIiIiI//+ZkAAGZmZmZmZmbv//iIiIiIiP//
//+ZkWZoiIzMzMzMzMzMzMzMzMzMzMzMzMzMzuiFAG7////4iIiIiIj///iZABEREREREBAG7//4iIiI
iIj/////iZFmaIiMzMzMzMzMzMzMzMzMzMzMzMzMzO6IcQBo////+IiIiIiI///4kQARERERERERDo//
+IiIiIiIj/////mZBmeIh8zMzMzMzMzMzMzMzMzMzMzMzMzuiHAG7////4iIiIiIiP//+JFmeHd3d3dx
EW6P//iIiIiIiI/////4mRZmiIfMzMzMzMzMzMzMzMzMzMzMzMzO7ocQBo////+IiIiIiIj///iQZoiO
7u7u5xFu7//4iIiIiIiI////+JkWZniIzMzMzMzMzMzMzMzMzMzMzMzMzuiHEA7////4iIiIiIiP///5
kGaIju7u7ucRbu///4iIiIiIiP////95kGZ4iHzMzMzMzMzMzMzMzMzMzMzMzM7ogQBu////+IiIiIiI
j///+RBmiI7u7u7nEW7v//+IiIiIiIiP////iZFmaIh8zMzMzMzMzMzMzMzMzMzMzMzu6HEAaP////iI
iIiIiI////kQZoiHzMzu5xEO6P//iIiIiIiIj////4mRZmiIjMzMzMzMzMzMzMzMzMzMzMzM7ugRBu//
///4iIiIiIj///+JEGaIh8zM7ucRBu7//4iIiIiIiI/////5kQZniIzMzMzMzMzMzMzMzMzMzMzMzO6I
EAbv////iIiIiIiI////iQBniIzMzO7oERbu///4iIiIiIiP////+JkGZ4iHzMzMzMzMzMzMzMzMzMzM
zMbuhxAGj////4iIiIiIj////3kAaIiMzMzu7nEW7v//+IiIiIiIiP////iZFmaIh8zMzMzMzMzMzMzM
zMzMzMzO7oUQbv////+IiIiIiI////+RBmiIfMzMzu5xFu6P//+IiIiIiIj////4mRZmiIfMzMzMzMzM
zMzMzMzMzMzMzu6BAG7////4iIiIiIj////4kQZoiHzMzM7ucRDu7///iIiIiIiIj////5kQZoiHzMzM
zMzMzMzMzMzMzMzMzM7ocQBu////+IiIiIiI////+JAGeIh8zMzO7nERbu///4iIiIiIiI////95EGaI
h8zMzMzMzMzMzMzMzMzMzMxu6HEA7v////iIiIiIiP////cQBoiIzMzMzu7lEW7v///4iIiIiIiP////
iRBmeIjMzMzMzMzMzMzMzMzMzMzM7uhxBuj////4iIiIiI/////5EAaIiMzMzMbu5xEO7v//+IiIiIiI
j////4kQZniIzMzMzMzMzMzMzMzMzMzMzO7oEQbv////+IiIiIj/////iQBmiIfMzMzM7ucRBu7///iI
iIiIiIj///+JkGZ4iMzMzMzMzMzMzMzMzMzMzMzu6BEG7/////iIiIiI/////4EAaIiHzMzMzO7nERbu
j///iIiIiIiI////iZBmaIh8zMzMzMzMzMzMzMzMzMzM7ucRBu/////4iIiIj/////+RAGiIjMzMzMzu
7nEQ7u////iIiIiIiP///4mQBmiIfMzMzMzMzMzMzMzMzMzMzO7nEAbv////+IiIiP/////4EAZ4iHzM
zMzMzu5xEG7v///4iIiIiIj///+JkAZoiHzMzMzMzMzMxmzMzMzMzMzu5xAO7/////+IiI//////+RAG
iIjMzMzMzM7ucRFu7v///4iIiIiI////+ZAGaIh8zMzMzMzMzMZszMzMzMzG7ocQDu//////+I//////
/4EAZoiIzMzMzMzO7ucRBu7////4iIiIiP////mQBmiIfMzMzMzMzMzGbMzMzMzMzu6HEA7v////////
//////9xAGiIh8zMzMzMzO7nERbu7///+IiIiI/////5kAZoiHzMzMzMzMzMxmzMzMzMzM7uhxAO7///
///////////4EABoiIzMzMzMzMzu7nEQbu////+IiIiP////+ZAGaIh8zMzMzMzMzMZszMzMzMzO7oUQ
Du//////////////9xAGiIh8zMzMzMzM7u5xEW7u/////4iI//////mQBmiIfMzMzMzMzMzGTMzMzMzM
zu6HEA7v/////////////4EABoiIzMzMzMzMzM7u5xEG7v/////////////5kAZoiHzMzMzMzMzMxAzM
zMzMzM7uhxEO7/////////////9wAGiIh8zMzMzMzMzO7ucRFu7v////////////+RAGeIh8zMzMzMzM
zMAGzMzMzMzO7ucRDuj////////////4EAB4iIzMzMzMzMzMzO7ucRBu6P///////////4kQBoiIzMzM
zMzMzMxgBszMzMzMxu7nEQbo////////////gQAGiIh8zMzMzMzMzMzu7nERDu7///////////+JEAaI
iMzMzMzMzMzMYADMzMzMzMzu5xEG7v///////////3EAZ4iIzMzMzMzMzMzMzu7nERbu7///////////
gQBmiIfMzMzMzMzMzAAAbMzMzMzM7ucRBu7///////////gQAGiIh8zMzMzMzMzMzM7u5xEQbu7/////
/////5EAZ4iHzMzMzMzMzMYAAEzMzMzMzO7nERDu7/////////+HAAaIiIzMzMzMzMzMzMzM7u5xEQ7u
7/////////gQAGiIjMzMzMzMzMzEAAAGzMzMzMzu7nEQbuj////////4cAAHiIh8zMzMzMzMzMzMzO7u
dxEW7uj////////3AAZoiHzMzMzMzMzMYAAABMzMzMzM7u5xEG7u////////hgAAeIiHzMzMzMzMzMzM
zMzO7ucREW7u7///////gQAGiIh8zMzMzMzMzEAAAABszMzMzM7ucREG7uj/////hmAAB4iI7MzMzMzM
zMzMzMzMzu7ucREG7u6P////+AAAB4iIzMzMzMzMzMYAAAAATMzMzMzO7ucREG7u7oiO7mAAAHiIiMzM
zMzMzMzMzMzMzMzu7ucREG7u7o//+HYAAHiIh8zMzMzMzMzEAAAAAAbMzMzMzu7nEREG7u7u5mAAAAeI
iIfMzMzMzMzMzMzMzMzMzu7ucREQbu7u7uYAAAeIiHzMzMzMzMzMYAAAAAAAbMzMzMzu7nEREAZmZgAA
AAF4iI58zMzMzMzMzMzMzMzMzMzu7ncREQZm7mZgAAB4iI7MzMzMzMzMxgAAAAAAAEzMzMzM7u7nEREQ
AAAAABF4iI7uzMzMzMzMzMzMzMzMzMzM7u7ucRERAAAAAAAHiIiMzMzMzMzMzMQAAAAAAAAGzMzMzM7u
7nERERERERF3iIju7MzMzMzMzMzMzMzMzMzMzM7u7udREREQAAAReIiIfMzMzMzMzMxgAAAAAAAAAGzM
zMzM7u7udRERERV4iI7u7MzMzMzMzMzMzMzMzMzMzMzM7u7u5xEREREReIiO7MzMzMzMzMzGAAAAAAAA
AAAGzMzMzM7u7u53d3eIiO7u7szMzMzMzMzMzMzMzMzMzMzMzM7u7u7nd1F3eIiO7uzMzMzMzMzMYAAA
AAAAAAAAAGzMzMzM7u7u7u7u7u7u7szMzMzMzMzMzMzMzMzMzMzMzMzMzu7u7u6IiI7u7uzMzMzMzMzM
xgAAAAAAAAAAAAAGzMzMzMzu7u7u7u7u5szMzMzMzMzMzMzMzMzMzMzMzMzMzMzO7u7u7u7u7u7MzMzM
zMzMzGAAAAAAAAAAAAAAAEbMzMzMzG7u7u7ubMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM7u7u7u7uzM
zMzMzMzMzGQAAAAAAAAAAAAAAAAAbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzG7u
7szMzMzMzMzMzMYAAAAAAAAAAAAAAAAAAARszMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAABGzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzMzMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAAAAAAAABmzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzMzMzMzMzMzMzMzMzMzMzMzGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARGZmzMzMzMzMzMzMzM
zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMZmZEAAAAAAAAAAAAAAAAD////+AAAAAAAAAAD/////////AAAA
AAAAAAAAAP//////+AAAAAAAAAAAAAAf/////+AAAAAAAAAAAAAAB/////+AAAAAAAAAAAAAAAH////+
AAAAAAAAAAAAAAAAf////AAAAAAAAAAAAAAAAD////AAAAAAAAAAAAAAAAAP///gAAAAAAAAAAAAAAAA
B///wAAAAAAAAAAAAAAAAAP//4AAAAAAAAAAAAAAAAAB//8AAAAAAAAAAAAAAAAAAP/+AAAAAAAAAAAA
AAAAAAB//gAAAAAAAAAAAAAAAAAAf/wAAAAAAAAAAAAAAAAAAD/4AAAAAAAAAAAAAAAAAAAf+AAAAAAA
AAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP4AAAAAAAAAAAAAAAAAAAB+AA
AAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAA
AAOAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABAAAAAAAA
AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
AAAAAAABgAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAA
AAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH8AAAAAAAAAAAAAAAAAAAD/AA
AAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/wAAAAAAAAAAAAAAAAA
AD/+AAAAAAAAAAAAAAAAAAB//gAAAAAAAAAAAAAAAAAAf/8AAAAAAAAAAAAAAAAAAP//gAAAAAAAAAAA
AAAAAAH//8AAAAAAAAAAAAAAAAAD///gAAAAAAAAAAAAAAAAB///8AAAAAAAAAAAAAAAAA////wAAAAA
AAAAAAAAAAA////+AAAAAAAAAAAAAAAAf////4AAAAAAAAAAAAAAAf/////gAAAAAAAAAAAAAAf/////
+AAAAAAAAAAAAAAf//////8AAAAAAAAAAAAA/////////gAAAAAAAAAAf////w==
</value>
</data>
</root>
-167
View File
@@ -1,167 +0,0 @@
using AllBase.Model.Result;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Security;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Work.BLL.Collect
{
/// <summary>
/// 抖音好物采集
/// </summary>
public class HaoWuCollectBLL
{
private static bool CheckValidationResult(object sender, object certificate, object chain, SslPolicyErrors errors) => true; // 总是接受
public static string getHtml_fxg_20201220(string url, string cookies, string ip = "")
{
string str = "";
try
{
int num = 0;
while (num < 3)
{
try
{
HttpWebRequest request = null;
if (!url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
{
request = WebRequest.Create(url) as HttpWebRequest;
}
else
{
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
request = WebRequest.Create(url) as HttpWebRequest;
request.ProtocolVersion = HttpVersion.Version10;
}
request.Timeout = 25000;
request.ReadWriteTimeout = 25000;
request.Method = "Get";
request.ContentType = "application/json; charset=utf-8";
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36";
if ((DateTime.Now.Second % 5) == 0)
{
request.UserAgent = "com.ss.android.ugc.aweme/140001 (Linux; U; QuicVersion:47946d2a 2020-10-14)";
}
else if ((DateTime.Now.Second % 5) == 1)
{
request.UserAgent = "Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3";
}
else if ((DateTime.Now.Second % 5) == 2)
{
request.UserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3";
}
else if ((DateTime.Now.Second % 5) == 3)
{
request.UserAgent = "Mozilla/5.0 (Linux; Android 10; TAS-AL00 Build/HUAWEITAS-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045120 Mobile Safari/537.36 V1_AND_SQ_8.2.7_1334_YYB_D QQ/8.2.7.4410 NetType/WIFI WebP/0.3.0 Pixel/1080 StatusBarHeight/81 SimpleUISwitch/0";
}
else if ((DateTime.Now.Second % 5) == 4)
{
request.UserAgent = "Mozilla/5.0 (Linux; Android 6.0.1; Redmi Note 3 Build/MMB29M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 Mobile Safari/537.36 T7/11.19 SP-engine/2.15.0 baiduboxapp/11.19.5.10 (Baidu; P1 6.0.1)";
}
request.Host = new Uri(url).Host;
if (cookies.Trim() != "")
{
request.Headers.Add("Cookie", cookies);
}
request.Headers.Add("x-agw-info", "w6S2IHH6-wDuuvNtk2hidFD2MalfJTaURnf6XobYTqjSXcFmCxT79rJjYPudFSWQKnvYl1_OuIsDwtMtheGHihJf4OgPYQqcLNzPkIgpYAEbkfMAvBCAm1gY6uOq0Q_7DbfFOJAMQRGwDEkbVSLUxQSX5cc0hIkwhm36AUf0CflSXVno");
request.Headers.Add("x-tt-logid", "2020122015563901002902921706016162");
request.Headers.Add("x-tt-trace-host", "010c04b40779d7ea1251fcddf2faf54650937df4831d71a387846d4b65371bb93d891684d9895d083828b415698988c161a98e8e3579dfbba439a0f3317851b468507df11e82922352c8b013941f82ea53");
request.Headers.Add("x-trans-level", "0");
request.Headers.Add("x-tt-trace-tag", "id=3;cdn-cache=miss");
char[] separator = new char[] { ':' };
string[] strArray = ip.Split(separator);
char[] chArray2 = new char[] { '.' };
string[] strArray2 = ip.Split(chArray2);
if (((ip.Trim() != "") && ((strArray.Length == 2) && (ip.IndexOf(".") > 0))) && (strArray2.Length == 4))
{
request.Proxy = new WebProxy(strArray[0], Convert.ToInt32(strArray[1].Trim()));
}
Encoding encoding = Encoding.Default;
encoding = Encoding.UTF8;
str = new StreamReader(((HttpWebResponse)request.GetResponse()).GetResponseStream(), encoding).ReadToEnd();
num = 10;
}
catch
{
num++;
}
}
}
catch
{
}
return str;
}
public static string getHtml(string url, string cookies, string encod = "")
{
string str = "";
try
{
int num = 0;
while (num < 3)
{
try
{
HttpWebRequest request = null;
if (!url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
{
request = WebRequest.Create(url) as HttpWebRequest;
}
else
{
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
request = WebRequest.Create(url) as HttpWebRequest;
request.ProtocolVersion = HttpVersion.Version10;
}
request.Method = "Get";
request.Referer = url;
request.ContentType = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;";
request.ContentType = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3";
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36";
request.Host = new Uri(url).Host;
if (cookies.Trim() != "")
{
request.Headers.Add("Cookie", cookies);
}
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Encoding encoding = Encoding.Default;
if (encod == "utf8")
{
encoding = Encoding.UTF8;
}
StreamReader reader = new StreamReader(response.GetResponseStream(), encoding);
str = reader.ReadToEnd();
try
{
reader.Close();
response.Close();
reader.Dispose();
response = null;
request = null;
}
catch
{
}
num = 10;
}
catch
{
num++;
}
}
}
catch
{
}
return str;
}
}
}
-735
View File
@@ -16,576 +16,7 @@ namespace Work.BLL.Collect
public class PddSameScreeningBLL
{
#region http请求
//Returns the text contained in the response. For example, the page HTML. Only handles the most common HTTP encodings.
public static string ReadResponse(HttpWebResponse response)
{
using (Stream responseStream = response.GetResponseStream())
{
Stream streamToRead = responseStream;
if (response.ContentEncoding.ToLower().Contains("gzip"))
{
streamToRead = new GZipStream(streamToRead, CompressionMode.Decompress);
}
else if (response.ContentEncoding.ToLower().Contains("deflate"))
{
streamToRead = new DeflateStream(streamToRead, CompressionMode.Decompress);
}
using (StreamReader streamReader = new StreamReader(streamToRead, Encoding.UTF8))
{
return streamReader.ReadToEnd();
}
}
}
/// <summary>
/// 请求当前店铺销量
/// </summary>
/// <param name="response">After the function has finished, will possibly contain the response to the request.</param>
/// <returns>True if the request was successful; false otherwise.</returns>
public static string RequestShopSold(string url, string Token)
{
HttpWebResponse response = null;
try
{
//Create request to URL.
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
//Set request headers.
request.KeepAlive = true;
request.Headers.Set(HttpRequestHeader.CacheControl, "max-age=0");
request.Headers.Add("Upgrade-Insecure-Requests", @"1");
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36";
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3";
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
request.Headers.Set(HttpRequestHeader.Cookie, Token);
//Get response to request.
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException e)
{
//ProtocolError indicates a valid HTTP response, but with a non-200 status code (e.g. 304 Not Modified, 404 Not Found)
if (e.Status == WebExceptionStatus.ProtocolError) response = (HttpWebResponse)e.Response;
else return "";
}
catch (Exception)
{
if (response != null) response.Close();
return "";
}
return ReadResponse(response);
}
/// <summary>
/// 获取宝贝数量
/// </summary>
/// <param name="response">After the function has finished, will possibly contain the response to the request.</param>
/// <returns>True if the request was successful; false otherwise.</returns>
public static string RequestShopCount(string url, string Token)
{
HttpWebResponse response = null;
try
{
//Create request to URL.
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://yangkeduo.com/proxy/api/api/turing/mall/query_mall_category_list?pdduid=2423695749878&mall_id=" + url);
//Set request headers.
request.KeepAlive = true;
request.Accept = "application/json, text/plain, */*";
request.Headers.Add("AccessToken", Token);
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36";
request.Headers.Add("VerifyAuthToken", @"kUo_K6VOliEhlNZNorECKQ");
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
//Get response to request.
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException e)
{
//ProtocolError indicates a valid HTTP response, but with a non-200 status code (e.g. 304 Not Modified, 404 Not Found)
if (e.Status == WebExceptionStatus.ProtocolError) response = (HttpWebResponse)e.Response;
else return "";
}
catch (Exception)
{
if (response != null) response.Close();
return "";
}
return ReadResponse(response);
}
/// <summary>
/// Tries to request the URL: http://api.yangkeduo.com/mall/412236912/info
/// </summary>
/// <param name="response">After the function has finished, will possibly contain the response to the request.</param>
/// <returns>True if the request was successful; false otherwise.</returns>
public static string Request_api_yangkeduo_com(string url, string Token)
{
HttpWebResponse response = null;
try
{
//Create request to URL.
string requestUrl = "http://api.yangkeduo.com/mall/" + url + "/info";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUrl);
//Set request headers.
request.Referer = "Android";
request.ContentType = "application/json;charset=UTF-8";
request.Headers.Add("AccessToken", Token);
request.UserAgent = "android Mozilla/5.0 (Linux; Android 5.1.1; m1 metal Build/LMY49I; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/52.0.2743.100 Safari/537.36 phh_android_version/4.17.1 phh_android_build/1a7ec8b149 phh_android_channel/gw";
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip");
//Get response to request.
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException e)
{
//ProtocolError indicates a valid HTTP response, but with a non-200 status code (e.g. 304 Not Modified, 404 Not Found)
if (e.Status == WebExceptionStatus.ProtocolError) response = (HttpWebResponse)e.Response;
else return "";
}
catch (Exception)
{
if (response != null) response.Close();
return "";
}
return ReadResponse(response);
}
public static string Request_api_yangkeduo_Ip(string url, string[] UserAgentList)
{
string result = "";
try
{
string requestUrl = url;
HttpParam httpParam = new HttpParam();
httpParam.Url = requestUrl;
httpParam.Referer = url;
string UserAgentTemp = UserAgentList[new Random().Next(UserAgentList.Count())];
if (!string.IsNullOrEmpty(UserAgentTemp) && !UserAgentTemp.Contains("MicroMessenger"))
{
UserAgentTemp = UserAgentTemp.Insert(new Random().Next(UserAgentTemp.Length), "MicroMessenger" + Guid.NewGuid().ToString().Replace("-", "").Substring(0, new Random().Next(5)));
}
httpParam.UserAgent = UserAgentTemp;
httpParam.TryTimes = 60;
httpParam.ProxySleep = 500;
if (url.Contains("mall_page.html"))
{
result = GlobalProxyHelper.Request(httpParam, (response) => !string.IsNullOrEmpty(response) && !response.Contains("<title>店铺主页</title>"));
if (result.Contains(("<title>店铺主页</title>")))
{
Thread.Sleep(10000);
httpParam.TryTimes = 60;
httpParam.Timeout = 10000;
result = GlobalProxyHelper.Request(httpParam, (response) => !string.IsNullOrEmpty(response) && !response.Contains("<title>店铺主页</title>"));
}
}
else
{
result = GlobalProxyHelper.Request(httpParam, (response) => !string.IsNullOrEmpty(response) && !response.Contains("error_code"));
if (result.Contains(("error_code")))
{
Thread.Sleep(10000);
httpParam.TryTimes = 60;
result = GlobalProxyHelper.Request(httpParam, (response) => !string.IsNullOrEmpty(response) && !response.Contains("error_code"));
}
}
}
catch (Exception ex)
{
return "";
}
return result;
}
public static List<string> listIp = new List<string>();
private static readonly object obj = new object();
private static int UseCount = 0;
public static string Request_yangkeduo_com(string sIpAndPort, long lProdId, string[] UserAgentList, out bool IsOverdue, bool IsBreak = false)
{
IsOverdue = false;
try
{
if (IsBreak)
{
return "";
}
if (UseCount >= 150 && listIp.Count > 0)//代理ip 使用超过150次 才去请求一次ip
{
listIp.Clear();
}
lock (obj)
{
//Thread.Sleep(3000);
if (listIp.Count() <= 0)
{
//Thread.Sleep(1000);
listIp = InitIp(sIpAndPort, out IsOverdue);
UseCount = 0;
}
}
if (IsOverdue)
{
return "";
}
string ProxyIP = listIp[new Random().Next(0, listIp.Count)];
UseCount++;
//listIp.Remove(listIp[0]);
HttpWebResponse response = null;
try
{
string UserAgentTemp = UserAgentList[new Random().Next(UserAgentList.Count())];
if (!string.IsNullOrEmpty(UserAgentTemp) && !UserAgentTemp.Contains("MicroMessenger"))
{
UserAgentTemp = UserAgentTemp.Insert(new Random().Next(UserAgentTemp.Length), "MicroMessenger" + Guid.NewGuid().ToString().Replace("-", "").Substring(0, new Random().Next(5)));
}
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://mobile.yangkeduo.com/goods.html?goods_id=" + lProdId);
request.Timeout = 5000;
request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9,en;q=0.8");
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
request.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
request.UserAgent = UserAgentTemp;
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "deflate");
System.Net.WebProxy proxy = GetWebProxy(ProxyIP);
request.Proxy = proxy;
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException e)
{
Thread.Sleep(3000);
LogHelper.Write(e.Message);
}
catch (Exception)
{
}
if (response != null)
{
string result = ReadResponse(response);
if (result.Contains("mallID"))
{
//GlobalProxyHelper.CloseIp(listIp);//找到了 把当前获取到的ip关闭
return HtmlHelper.UnicodeDecode(result);
}
}
return "";
}
catch (Exception ex)
{
return "";
}
}
public static string RequestUrl_yangkeduo_com(long lProdId, string[] UserAgentList, string orderId, out bool IsOverdue)
{
IsOverdue = false;
int count = 0;
try
{
Again:
count++;
HttpWebResponse response = null;
try
{
string UserAgentTemp = UserAgentList[new Random().Next(UserAgentList.Count())];
if (!string.IsNullOrEmpty(UserAgentTemp) && !UserAgentTemp.Contains("MicroMessenger"))
{
UserAgentTemp = UserAgentTemp.Insert(new Random().Next(UserAgentTemp.Length), "MicroMessenger" + Guid.NewGuid().ToString().Replace("-", "").Substring(0, new Random().Next(5)));
}
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://goods.66daili.cn/api/goods/get/?orderid=" + orderId + "&token=5AF433ED506FA475&goodID=" + lProdId);
request.Timeout = 5000;
request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9,en;q=0.8");
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
request.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
request.UserAgent = UserAgentTemp;
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "deflate");
response = (HttpWebResponse)request.GetResponse();
}
catch (Exception ex)
{
Thread.Sleep(1000);
LogHelper.Write(ex.Message);
}
if (response != null)
{
string result = ReadResponse(response);
if (result.Contains("order expire or not exist"))
{
IsOverdue = true;
return "";
}
if (result.Contains("mall_id") || result.Contains("mallId") || result.Contains("mallID"))
{
return HtmlHelper.UnicodeDecode(result);
}
else
{
if (count < 10)
{
Thread.Sleep(new Random().Next(50, 200));
goto Again;
}
}
}
else
{
if (count < 10)
{
Thread.Sleep(new Random().Next(50, 200));
goto Again;
}
}
return "";
}
catch (Exception ex)
{
return "";
}
}
public static string MakeRequestForGetPddProdDetailByWeixin(string sIpAndPort, long lProdId)
{
while (true)
{
bool IsOverdue = false;
List<string> listIp = InitIp(sIpAndPort, out IsOverdue);
//if(listIp!=null&&listIp.Count>0)
for (int i = 0; i < listIp.Count; i++)
{
HttpWebResponse response = null;
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://wxapp.yangkeduo.com/compose/vtx/goods/detail/first/v3?pdduid=4014246301&xcx=20161201&xcx_version=v5.7.6.1&xcx_hash=" + GetTimeStampMilliSec() + GetRandomString(16));
request.KeepAlive = true;
request.Headers.Set(HttpRequestHeader.CacheControl, "no-cache");
request.Headers.Add("GZToken", Guid.NewGuid().ToString().Replace("-", "").Substring(0, 32));
//request.Headers.Add("GZToken", @"8dc2715af33d80577efe1cccd945fd38");
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 MicroMessenger/7.0.9.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat";
request.ContentType = "application/json;charset=UTF-8";
request.Referer = "https://servicewechat.com/wx32540bd863b27570/1116/page-frame.html";
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br");
System.Net.WebProxy proxy = GetWebProxy(listIp[i]);
request.Proxy = proxy;
request.Method = "POST";
request.ServicePoint.Expect100Continue = false;
string body = @"{""goods_id"":""" + lProdId + @""",""from"":""24"",""has_rec"":true,""address_list"":[{""address_id"":""19159230174"",""province_id"":""3"",""city_id"":""3401"",""district_id"":""4124"",""is_default"":""1"",""is_top"":0}],""page_version"":7,""show_type"":1,""xcx_trace_id"":""" + GetRandrom(16) + @""",""client_time"":" + GetTimeStampMilliSec() + @",""anti_content"":""3aje" + GetRandomString(122) + @""",""xcx_version"":""v5.7.6.1""}";
//string body = @"{""goods_id"":""" + lProdId + @""",""from"":""24"",""has_rec"":true,""address_list"":[{""address_id"":""19159230174"",""province_id"":""3"",""city_id"":""3401"",""district_id"":""4124"",""is_default"":""1"",""is_top"":0}],""page_version"":7,""show_type"":1,""xcx_trace_id"":""4277241276553842"",""client_time"":" + GetTimeStampMilliSec() + @",""anti_content"":""3ajeJxjZGRgYAhjYGJMBOIkIE4G4hQgTmVQZEyTMzEwMDAzsDCxMLYwNDY2MdU1NLU0MDW1NDUyNjM2ZeBiTGdnYCwK2WOnxMDKmMEENIyZMZMByM5iYmAEADpcDLo"",""xcx_version"":""v5.7.6.1""}";
byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(body);
request.ContentLength = postBytes.Length;
Stream stream = request.GetRequestStream();
stream.Write(postBytes, 0, postBytes.Length);
stream.Close();
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException e)
{
//return "";
}
catch (Exception)
{
//return "";
}
if (response == null) continue;
string result = ReadResponse(response);
if (result.Contains("\"success\":true"))
{
//GlobalProxyHelper.CloseIp(listIp);//找到了 把当前获取到的ip关闭
return result;
}
else
{
}
Thread.Sleep(500);
}
GlobalProxyHelper.CloseIp(listIp);//没找到也关闭
Thread.Sleep(3000);
}
}
/// <summary>
/// 整店采集
/// </summary>
/// <param name="sIpAndPort"></param>
/// <param name="lProdId"></param>
/// <param name="UserAgent"></param>
/// <returns></returns>
public static string RequestAllShopList(string sIpAndPort, string url, Func<string, string> antiContentFunc, string UserAgent)
{
while (true)
{
bool IsOverdue = false;
List<string> listIp = InitIp(sIpAndPort, out IsOverdue);
string NewUrl = "";
for (int i = 0; i < listIp.Count; i++)
{
HttpWebResponse response = null;
try
{
NewUrl = url + "&anticontent=" + antiContentFunc(UserAgent);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(NewUrl);
request.KeepAlive = true;
request.Accept = "application/json, text/plain, */*";
request.UserAgent = UserAgent;
//request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36 QBCore/4.0.1301.400 QQBrowser/9.0.2524.400 Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2875.116 Safari/537.36 NetType/WIFI MicroMessenger/7.0.5 WindowsWechat";
request.Referer = "https://mobile.yangkeduo.com/";
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.5;q=0.4");
System.Net.WebProxy proxy = GetWebProxy(listIp[i]);
request.Proxy = proxy;
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException e)
{
}
catch (Exception ex)
{
}
if (response == null)
{
continue;
}
string result = ReadResponse(response);
if (result.Contains("goods_list"))
{
//GlobalProxyHelper.CloseIp(listIp);//找到了 把当前获取到的ip关闭
return HtmlHelper.UnicodeDecode(result);
}
Thread.Sleep(new Random().Next(500, 1500));
}
GlobalProxyHelper.CloseIp(listIp);//没找到也关闭
Thread.Sleep(3000);
}
}
private static long GetRandrom(int len)
{
Random rand = new Random();
string strNum = "";
int i = 0;
while (i < len)
{
i++;
int randomNum = rand.Next(0, 10);
strNum += randomNum.ToString();
}
return strNum.ParseToLong();
}
public static string Request_weixinKweWords(string sIpAndPort, string keyword, int page)
{
while (true)
{
bool IsOverdue = false;
List<string> listIp = InitIp(sIpAndPort, out IsOverdue);
//if(listIp!=null&&listIp.Count>0)
for (int i = 0; i < listIp.Count; i++)
{
HttpWebResponse response = null;
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://wxapp.yangkeduo.com/compose/vtx/search?pdduid=4014246301&xcx=20161201&xcx_version=v5.7.9&xcx_hash=1590732694274NkDSTBGS61cRPBiD");
request.KeepAlive = true;
request.Headers.Set(HttpRequestHeader.CacheControl, "no-cache");
request.Headers.Add("GZToken", @"7933a2eca48857c7640ce14ff17d4bbb");
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 MicroMessenger/7.0.9.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat";
request.ContentType = "application/json;charset=UTF-8";
request.Referer = "https://servicewechat.com/wx32540bd863b27570/1125/page-frame.html";
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br");
System.Net.WebProxy proxy = GetWebProxy(listIp[i]);
request.Proxy = proxy;
request.Method = "POST";
request.ServicePoint.Expect100Continue = false;
//string body = "{\"\"is_form_wallet\"\":false,\"\"query\"\":\"\"" + keyword + "\"\",\"\"new_search\"\":true,\"\"search\"\":{\"\"page\"\":" + page + ",\"\"size\"\":20,\"\"requery\"\":0,\"\"list_id\"\":\"\"xcx_search_ZN6Xie\"\",\"\"source\"\":\"\"index\"\",\"\"sort\"\":\"\"default\"\"},\"\"anti_content\"\":\"\"3ajeJxjZGRgYAhjYGJMBOIkIE4G4hQgTmVQZEyTMzYzMzU0trAwNzU1NbI0NdU1NLU0MDc2MrM0NTA0Z-BiTGdnYCyK51vMwMDKmMEENIyZMRPEzgKyATcqDHE\"\",\"\"xcx_version\"\":\"\"v5.7.9\"\"}";
string body = @"{""is_form_wallet"":false,""query"":""连衣裙"",""new_search"":true,""search"":{""page"":1,""size"":20,""requery"":0,""list_id"":""xcx_search_ZN6Xie"",""source"":""index"",""sort"":""default""},""anti_content"":""3ajeJxjZGRgYAhjYGJMBOIkIE4G4hQgTmVQZEyTMzYzMzU0trAwNzU1NbI0NdU1NLU0MDc2MrM0NTA0Z-BiTGdnYCyK51vMwMDKmMEENIyZMRPEzgKyATcqDHE"",""xcx_version"":""v5.7.9""}";
byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(body);
request.ContentLength = postBytes.Length;
Stream stream = request.GetRequestStream();
stream.Write(postBytes, 0, postBytes.Length);
stream.Close();
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException e)
{
}
catch (Exception)
{
}
string result = ReadResponse(response);
//if (result.Contains("mallID"))
{
GlobalProxyHelper.CloseIp(listIp);//找到了 把当前获取到的ip关闭
return result;
}
Thread.Sleep(500);
}
GlobalProxyHelper.CloseIp(listIp);//没找到也关闭
Thread.Sleep(3000);
}
}
private static char[] constant =
{
'0','1','2','3','4','5','6','7','8','9',
'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'
};
private static string GetRandomString(int iLength)
{
System.Text.StringBuilder newRandom = new System.Text.StringBuilder(62);
Random rd = new Random();
for (int i = 0; i < iLength; i++)
{
newRandom.Append(constant[rd.Next(62)]);
}
return newRandom.ToString();
}
public static string GetTimeStampMilliSec()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
public static List<string> InitIp(string ProxyUrl, out bool IsOverdue)
{
IsOverdue = false;
@@ -617,172 +48,6 @@ namespace Work.BLL.Collect
}
return proxyIpList;
}
public static string RequestTest(string sIpAndPort, string url)
{
while (true)
{
bool IsOverdue = false;
List<string> listIp = InitIp(sIpAndPort, out IsOverdue);
//if(listIp!=null&&listIp.Count>0)
for (int i = 0; i < listIp.Count; i++)
{
HttpWebResponse response = null;
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.KeepAlive = true;
request.Headers.Set(HttpRequestHeader.CacheControl, "max-age=0");
request.Headers.Add("Upgrade-Insecure-Requests", @"1");
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/82.0.2444.133 Safari/537.36";
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3";
request.Referer = url;
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
System.Net.WebProxy proxy = GetWebProxy(listIp[i]);
request.Proxy = proxy;
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException e)
{
}
catch (Exception)
{
}
string result = ReadResponse(response);
if (!result.Contains("<title>店铺主页</title>"))
{
GlobalProxyHelper.CloseIp(listIp);//找到了 把当前获取到的ip关闭
return result;
}
Thread.Sleep(500);
}
GlobalProxyHelper.CloseIp(listIp);//没找到也关闭
Thread.Sleep(3000);
}
//HttpWebResponse response = null;
//try
//{
// HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
// request.KeepAlive = true;
// request.Headers.Set(HttpRequestHeader.CacheControl, "max-age=0");
// request.Headers.Add("Upgrade-Insecure-Requests", @"1");
// request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36";
// request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3";
// request.Referer = url;
// request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
// request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
// System.Net.WebProxy proxy = GetWebProxy("120.79.214.87 11318 test200420-1 gu05VREpn349KSiT");
// request.Proxy = proxy;
// response = (HttpWebResponse)request.GetResponse();
//}
//catch (WebException e)
//{
// //ProtocolError indicates a valid HTTP response, but with a non-200 status code (e.g. 304 Not Modified, 404 Not Found)
// if (e.Status == WebExceptionStatus.ProtocolError) response = (HttpWebResponse)e.Response;
// else return "";
//}
//catch (Exception)
//{
// if (response != null) response.Close();
// return "";
//}
//return ReadResponse(response);
}
public static string RequestTestA(string sIpAndPort, string url)
{
while (true)
{
bool IsOverdue = false;
List<string> listIp = InitIp(sIpAndPort, out IsOverdue);
//if(listIp!=null&&listIp.Count>0)
for (int i = 0; i < listIp.Count; i++)
{
HttpWebResponse response = null;
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.KeepAlive = true;
request.Accept = "application/json, text/plain, */*";
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36";
//request.Headers.Add("VerifyAuthToken", @"ymXDWelTcWGRcf9dQBsVgw");
request.Referer = url;
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
response = (HttpWebResponse)request.GetResponse();
System.Net.WebProxy proxy = GetWebProxy(listIp[i]);
request.Proxy = proxy;
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException e)
{
}
catch (Exception)
{
}
string result = ReadResponse(response);
if (!result.Contains("error_code"))
{
GlobalProxyHelper.CloseIp(listIp);//找到了 把当前获取到的ip关闭
return result;
}
Thread.Sleep(500);
}
GlobalProxyHelper.CloseIp(listIp);//没找到也关闭
Thread.Sleep(3000);
}
}
public static WebProxy GetWebProxy(string ip = "")
{
WebProxy webProxy = null;
try
{
if (!string.IsNullOrEmpty(ip))
{
string[] ipArr = ip.Split(new string[] { " ", ":" }, StringSplitOptions.RemoveEmptyEntries);
switch (ipArr.Length)
{
case 2:
webProxy = new WebProxy(ipArr[0], ipArr[1].ParseToInt());
break;
case 4:
webProxy = new WebProxy(ipArr[0], ipArr[1].ParseToInt());
webProxy.Credentials = new NetworkCredential(ipArr[2], ipArr[3]);
break;
}
return webProxy;
}
}
catch (Exception ex)
{
LogHelper.WriteWithTime(ex);
}
return webProxy;
}
#endregion
}
}
-74
View File
@@ -1,74 +0,0 @@
using AllBase.Model.Result;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Work.DouyinApiClass;
namespace Work.BLL.Product
{
public class ShopProductBLL
{
/// <summary>
/// 获取店铺商品列表
/// </summary>
/// <param name="shop">店铺</param>
/// <param name="productStatus">商品是否在售 0在售 1仓库</param>
/// <param name="page">页数 从1开始</param>
/// <param name="pageSize">每页商品数量</param>
/// <param name="update_end_time">最后更新时间</param>
/// <returns></returns>
public string GetShopProductListData(ShopLoginInfo shop, int productStatus = 0, int page = 1, int pageSize = 50, long update_end_time = 0)
{
// 读取在售商品数量
Dictionary<string, string> dictionary = new Dictionary<string, string>();
dictionary.Add("page", page.ToString());
dictionary.Add("size", pageSize.ToString());
if (update_end_time > 0)
dictionary.Add("update_end_time", update_end_time.ToString());
// check_status 指定审核状态返回商品列表:1未提审 2审核中 3审核通过 4审核驳回 5封禁 7审核通过,待上架状态
if (productStatus == 0)
dictionary["check_status"] = "3";
//else
// dictionary["check_status"] = "1";
dictionary["status"] = productStatus.ToString();
DouyinApi douApi = new DouyinApi(shop);
douApi.JsonData = dictionary;
var resultOnline = douApi.GetProductList();
return resultOnline;
}
public string OnSaleProduct(ShopLoginInfo shop, string productIds)
{
Dictionary<string, string> dictionary = new Dictionary<string, string>();
dictionary.Add("product_id", productIds);
dictionary.Add("start_sale_type", "0");
dictionary.Add("commit", "true");
DouyinApi douApi = new DouyinApi(shop);
douApi.JsonData = dictionary;
var resultOnline = douApi.GetProductEdit();
return resultOnline;
}
public string OffSaleProduct(ShopLoginInfo shop, string productIds)
{
Dictionary<string, string> dictionary = new Dictionary<string, string>();
dictionary.Add("product_id", productIds);
DouyinApi douApi = new DouyinApi(shop);
douApi.JsonData = dictionary;
var resultOnline = douApi.SetProductOffline();
return resultOnline;
}
public string DeleteProduct(ShopLoginInfo shop, string productIds)
{
Dictionary<string, string> dictionary = new Dictionary<string, string>();
dictionary.Add("product_id", productIds);
DouyinApi douApi = new DouyinApi(shop);
douApi.JsonData = dictionary;
var resultOnline = douApi.DeleteProduct();
return resultOnline;
}
}
}
-53
View File
@@ -1,53 +0,0 @@
using AllBase;
using NaiBa.Util.Extension;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Work.BLL.Product
{
public class ViolateBLL
{
public static string GetViolate(string upId, long upIdNumber)
{
string address = BaseClass.BuildObjString("violate&act=get");
string param = UserLogin.GetSignaturex()
+ "&pid=" + upId
+ "&suffix=" + upIdNumber % 1024;
string html = GetHtml.PostUtf8(address, param);
if (html == null)
html = "";
var data = BaseRegex.GetStringJson(ref html, "data");
if (data == null)
{
if (html.Contains("\"msg\":\"success\""))
data = "none";
else
data = "";
}
return data;
}
public static string GetViolateList(List<string> upIds)
{
if (upIds == null)
upIds = new List<string>();
string address = BaseClass.BuildObjString("violate&act=get_list");
string param = UserLogin.GetSignaturex() + "&pids=";
foreach (var id in upIds)
{
var idStr = id;
idStr = BaseRegex.GetMatchRegexString(ref idStr, "(\\d{5,30})");
if (idStr == null)
continue;
param += id + "," + (idStr.ParseToLong() % 1024) + ";";
}
string html = GetHtml.PostUtf8(address, param.TrimEnd(';'));
return html;
}
}
}
-150
View File
@@ -1,150 +0,0 @@
using AllBase;
using AllBase.Model.Param.FissionManage;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace Work.BLL.Upload
{
public class FissionDataBaseBLL
{
/// <summary>
/// 获取分组
/// </summary>
public List<string> GetCategoryGroup()
{
List<string> cateList = new List<string>();
string getRequestData = UserLogin.GetSignaturex() + "&act=get";
string getUrl = BaseClass.BuildFissionObjString("category_api");
string categoryResult = GetHtml.PostUtf8(getUrl, getRequestData);
try
{
JObject jCategoryObj = (JObject)JsonConvert.DeserializeObject(categoryResult);
if (jCategoryObj == null)
{
return cateList;
}
string categoryList = jCategoryObj["list"].ToString();
JArray jCategoryList = (JArray)JsonConvert.DeserializeObject(categoryList);
cateList.Clear();
cateList.Add("不限");
foreach (var category in jCategoryList)
{
string cateStr = category["cate_name"].ToString();
var isHas = cateList.Find(x => x != null && x.Equals(cateStr));
if (isHas != null)
{
continue;
}
cateList.Add(cateStr);
}
}
catch
{
}
return cateList;
}
/// <summary>
/// 获取主分类
/// </summary>
public List<string> GetMainCate()
{
List<string> mainCateList = new List<string>();
string getRequestData = UserLogin.GetSignaturex() + "&act=get_cate";
string getUrl = BaseClass.BuildFissionObjString("fession_api");
string categoryResult = GetHtml.PostUtf8(getUrl, getRequestData);
try
{
var MainCateObj = JsonConvert.DeserializeObject<MainCate>(categoryResult);
mainCateList.Clear();
mainCateList.Add("不限");
if (MainCateObj != null && MainCateObj.list.Count > 0)
{
for (int i = 0; i < MainCateObj.list.Count; i++)
{
var isHas = mainCateList.Find(x => x != null && x.Contains(MainCateObj.list[i].main_cate));
if (isHas != null)
{
continue;
}
mainCateList.Add(MainCateObj.list[i].main_cate);
}
}
}
catch (Exception ex)
{
}
return mainCateList;
}
/// <summary>
/// 删除产品数据库裂变商品
/// </summary>
/// <param name="FessIds"></param>
public string DelFessionData(string FessIds, bool isMultiDelete = false)
{
string getRequestData = UserLogin.GetSignaturex() + "&act=delete&id=" + FessIds;
string getUrl = BaseClass.BuildFissionObjString("fession_api");
string Result = GetHtml.PostUtf8(getUrl, getRequestData);
return Result;
}
/// <summary>
/// 恢复被删除的产品数据库裂变商品
/// </summary>
/// <param name="strTemp"></param>
public void RestoreFessionData(string strTemp)
{
string getRequestData = UserLogin.GetSignaturex() + "&act=update&ids=" + strTemp;
string getUrl = BaseClass.BuildFissionObjString("fession_recover");
string Result = GetHtml.PostUtf8(getUrl, getRequestData);
}
public FissionData GetFessionDetailById(int FessId)
{
string url = BaseClass.BuildFissionObjString("fession_api");
string requestData = UserLogin.GetSignaturex() + "&act=get_detail";
string paraStr = "&id=" + FessId;
requestData = requestData + paraStr;
string htmlData = GetHtml.PostUtf8(url, requestData);
var FessionObj = JsonConvert.DeserializeObject<FissionData>(htmlData);
if (FessionObj == null || string.IsNullOrEmpty(FessionObj.main_pic))
{
Thread.Sleep(1000);
FessionObj = JsonConvert.DeserializeObject<FissionData>(htmlData);
}
return FessionObj;
}
}
public class MainCateList
{
/// <summary>
///
/// </summary>
public string main_cate { get; set; }
}
public class MainCate
{
/// <summary>
/// List
/// </summary>
public List<MainCateList> list { get; set; }
/// <summary>
///
/// </summary>
public string page { get; set; }
/// <summary>
///
/// </summary>
public string next_url { get; set; }
}
}
-92
View File
@@ -1,92 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Work.BLL.Upload
{
public class UploadMaterialBLL
{
public bool DelOldestApiMaterialFolder(AllBase.Model.Result.ShopLoginInfo shop)
{
///^(\d{4})-(\d{2})-(\d{2})/
var folder = GetApiMaterialFolder(shop);
if (folder != null && folder.Contains("\"code\":10000"))
{
var JObj = AllBase.JsonHelper.JObjectParse(folder);
if (JObj?["data"]?["folder_info_list"] != null)
{
foreach (Newtonsoft.Json.Linq.JObject j in JObj?["data"]?["folder_info_list"])
{
var s = j?["name"]?.ToString();
if (s != null && AllBase.BaseRegex.GetMatchRegex(ref s, "^(\\d{4})-(\\d{2})-(\\d{2})").Count > 0)
{
var folderId = j["folder_id"]?.ToString();
DouyinApiClass.DouyinApi api = new DouyinApiClass.DouyinApi(shop);
api.JsonData = new Dictionary<string, string>();
//api.JsonData.Add("name", DateTime.Now.ToString("yyyy-MM-dd"));
api.JsonData.Add("folder_ids", "[" + folderId + "]");
string html = api.MaterialDeleteFolder();
if (html != null && html.Contains("\"code\":10000") && html.Contains("\"success_ids\":[\"" + folderId + "\"]"))
return true;
}
}
}
}
return false;
}
/// <summary>
///
/// </summary>
/// <param name="shop"></param>
/// <param name="parent_folder_id"></param>
/// <param name="page_size">每页返回的数量。最大为100,默认为50</param>
/// <param name="page_num">分页的页数,从1开始</param>
/// <param name="order_by">排序方式 0-创建时间倒序 1-创建时间正序 2-修改时间倒序 3-修改时间正序 4-文件夹名倒序 5-文件夹名正序</param>
/// <returns></returns>
public string GetApiMaterialFolder(AllBase.Model.Result.ShopLoginInfo shop, string parent_folder_id = "0", int page_size = 10, int page_num = 1, int order_by = 1,
string create_time_start = "", string create_time_end = "")
{
//var api = new DouyinApiClass.DouyinApi(shop);
//var folderResult = api.MaterialSearchFolder(1, 10);
//return folderResult;
DouyinApiClass.DouyinApi api = new DouyinApiClass.DouyinApi(shop);
api.JsonData = new Dictionary<string, string>();
//api.JsonData.Add("name", DateTime.Now.ToString("yyyy-MM-dd"));
api.JsonData.Add("parent_folder_id", parent_folder_id);
api.JsonData.Add("order_by", order_by.ToString());
api.JsonData.Add("page_num", page_num.ToString());
api.JsonData.Add("page_size", page_size.ToString());
if (!string.IsNullOrEmpty(create_time_start))
api.JsonData.Add("create_time_start", create_time_start.ToString());
if (!string.IsNullOrEmpty(create_time_end))
api.JsonData.Add("create_time_end", create_time_end.ToString());
string html = api.GetSearchFolder();
if (html == null)
return "";
return html;
}
public string GetApiMaterial(AllBase.Model.Result.ShopLoginInfo shop, string parent_folder_id = "0", int page_size = 10, int page_num = 1, int order_by = 1,
string create_time_start = "", string create_time_end = "")
{
DouyinApiClass.DouyinApi api = new DouyinApiClass.DouyinApi(shop);
api.JsonData = new Dictionary<string, string>();
//api.JsonData.Add("name", DateTime.Now.ToString("yyyy-MM-dd"));
api.JsonData.Add("folder_id", parent_folder_id);
api.JsonData.Add("order_by", order_by.ToString());
api.JsonData.Add("page_num", page_num.ToString());
api.JsonData.Add("page_size", page_size.ToString());
if (!string.IsNullOrEmpty(create_time_start))
api.JsonData.Add("create_time_start", create_time_start.ToString());
if (!string.IsNullOrEmpty(create_time_end))
api.JsonData.Add("create_time_end", create_time_end.ToString());
string html = api.GetSearchMaterial();
return html == null ? "" : html;
}
}
}
File diff suppressed because it is too large. Load diff
-849
View File
@@ -1,849 +0,0 @@
using AllBase;
using AllBase.Model.Result;
using NaiBa.Util.Extension;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Work.DouyinApiClass;
namespace Work.BLL.Upload
{
public class UploadPropertyBLL
{
/// <summary>
/// 是否模糊匹配属性选项
/// </summary>
public static bool IsFuzzyMatching = false;
public static string getCatePropertyInterface(string c3, ShopLoginInfo shop, ProductCollectBase pc)
{
//string url = "https://fxg.jinritemai.com/product/tproduct/formatTpl?category_leaf_id=" + c3;
//string htmlx = GetPostTaobaoHtml.UploadTaobao(url, "", true, shop.Cookies);
DouyinApi api = new DouyinApi(shop);
api.JsonData = new Dictionary<string, string>();
api.JsonData.Add("category_leaf_id", c3);
string result = api.GetCateProperty();
return result;
}
public CatePropertyResponseInfo getCatePropertyInterfaceV2(string c3, ShopLoginInfo shop)
{
DouyinApi api = new DouyinApi(shop);
api.JsonData = new Dictionary<string, string>();
api.JsonData.Add("category_leaf_id", c3);
string html = api.GetCatePropertyV2();
if (html.Contains("access_token已过期"))
{
shop.ApiAuthStatus = "未授权";
}
if (!html.Contains("\"required\""))
{
//return "";
}
CatePropertyResponseInfo cateProperyInfo;
try
{
cateProperyInfo = JsonConvert.DeserializeObject<CatePropertyResponseInfo>(html);
return cateProperyInfo;
}
catch
{
cateProperyInfo = new CatePropertyResponseInfo();
}
return cateProperyInfo;
}
/// <summary>
/// 根据服务端返回的类目属性要求分析获取属性字段
/// </summary>
/// <param name="cateProperyInfo"></param>
/// <param name="shop"></param>
/// <param name="pcb"></param>
/// <returns></returns>
public string GetCatePropertyAnalysis(CatePropertyResponseInfo cateProperyInfo, ShopLoginInfo shop, ProductCollectBase pcb)
{
if (cateProperyInfo?.data?.data == null)
{
return "{}";
}
//if (property == null || !property.Contains("货号"))
// property = "货号|" + from_name + p.from_id.ToString() + "^" + property;
// 拆分拼多多属性中含 "/" 的集合属性,如 "key":"衣长/袖长","value":"常规款/短袖"
var props = pcb.Prop.Where(p => p.Key.Contains("/")).ToList();
foreach (var pr in props)
{
var prKeys = pr.Key.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
var prValues = pr.Value.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
if (prKeys.Length == prValues.Length)
{
for (int j = 0; j < prKeys.Length; j++)
{
pcb.Prop.Add(new KeyValueBase() { Key = prKeys[j], Value = prValues[j] });
}
pcb.Prop.Remove(pr);
}
}
Dictionary<string, List<product_format_new_item>> dicProp = new Dictionary<string, List<product_format_new_item>>();
string html = "";
for (int i = 0; i < cateProperyInfo.data.data.Count; i++)
{
string pName = "";
string pId = "0";
var douyinProp = cateProperyInfo.data.data[i];
var upProp = pcb.Prop.Find(pr => pr.Key == douyinProp.property_name);
if (upProp == null)
{
var upProps = pcb.Prop.Where(pr => UpProperty2DouyinPropertyNameConverter(pr.Key, douyinProp.property_name) == douyinProp.property_name).ToList();
upProp = upProps?.Find(pr => UpProperty2DouyinPropertyValueConverter(pr.Value, douyinProp.options).Count > 0);
if (upProp == null)
upProp = upProps?.FirstOrDefault();
}
var options = "";
if (douyinProp.options?.FirstOrDefault() != null)
options = string.Join(",", douyinProp.options?.Select(o => o.name));
var x = html;
#region 优先单独处理特殊属性
if (douyinProp.property_name == "品牌")
{
if (pcb.Prop.Any(pr => pr.Key == "品牌") && pcb.Prop.Any(pr => pr.Key == "品牌编号"))
pName = pcb.Prop.FirstOrDefault(pr => pr.Key == "品牌").Value;
else if (douyinProp.required)
pName = "无品牌";
if (!string.IsNullOrEmpty(pName))
{
html += "^品牌|" + pName;
}
goto GetNextProperty;
}
if (douyinProp.property_name == "型号")
{
if (!douyinProp.required && (upProp == null || upProp.Value?.Length < 4))
continue;
upProp = pcb.Prop.FirstOrDefault(pr => pr.Key == "型号" && pr.Value != "缺省");
if (upProp != null)
{
pName = upProp.Value;
}
else
{
pName = Randomx.GetWord(2) + "-" + Randomx.GetNumber(Randomx.GetId(3, 6));
}
if (!string.IsNullOrEmpty(pName))
{
var op = douyinProp.options.Find(o => o.name == pName);
if (op != null)
{
pId = op.value;
}
else if (douyinProp.diy_type == 1)
{
pName = "$diy$" + pName;
}
html += "^型号|" + pName;
}
goto GetNextProperty;
}
if (douyinProp.property_name == "适用型号" && douyinProp.required)
{
upProp = pcb.Prop.FirstOrDefault(pr => pr.Key.Contains("适用型号") && pr.Value != "缺省");
if (upProp != null)
pName = upProp.Value;
else
pName = Randomx.GetWord(Randomx.GetId(2, 5)) + "-" + Randomx.GetNumber(Randomx.GetId(3, 8));
if (!string.IsNullOrEmpty(pName))
{
html += "^适用型号|" + pName;
}
goto GetNextProperty;
}
if (douyinProp.property_name == "产地" && (upProp == null || douyinProp.options?.FirstOrDefault(o => o.name == upProp.Value) == null))
{
if (!douyinProp.required)
continue;
if (douyinProp.options.Count > 0)
{
var op = douyinProp.options.Find(o => o.name == "中国大陆");
if (op == null)
{
upProp = pcb.Prop.FirstOrDefault(p => p.Key.Contains("产地") && p.Key != "产地");
if (upProp != null)
op = douyinProp.options?.FirstOrDefault(o => o.name == upProp.Value);
}
if (op != null)
{
pId = op.value;
pName = op.name;
html += "^产地|" + pName;
goto GetNextProperty;
}
}
}
if (douyinProp.property_name == "单果重量")
{
// 水果生鲜直接上传特例
if (douyinProp.required && (pcb.main_cat_name.Contains("水果") || pcb.main_cat_name.Contains("生鲜")))
{
pName = Randomx.GetId(1, 6) + "00";
html += "^单果重量|" + pName;
goto GetNextProperty;
}
}
if (douyinProp.property_name == "单果重量(g)")
{
// 水果生鲜直接上传特例
if (douyinProp.required && (pcb.main_cat_name.Contains("水果") || pcb.main_cat_name.Contains("生鲜")))
{
if (html.Contains("单果重量|"))
pName = BaseRegex.GetMatchRegex(ref html, "单果重量|(\\d{1,10})")[1].Groups[0].ToString();
else
pName = Randomx.GetId(1, 6) + "00";
html += "^单果重量(g)|" + pName;
goto GetNextProperty;
}
}
if (douyinProp.property_name == "包装方式")
{
// 水果生鲜直接上传特例
if (douyinProp.required && (pcb.main_cat_name.Contains("水果") || pcb.main_cat_name.Contains("生鲜")) && douyinProp.options.Any(o => o.name == "食用农产品"))
{
var op = douyinProp.options.Find(o => o.name == "食用农产品");
pId = op.value;
pName = "食用农产品";
html += "^包装方式|" + pName;
goto GetNextProperty;
}
}
if (douyinProp.property_name == "品质认证")
{
// 水果生鲜、茶叶、食品保健直接上传特例(选无认证不用填认证证书)
if (douyinProp.required && (pcb.main_cat_name.Contains("水果") || pcb.main_cat_name.Contains("生鲜")
|| pcb.main_cat_name.Contains("茶") || pcb.main_cat_name.Contains("食品保健"))
&& douyinProp.options.Any(o => o.name == "无认证" || o.name == "无认证认证"))
{
var op = douyinProp.options.Find(o => o.name == "无认证" || o.name == "无认证认证");
pId = op.value;
pName = op.name;
html += "^品质认证|" + pName;
goto GetNextProperty;
}
}
if (douyinProp.property_name == "贮存条件")
{
if (upProp == null)
upProp = pcb.Prop.Find(pr => pr.Key == "储藏方法");
PropertiesValuesBase op = null;
if (upProp != null)
op = douyinProp.options.FirstOrDefault(o => upProp.Value.Contains(o.name));
else
op = douyinProp.options.FirstOrDefault(o => o.name == "常温");
if (op == null)
op = douyinProp.options.FirstOrDefault();
if (op != null)
{
pId = op.value;
pName = op.name;
}
if (pName != null)
html += "^贮存条件|" + pName;
goto GetNextProperty;
}
if (douyinProp.property_name == "食品生产许可证编号")
{
var qualify = pcb.qualifications?.FirstOrDefault(q => douyinProp.property_name.Contains(q.quality_name));
if (qualify != null)
{
pName = qualify.quality_number;
html += "^食品生产许可证编号|" + pName;
}
else if (!string.IsNullOrEmpty(upProp?.Value))
{
pName = upProp.Value;
html += "^食品生产许可证编号|" + pName;
}
goto GetNextProperty;
}
if (douyinProp.property_name.Contains("是否为有机食品"))
{
var op = douyinProp.options.FirstOrDefault(o => o.name == "否");
if (op == null)
op = douyinProp.options.LastOrDefault();
pId = op.value;
pName = op.name.Trim();
html += "^" + douyinProp.property_name + "|" + pName;
goto GetNextProperty;
}
if (douyinProp.property_name == "是否有导购视频")
{
var op = douyinProp.options.FirstOrDefault(o => o.name == "否");
if (op == null)
continue;
pId = op.value;
pName = op.name.Trim();
html += "^" + douyinProp.property_name + "|" + pName;
goto GetNextProperty;
}
if (douyinProp.property_name == "单件净含量")
{
if (upProp == null && douyinProp.type == "text")
{
upProp = pcb.Prop.FirstOrDefault(p => p.Key == "净含量");
}
}
if (douyinProp.property_name == "茶种类")
{
if (upProp == null)
{
var op = douyinProp.options.FirstOrDefault(o => pcb.name.Contains(o.name));
if (op == null)
continue;
pId = op.value;
pName = op.name.Trim();
html += "^" + douyinProp.property_name + "|" + pName;
goto GetNextProperty;
}
}
if (douyinProp.property_name == "生产企业名称")
{
}
if (douyinProp.property_name == "糕点种类" && !douyinProp.required)
{
}
if (douyinProp.property_name == "特产品类" && !douyinProp.required)
{
}
if (douyinProp.property_name == "款式")
{
}
if (douyinProp.property_name == "包装方式")
{
if (douyinProp.required == true)
{
if (upProp == null && pcb.main_cat_name == "家纺家具家装")
{
if (douyinProp.options.Count > 0)
{
var op = douyinProp.options.LastOrDefault();
pId = op.value;
pName = op.name.Replace("/", "%2F");
html += "^包装方式|" + op.value; // 此处只能用value不能用name
}
goto GetNextProperty;
}
}
}
#endregion
#region 通用属性操作
if (upProp != null && upProp.Key == "消毒品卫生许可证编号" && !upProp.Value.Contains("消证字"))
{
string[] arr = { "粤卫消证字[2012]第1140号", "粤卫消证字[2020]-50-第0144号", "鄂卫消证字(2010)第(0020)号", "(苏)卫消证字(2014)第3210-0036号", "(津)卫消证字(2012)第0408号" };
upProp.Value = arr[Randomx.GetId(arr.Length)];
}
// 该属性不是必填时,上家总店商品详情没有此属性就跳过
if (upProp == null && !douyinProp.required)
{
continue;
}
#region 处理面料、材质、含量属性
if (douyinProp.property_name.Contains("面料") ||
douyinProp.property_name.Contains("材质") ||
douyinProp.property_name.Contains("含量"))
{
// 如果上家没有对应属性,在避免违规的情况下,按照以下规则处理属性填写逻辑
if (upProp == null)
{
// 含量如果有多少多少以下,选多少多少以下
if (string.IsNullOrEmpty(pName) && douyinProp.property_name.Contains("含量") && douyinProp.options?.FirstOrDefault(o => o.name.Contains("以下")) != null)
{
var op = douyinProp.options?.FirstOrDefault(o => o.name.Contains("以下"));
pId = op.value;
pName = op.name;
}
if (!string.IsNullOrEmpty(pName))
{
html += "^" + douyinProp.property_name + "|" + pName;
goto GetNextProperty;
}
}
else
{
// 特殊处理成分含量
if (douyinProp.property_name.Contains("含量") && douyinProp.options?.FirstOrDefault() != null)
{
string upPropValue = BaseRegex.GetMatchRegexString(upProp.Value, @"([1-9]\d*\.?\d*)|(0\.\d*[1-9])%");
if (string.IsNullOrEmpty(upPropValue))
upPropValue = "0";
// 抖音成分含量里居然有不是数值单位的选项,如:棉、聚酯纤维等,将这些选项过滤出去
var opts = douyinProp.options.Where(o => BaseRegex.GetMatchRegexString(o.name, @"([\w\W]+?)%")?.ParseToDecimal() >= 0).ToList();
opts = opts.OrderBy(o => BaseRegex.GetMatchRegexString(o.name, @"([\w\W]+?)%")?.ParseToDecimal()).ToList();
foreach (var op in opts)
{
string propValue = BaseRegex.GetMatchRegexString(op.name, @"([\w\W]+?)%");
if (propValue?.ParseToDecimal() >= upPropValue.ParseToDecimal())
{
pId = op.value;
pName = op.name.Trim();
break;
}
else if (opts.Last(o => o.name != "100%") == op && op.name.Contains("以上") && upPropValue.ParseToDecimal() > propValue?.ParseToDecimal())
{
pId = op.value;
pName = op.name.Trim();
break;
}
}
if (pName == "")
{
var op = douyinProp.options.FirstOrDefault(o => o.name.Contains("以下"));
if (op == null)
op = douyinProp.options.FirstOrDefault(o => o.name.Contains("其他"));
if (op != null)
{
pId = op.value;
pName = op.name.Trim();
}
}
if (!string.IsNullOrEmpty(pName))
{
html += "^" + douyinProp.property_name + "|" + pName;
goto GetNextProperty;
}
}
}
// 如果上家对应面料、材质、含量属性不存在且没有使用模糊匹配,则直接跳过该属性,不论是否必填
if ((upProp == null
|| UpProperty2DouyinPropertyValueConverter(upProp.Value, douyinProp.options).Count == 0)
&& !IsFuzzyMatching)
{
// 属性为字符型且上家不为空的直接填写上家值
if (string.IsNullOrEmpty(pName) && douyinProp.type == "text")
{
if (upProp != null)
pName = upProp.Value;
else if (douyinProp.property_name.Contains("材质"))
pName = "普通材质";
else if (douyinProp.property_name.Contains("净含量"))
pName = "<100";
else if (douyinProp.property_name.Contains("有效成分含量"))
pName = "<29%";
else
pName = "其他/Other";
html += "^" + douyinProp.property_name + "|" + pName;
goto GetNextProperty;
}
// 支持自定义,填写其他
if (douyinProp.diy_type == 1)
{
if (upProp == null || upProp.Value == "其他")
pName = "$diy$其他/Other";
else
pName = "$diy$" + upProp.Value;
html += "^" + douyinProp.property_name + "|" + pName;
goto GetNextProperty;
}
continue;
}
}
#region 模糊查找上家商品面料、材质、含量属性
if (douyinProp.property_name.Contains("面料") || douyinProp.property_name.Contains("材质"))
{
if (upProp == null)
upProp = pcb.Prop.Find(pr => pr.Key.Contains("面料") || pr.Key.Contains("材质"));
if (upProp == null)
{
var op = douyinProp.options?.Find(o => pcb.name.Contains(o.name));
if (op != null)
{
pId = op.value;
pName = op.name;
html += "^" + douyinProp.property_name + "|" + pName;
goto GetNextProperty;
}
}
}
#endregion
#endregion
if (upProp == null && douyinProp.required && douyinProp.options?.FirstOrDefault() == null)
{
if (douyinProp.property_name == "备案/批准文号")
{
pName = "";
}
if (douyinProp.property_name == "CCC证书编号")
{
pName = "";
}
if (douyinProp.property_name == "吊牌价")
{
pName = (pcb.market_price == 0 ? pcb.price * 2 : pcb.market_price).ToString();
}
if (douyinProp.property_name == "保质期")
{
pName = "30";
}
if (douyinProp.property_name == "生产企业名称")
{
//pName = "工厂店"; //pvalue = "清风";
pName = shop.ShopAccount;
}
if (douyinProp.property_name == "上市年份季节")
{
pName = DateTime.Now.AddMonths(-3).Year.ToString();
}
if (douyinProp.property_name == "毛重") // todo: 这种没有如何处理
{
pName = "暂无数据";
}
if (douyinProp.property_name == "包装体积")
{
pName = "暂无数据";
}
//if (string.IsNullOrEmpty(pName))
// pName = "" + Randomx.GetId(1000, 9999);
if (!string.IsNullOrEmpty(pName))
{
html += "^" + douyinProp.property_name + "|" + pName;
goto GetNextProperty;
}
}
// 上家属性不为空
if (upProp != null)
{
// 抖音类目属性为文本类型时
if (douyinProp.type == "text")
{
pName = upProp.Value;
html += "^" + douyinProp.property_name + "|" + pName;
goto GetNextProperty;
}
// 抖音类目属性非文本类型且选项为空时
else if (douyinProp.options?.FirstOrDefault() == null)
{
pName = upProp.Value.ToString().Trim();
html += "^" + douyinProp.property_name + "|" + pName;
goto GetNextProperty;
}
// 抖音类目属性列表数量大于0且与上家匹配时
else if (UpProperty2DouyinPropertyValueConverter(upProp.Value, douyinProp.options).Count > 0)
{
var ops = UpProperty2DouyinPropertyValueConverter(upProp.Value, douyinProp.options);
foreach (var op in ops)
{
pName += op.name + ",";
pId += op.value + ",";
}
pName = pName.Trim(',');
pId = pId.Trim(',');
html += "^" + douyinProp.property_name + "|" + pName;
goto GetNextProperty;
}
// 模糊匹配时去找类似的选项
else if (douyinProp.required && IsFuzzyMatching &&
douyinProp.options?.FirstOrDefault(o => upProp.Value.Contains(o.name) && o.name.Length > upProp.Value.Length / 2M) != null)
{
var optionsTemp = douyinProp.options?.Where(o => upProp.Value.Contains(o.name) && o.name.Length > upProp.Value.Length / 2M).ToList();
if (optionsTemp.Count > 1)
optionsTemp = optionsTemp.Take(1).ToList();
foreach (var op in optionsTemp)
{
pId = op.value;
pName += op.name + ",";
if (douyinProp.type != "multi_select")
break;
}
pName = pName.Trim(',');
html += "^" + douyinProp.property_name + "|" + pName;
goto GetNextProperty;
}
}
if (upProp == null && douyinProp.required)
{
if (douyinProp.options?.FirstOrDefault() != null)
{
var op = douyinProp.options.FirstOrDefault(o => o.name.Contains("其他") ||
o.name.Contains("不限") ||
o.name.Contains("默认") ||
o.name.Contains("通用") ||
o.name.Contains("中性") ||
o.name.Contains("缺省"));
if (op != null)
{
pName = op.name.ToString().Trim();
pId = op.value;
html += "^" + douyinProp.property_name + "|" + pName;
goto GetNextProperty;
}
}
}
// 前面都未能成功匹配
if (pName == "" && douyinProp.required)
{
if (douyinProp.property_name == "测量功能")
{
var op = douyinProp.options?.Find(o => pcb.name.Contains(o.name));
}
if (douyinProp.property_name == "图案")
{
var op = douyinProp.options?.Find(o => pcb.name.Contains(o.name.Replace("图案", "")));
if (op != null)
{
pName = op.name.ToString().Trim();
pId = op.value;
goto GetNextProperty;
}
}
// 是否可以随意填写值
if (douyinProp.diy_type == 1)
{
if (upProp != null && upProp.Value != "其他" && upProp.Value != "其他/other")
pName = "$diy$" + upProp.Value;
else if (douyinProp.property_name == "适用年龄")
pName = "$diy$通用";
else if (douyinProp.property_name == "植物品种")
{
int subIndex = Randomx.GetId(15, 20);
var subText = pcb.name.Length > subIndex ? pcb.name.Substring(0, subIndex) : pcb.name;
pName = "$diy$" + subText;
}
else
pName = "$diy$其他/Other";
}
else
if (douyinProp.type == "text")
{
if (douyinProp.property_name == "产品名称")
pName = pcb.name;
if (douyinProp.property_name == "连接方式" || douyinProp.property_name == "兼容平台")
pName = "其他/Other";
else
pName = "通用";
}
else
if (douyinProp.options?.FirstOrDefault() != null)
{
if (upProp != null)
{
var ops = douyinProp.options.Where(o => ("," + upProp.Value + ",").Contains("," + o.name + ",")).ToList();
if (ops.Count > 0)
{
pName = pId = "";
foreach (var op in ops)
{
pName += op.name + ",";
pId += op.value + ",";
}
pName = pName.Trim(',');
pId = pId.Trim(',');
}
}
if (string.IsNullOrEmpty(pName))
{
var op = douyinProp.options.Find(o => o.name == "正常规格");
if (op == null && douyinProp.property_name == "适用年龄")
{
op = douyinProp.options.Last(o => o.name.Contains("周岁"));
}
if (op == null)
op = douyinProp.options[Randomx.GetId(douyinProp.options.Count - 1)];
pName = op.name.ToString().Trim();
pId = op.value;
}
}
if (!string.IsNullOrEmpty(pName))
html += "^" + douyinProp.property_name + "|" + pName;
else
continue;
}
GetNextProperty:;
if (!string.IsNullOrEmpty(pName))
{
var pNames = pName.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
var pIds = pId.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
dicProp[douyinProp.property_id.ToString()] = new List<product_format_new_item>();
for (int j = 0; j < pIds.Length; j++)
{
var formatItem = new product_format_new_item
{
diy_type = pNames[j].StartsWith("$diy$") ? 1 : 0,
name = pNames[j].Replace("$diy$", ""),
value = pIds[j].ParseToLong()
};
dicProp[douyinProp.property_id.ToString()].Add(formatItem);
}
}
#endregion
}
var result = html.Replace("^^", "^").Trim('^').Replace("/", "\\/").Replace("$diy$", "");
//return result;
var resultNew = JsonHelper.SerializeObject(dicProp).Replace("\"", "\\\"");
return resultNew;
}
public string UpProperty2DouyinPropertyNameConverter(string upPropName, string douyinPropName)
{
if (dicPropNameConverter.Keys.Contains(upPropName))
{
if (("," + dicPropNameConverter[upPropName] + ",").Contains("," + douyinPropName + ","))
return douyinPropName;
}
return upPropName;
}
Dictionary<string, string> dicPropNameConverter { get; } = new Dictionary<string, string>() {
{ "主材质", "材质" },
{ "拍杆材质", "材质" },
{ "外壳材质", "材质" },
{ "材质种类", "材质" },
{ "面料分类", "材质" },
{ "材质成分", "面料材质,面料材质成分含量,材质"},
{ "面料", "面料材质" },
{ "面料俗称", "面料材质,材质" },
{ "材质", "面料材质,主材质" },
{ "被里材质", "被里材质" },
{ "被里面料俗称", "被里材质" },
{ "被里材质含量", "被里成分含量" },
{ "被面材质", "被面材质" },
{ "被面材质含量", "被面成分含量" },
{ "成分含量", "面料成分含量" },
{ "衣柜面料", "饰面材质" },
{ "饰面面料", "面料材质" },
{ "鞋面材质", "帮面材质,材质" },
{ "刷毛材质", "材质" },
{ "储藏方法", "贮存条件" },
{ "适用人群", "适用对象" },
{ "是否支持定制", "是否可定制" },
{ "清扫模式", "清洁类型" },
{ "3C认证证书编号", "CCC证书编号" },
{ "上市时节", "上市年份季节" },
{ "适用年龄段", "适用年龄" },
{ "产品类型", "鞋垫种类" },
{ "杯身材质", "材质" }, // 水杯 水杯女可爱大容量塑料杯可爱学生便携夏季大肚带吸管杯子男高颜值
{ "净含量", "有效成分含量" },
{ "续航时间", "电池使用时间"},
{ "防水级别", "防水等级" },
{ "绳材质", "材质" },
{ "内里材质", "填充物种类" },
};
public List<PropertiesValuesBase> UpProperty2DouyinPropertyValueConverter(string upPropName, List<PropertiesValuesBase> options)
{
if (options?.Find(o => o.name.ToLower() == upPropName.ToLower()) != null)
return options.Where(o => o.name.ToLower() == upPropName.ToLower()).ToList();
if (options?.Find(o => o.name.ToLower() == upPropName.ToLower() + "镶嵌") != null)
return options.Where(o => o.name.ToLower() == upPropName.ToLower() + "镶嵌").ToList();
if (dicPropValueConverter.Keys.Contains(upPropName.ToLower()))
{
var ops = options.Where(o => ("," + dicPropValueConverter[upPropName.ToLower()] + ",").Contains("," + o.name + ",")).ToList();
if (ops.Count > 0)
return ops;
}
if (upPropName.Contains("%"))
{
string[] strArr = new string[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "." };
foreach (var item in strArr)
{
upPropName = upPropName.Replace(item, "");
}
var upPropNames = upPropName.Split(new string[] { "%" }, StringSplitOptions.RemoveEmptyEntries);
var upPropNameConverted = "";
foreach (var item in upPropNames)
{
if (dicPropValueConverter.Keys.Contains(item.ToLower().Trim()))
upPropNameConverted += dicPropValueConverter[item.ToLower().Trim()] + ",";
else
upPropNameConverted += item.ToLower().Trim() + ",";
}
var ops = options.Where(o => ("," + upPropNameConverted.ToLower() + ",").Contains("," + o.name + ",")).ToList();
if (ops.Count > 0)
return ops;
}
return new List<PropertiesValuesBase>();
}
Dictionary<string, string> dicPropValueConverter { get; } = new Dictionary<string, string>() {
{ "人造革", "聚酯纤维" },
{ "涤纶", "聚酯纤维" },
{ "丝绵", "聚酯纤维" },
{ "仿丝棉", "聚酯纤维" },
{ "涤纶(聚酯纤维)", "聚酯纤维,涤纶" },
{ "粘胶纤维(粘纤)", "粘胶纤维,粘纤" },
{ "聚酰胺纤维(锦纶)", "聚酰胺纤维,锦纶" },
{ "聚氨酯弹性纤维(氨纶),", "聚氨酯弹性纤维,氨纶" },
{ "记忆棉(聚氨酯)", "记忆棉,聚氨酯" },
{ "二层牛皮", "牛剖层皮革" },
{ "二层牛皮(除牛反绒)", "牛剖层皮革"},
{ "超纤皮", "牛剖层皮革" },
{ "pu", "聚氨酯,人造革" },
{ "吸口滚刷互换式", "滚刷吸口互换" },
{ "科技布", "涤纶" },
{ "毛毡" , "聚酯纤维" },
{ "人造纤维", "仿生纤维毛" },
{ "925银", "925银镶嵌" },
{ "绸缎", "丝绸" },
{ "棉布", "棉" },
{ "pvc", "PVC(聚氯乙烯)"},
{ "包芯丝", "尼龙,氨纶"},
{ "全碳素", "碳纤维" },
{ "棉麻", "棉,亚麻" },
{ "帆布", "纺织" },
{ "天丝(莱赛尔纤维)", "天丝,莱赛尔纤维" },
{ "天丝", "莱赛尔纤维" },
{ "eva", "EVA发泡胶" },
{ "蚕丝", "桑蚕丝" },
{ "弹力布", "纺织" },
{ "发泡橡胶", "橡胶发泡" },
{ "复合底", "橡胶+EVA" },
{ "冰丝", "粘胶纤维" },
{ "橡胶", "橡胶底" },
{ "丁腈", "NBR,nbr"},
{ "丁腈橡胶", "NBR,nbr"},
{ "棉", "纺织" },
};
}
public class product_format_new_item
{
public string name { get; set; }
public long value { get; set; }
public long diy_type { get; set; }
}
}
+1 -142
View File
@@ -354,72 +354,6 @@ namespace Work.CollectClass
}
}
private static string ReadResponse(HttpWebResponse response)
{
using (Stream responseStream = response.GetResponseStream())
{
Stream streamToRead = responseStream;
if (response.ContentEncoding.ToLower().Contains("gzip"))
{
streamToRead = new GZipStream(streamToRead, CompressionMode.Decompress);
}
else if (response.ContentEncoding.ToLower().Contains("deflate"))
{
streamToRead = new DeflateStream(streamToRead, CompressionMode.Decompress);
}
using (StreamReader streamReader = new StreamReader(streamToRead, Encoding.UTF8))
{
return streamReader.ReadToEnd();
}
}
}
private string Request_m_jingxi_com(string url, string refer, string cookies)
{
HttpWebResponse response = null;
string responseText = "";
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://m.jingxi.com/pingou_api/getskusprice?skuids=66516696547,66516696549,66516696551,66516696553,66516696555,66516696557,66516696559,66516696560,66516696561,66516696562,66516696563,66516696564,10026355267735,10026355267736,10026355267737,10026355267738,10026355267739");
request.KeepAlive = true;
request.Headers.Set(HttpRequestHeader.CacheControl, "max-age=0");
request.Headers.Add("sec-ch-ua", @""" Not;A Brand"";v=""99"", ""Google Chrome"";v=""91"", ""Chromium"";v=""91""");
request.Headers.Add("sec-ch-ua-mobile", @"?0");
request.Headers.Add("Upgrade-Insecure-Requests", @"1");
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36";
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9";
request.Headers.Add("Sec-Fetch-Site", @"none");
request.Headers.Add("Sec-Fetch-Mode", @"navigate");
request.Headers.Add("Sec-Fetch-User", @"?1");
request.Headers.Add("Sec-Fetch-Dest", @"document");
if (!string.IsNullOrEmpty(refer))
request.Referer = refer;
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br");
request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
//request.Headers.Set(HttpRequestHeader.Cookie, @"webp=1; mba_muid=1620291779033615364177; 3AB9D23F7A4B3C9B=IIBLOQ4IFTT367KU2NCECZAFXTVCN7AYLXSIP3HZSBOMBKQXGQTJFDGRW5JWCEU377HKC5C5HJQRHJJC3D5ZASWFTE; shshshfpb=boDuOdz%20%2FGt9KQ74G6vTQmA%3D%3D; shshshfpa=5d4141ae-427a-678c-4712-9baed34739a1-1599815587; visitkey=31617493194533400; retina=0; deviceVersion=91.0.4472.114; equipmentId=IIBLOQ4IFTT367KU2NCECZAFXTVCN7AYLXSIP3HZSBOMBKQXGQTJFDGRW5JWCEU377HKC5C5HJQRHJJC3D5ZASWFTE; fingerprint=3554b07451d83da66d73db4c41f0feaf; deviceName=Chrome; deviceOS=; deviceOSVersion=; sc_width=1920; autoOpenApp_pgDownCloseDate_auto=1624939789383_21600000; shshshfp=587434f372f9b93d7f1fdb2094808628; warehistory=""70742086787,""; wxmall_ptype=2; cid=3; __jdv=122270672%7Cdirect%7Ct_1000072676_17008_001%7Cshouq%7C-%7C1625192682227; __jda=122270672.15940195332131193805118.1594019533.1624948496.1625192682.150; __jxjda=76161171.15940195332131193805118.1594019533.1624948498.1625192682.151; sbx_hot_h=null; __wga=1625192761948.1625192682221.1624948498385.1620295125422.5.7; PPRD_P=UUID.15940195332131193805118-LOGID.1625192762279.162952430-EA.17008.1.14-CT.138631.1.3; wq_prior=5; wq_ug=14; pin=%E6%AE%BF%E6%95%8F%E5%AE%B6%E5%B1%85%E6%97%A5%E7%94%A8%E6%8B%BC%E8%B4%AD%E5%BA%97; unick=%E6%AE%BF%E6%95%8F%E5%AE%B6%E5%B1%85%E6%97%A5%E7%94%A8%E6%8B%BC%E8%B4%AD%E5%BA%97; thor=1BAE23EC9D9791A1474EC42D7F7F8C83B7231A71F615C334906B0C3758FA60CABDE9502205933B0331B61610000AF0F9D0125204144AA5AB85D21A72BD6584849C2900A7B54574A9DC4A0DB96997B6C6909A236512E657BF74EA85E8CD750D055C6EACA03A7A45A03A801C2AB8EC11C78BB83B2E1736FF837978DA5B46D1DC999478FBA07B98566A44F74DBD9974339C");
if (!string.IsNullOrEmpty(cookies))
request.Headers.Set(HttpRequestHeader.Cookie, cookies);
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException e)
{
if (e.Status == WebExceptionStatus.ProtocolError) response = (HttpWebResponse)e.Response;
else return e.Message;
}
catch (Exception ex)
{
if (response != null) response.Close();
return ex.Message;
}
responseText = ReadResponse(response);
response.Close();
return responseText;
}
private string getSkuHtml(long skuid, ref bool canUse)
@@ -873,17 +807,6 @@ namespace Work.CollectClass
return list;
}
private string GetDetailImageImgHtml(long skuid)
{
#region
//
// { "content":"<p><img src=\"http://img30.360buyimg.com/popWareDetail/jfs/t1/106784/4/19721/152751/5ea14516E50bb01d1/f136b21cce9e62d8.jpg\"><img src=\"//img10.360buyimg.com/imgzone/jfs/t1/101055/24/18598/163020/5e957063E616b6e61/eef8053df4bf5f12.jpg\"><img src=\"//img10.360buyimg.com/imgzone/jfs/t1/116647/30/1137/181417/5e957063Ec3e2bd21/6b93d6b01e24412e.jpg\"><img src=\"//img10.360buyimg.com/imgzone/jfs/t1/109297/6/12411/163541/5e957064Eb2c1e3f3/e2eb1354e76c6b74.jpg\"><img src=\"//img10.360buyimg.com/imgzone/jfs/t1/97529/1/18600/170168/5e957064E3f067cf8/01f3155103d3bb85.jpg\"><img src=\"//img10.360buyimg.com/imgzone/jfs/t1/98019/8/18708/167835/5e957065E5ee2265e/bf539b786ac88216.jpg\"><img src=\"//img10.360buyimg.com/imgzone/jfs/t1/107920/36/12469/103897/5e957068E072195e7/fd5967af0236ab5d.jpg\"><img src=\"//img10.360buyimg.com/imgzone/jfs/t1/107916/40/12398/66013/5e957065E759c3fba/7d8221c777f60a98.jpg\"><img src=\"//img10.360buyimg.com/imgzone/jfs/t1/101249/3/18625/120447/5e957065Ee5d26194/27f1e899858b7d2a.jpg\"><img src=\"//img10.360buyimg.com/imgzone/jfs/t1/101072/40/18571/143111/5e957065E3f270cf9/6d16738aa9365858.jpg\"><img src=\"//img10.360buyimg.com/imgzone/jfs/t1/94118/2/18522/163003/5e957066Eea34c311/53039077add05274.jpg\"><img src=\"//img10.360buyimg.com/imgzone/jfs/t1/105973/3/18358/190612/5e957066Efca99a4e/9b86601b42226bf3.jpg\"><img src=\"//img10.360buyimg.com/imgzone/jfs/t1/117369/7/1161/153200/5e957066Ea679c2f4/86c5cc6ddf9ac55c.jpg\"><br></p><p><br></p>","plus":false,"isMobileDesc":true,"msg":"","success":"1"}
#endregion
List<string> list = new List<string>();
string url = "https://wqsitem.jd.com/detail/" + skuid + "_d14399653725_normal.html";
string html = AllBase.GetHtml.GetUtf8(url, AllBase.BaseClass.ChromeUserAgent);
return html;
}
/// <summary>
/// 获取拼团的销量
/// </summary>
@@ -1053,25 +976,7 @@ namespace Work.CollectClass
public string Prop3 = "";
}
}
/// <summary>
/// 单位换算:将万等转换为具体的数字,
/// 如52万=520000等
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public static decimal Unit_Conversion(string data)
{
decimal result = 0;
string s1 = AllBase.BaseRegex.GetMatchRegexString(ref data, "(\\d*[.\\d*]*)");
if (decimal.TryParse(s1, out result))
{
if (data.Contains("万"))
result *= 10000;
if (data.Contains("亿"))
result *= 100000000;
}
return result;
}
public enum GoodsStatusEnum
{
/// <summary>
@@ -1085,50 +990,4 @@ namespace Work.CollectClass
}
}
public static class ConvertExtension
{
/// <summary>
/// 删除特殊字
/// </summary>
/// <param name="text"></param>
/// <param name="characters"></param>
/// <returns></returns>
public static string RemoveSpecialChar(this string text, params string[] characters)
{
//{ ":", ":", "/", "\\", "\"", "?", "✅", "◆", "‼️" }
string str = text;
List<string> specialCharacters = new List<string>(characters);
specialCharacters.ForEach(c => { str = str.Replace(c, ""); });
return str;
}
}
public class JingXiCollectDemo
{
public static void Get(string skuID)
{
ProductCollectBase pb = new ProductCollectBase();
pb.from_id = skuID.ParseToLong(); ;
JingXiCollect tm = new JingXiCollect(pb);
tm.Get();
var p = tm.Product;
}
public static void GetTaobao(string skuID)
{
ProductCollectBase pb = new ProductCollectBase();
pb.from_url = "https://item.taobao.com/item.htm?id=" + skuID;
pb.from_id = long.Parse(skuID);
TaobaoMobileCollect tm = new TaobaoMobileCollect(pb);
tm.Pinduoduo = true;
tm.Name = "淘宝";
tm.Get();
var p = tm.Product;
return;
}
}
}
-1
View File
@@ -14,7 +14,6 @@ using System.IO.Compression;
using Newtonsoft.Json.Linq;
using System.Security.Cryptography;
using System.Windows.Forms;
using Work.BLL.Upload;
using AllBase.Extension;
using NaiBa.Util.Extension;
-7
View File
@@ -134,12 +134,6 @@
<Compile Include="Api\DeleteRejectProduct.cs" />
<Compile Include="Api\FromTitleToCatTaobao.cs" />
<Compile Include="BLL\Collect\PddSameScreeningBLL.cs" />
<Compile Include="BLL\Product\ShopProductBLL.cs" />
<Compile Include="BLL\Product\ViolateBLL.cs" />
<Compile Include="BLL\Upload\FissionDataBaseBLL.cs" />
<Compile Include="BLL\Upload\UploadMaterialBLL.cs" />
<Compile Include="BLL\Upload\UploadProductBLL.cs" />
<Compile Include="BLL\Upload\UploadPropertyBLL.cs" />
<Compile Include="CollectClass\CollectDoyin.cs" />
<Compile Include="CollectClass\DetailMobileCollect.cs" />
<Compile Include="Api\DownUpProductExploder.cs" />
@@ -162,7 +156,6 @@
<Compile Include="Api\UploadPinduoduoMain.cs" />
<Compile Include="Api\UploadPinduoduoProperties.cs" />
<Compile Include="Api\UploadPinduoduoSet.cs" />
<Compile Include="BLL\Collect\HaoWuCollectBLL.cs" />
<Compile Include="BLL\Tools\Base64ChangeImgUrl.cs" />
<Compile Include="CollectClass\BankWithDraw.cs" />
<Compile Include="CollectClass\BigDataBuild.cs" />