mirror of
https://github.com/NaiboWang/EasySpider.git
synced 2025-04-12 03:27:08 +08:00
New Version 0.2.0
This commit is contained in:
parent
820c1a2412
commit
057b52ba1f
7
.gitignore
vendored
7
.gitignore
vendored
@ -3,7 +3,12 @@ node_modules/
|
||||
ServiceWrapper/
|
||||
Data/
|
||||
/GPUCache
|
||||
C#/
|
||||
ServiceGrid/
|
||||
Releases/
|
||||
old_code
|
||||
*.exe
|
||||
*.ini
|
||||
*.7z
|
||||
*.mp4
|
||||
*.mp4
|
||||
|
||||
|
2
C#/ServiceWrapperEntry/.gitignore
vendored
2
C#/ServiceWrapperEntry/.gitignore
vendored
@ -1,2 +0,0 @@
|
||||
.vs
|
||||
packages
|
@ -1,25 +0,0 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.3.32929.385
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceWrapperEntry", "ServiceWrapperEntry\ServiceWrapperEntry.csproj", "{8FF781CB-5C33-4C3F-872D-1FE0E114A8D0}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x64 = Debug|x64
|
||||
Release|x64 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{8FF781CB-5C33-4C3F-872D-1FE0E114A8D0}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{8FF781CB-5C33-4C3F-872D-1FE0E114A8D0}.Debug|x64.Build.0 = Debug|x64
|
||||
{8FF781CB-5C33-4C3F-872D-1FE0E114A8D0}.Release|x64.ActiveCfg = Release|x64
|
||||
{8FF781CB-5C33-4C3F-872D-1FE0E114A8D0}.Release|x64.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {F3EC44B3-E8DF-40FA-ABEB-9F5BAC89A723}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
@ -1,11 +0,0 @@
|
||||
# 客户端开发编译方式
|
||||
|
||||
0. 安装VS2019或以上版本,勾选windows应用程序开发(.Net Framework 4.7.2版本及以上)。
|
||||
|
||||
1. 拷贝客户端(可执行程序)servicewrapper文件夹内所有文件到\ServiceWrapperEntry\bin\x64\Debug文件夹(包括Chrome文件夹)
|
||||
|
||||
2. 打开sln文件,右键点击解决方案,点击“清理解决方案”后,再点击“还原Nuget包”。
|
||||
|
||||
3. 右键点击项目,点击“清理”后,再点击“重新生成项目”。
|
||||
|
||||
4. 编译即成功。
|
@ -1,2 +0,0 @@
|
||||
obj/*
|
||||
bin/*
|
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
|
||||
</startup>
|
||||
</configuration>
|
@ -1,174 +0,0 @@
|
||||
using CefSharp;
|
||||
using CefSharp.Internals;
|
||||
using CefSharp.Web;
|
||||
using CefSharp.WinForms;
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace EasySpider
|
||||
{
|
||||
public class MouseHelper
|
||||
{
|
||||
[System.Runtime.InteropServices.DllImport("user32")]
|
||||
public static extern int mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);
|
||||
//移动鼠标
|
||||
public const int MOUSEEVENTF_MOVE = 0x0001;
|
||||
//模拟鼠标左键按下
|
||||
public const int MOUSEEVENTF_LEFTDOWN = 0x0002;
|
||||
//模拟鼠标左键抬起
|
||||
public const int MOUSEEVENTF_LEFTUP = 0x0004;
|
||||
//模拟鼠标右键按下
|
||||
public const int MOUSEEVENTF_RIGHTDOWN = 0x0008;
|
||||
//模拟鼠标右键抬起
|
||||
public const int MOUSEEVENTF_RIGHTUP = 0x0010;
|
||||
//模拟鼠标中键按下
|
||||
public const int MOUSEEVENTF_MIDDLEDOWN = 0x0020;
|
||||
//模拟鼠标中键抬起
|
||||
public const int MOUSEEVENTF_MIDDLEUP = 0x0040;
|
||||
//标示是否采用绝对坐标
|
||||
public const int MOUSEEVENTF_ABSOLUTE = 0x8000;
|
||||
[DllImport("user32.dll")]
|
||||
public static extern bool SetCursorPos(int X, int Y);
|
||||
}
|
||||
public class Parameters
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string url { get; set; }
|
||||
}
|
||||
|
||||
public class Data
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public int option { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public Parameters parameters { get; set; }
|
||||
}
|
||||
|
||||
public class FlowMessage
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public int type { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public Data data { get; set; }
|
||||
}
|
||||
|
||||
public class Message
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public int id { get; set; }
|
||||
public string links { get; set; }
|
||||
public string link { get; set; }
|
||||
//键盘输入的值
|
||||
public string keyboardStr { get; set; }
|
||||
//直接转接流程图的消息
|
||||
public string pipe { get; set; }
|
||||
}
|
||||
|
||||
|
||||
public class Msg
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public int type { get; set; }
|
||||
/// <summary>
|
||||
/// 从哪里来
|
||||
/// </summary>
|
||||
public int from { get; set; }
|
||||
public Message message { get; set; }
|
||||
}
|
||||
|
||||
public class RequestContextHandler : IRequestContextHandler
|
||||
{
|
||||
public IResourceRequestHandler GetResourceRequestHandler(IBrowser browser, IFrame frame, IRequest request, bool isNavigation, bool isDownload, string requestInitiator, ref bool disableDefaultHandling)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public bool OnBeforePluginLoad(string mimeType, string url, bool isMainFrame, string topOriginUrl, WebPluginInfo pluginInfo, ref PluginPolicy pluginPolicy)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public void OnRequestContextInitialized(IRequestContext requestContext)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
//加载窗口时的事件设置
|
||||
public class RenderProcessMessageHandler : IRenderProcessMessageHandler
|
||||
{
|
||||
public void OnContextReleased(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame)
|
||||
{
|
||||
//throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void OnFocusedNodeChanged(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IDomNode node)
|
||||
{
|
||||
//throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void OnUncaughtException(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, JavascriptException exception)
|
||||
{
|
||||
//throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// Wait for the underlying JavaScript Context to be created. This is only called for the main frame.
|
||||
// If the page has no JavaScript, no context will be created.
|
||||
void IRenderProcessMessageHandler.OnContextCreated(IWebBrowser browserControl, IBrowser browser, IFrame frame)
|
||||
{
|
||||
//MessageBox.Show("zhixing");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 在自己窗口打开链接
|
||||
/// </summary>
|
||||
internal class OpenPageSelf : ILifeSpanHandler
|
||||
{
|
||||
public bool DoClose(IWebBrowser browserControl, IBrowser browser)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public void OnAfterCreated(IWebBrowser browserControl, IBrowser browser)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void OnBeforeClose(IWebBrowser browserControl, IBrowser browser)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public bool OnBeforePopup(IWebBrowser browserControl, IBrowser browser, IFrame frame, string targetUrl,
|
||||
string targetFrameName, WindowOpenDisposition targetDisposition, bool userGesture, IPopupFeatures popupFeatures,
|
||||
IWindowInfo windowInfo, IBrowserSettings browserSettings, ref bool noJavascriptAccess, out IWebBrowser newBrowser)
|
||||
{
|
||||
newBrowser = null;
|
||||
var chromiumWebBrowser = (ChromiumWebBrowser)browserControl;
|
||||
chromiumWebBrowser.Load(targetUrl);
|
||||
return true; //Return true to cancel the popup creation copyright by codebye.com.
|
||||
}
|
||||
}
|
||||
}
|
@ -1,90 +0,0 @@
|
||||
namespace EasySpider
|
||||
{
|
||||
partial class Flow
|
||||
{
|
||||
/// <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 Windows 窗体设计器生成的代码
|
||||
|
||||
/// <summary>
|
||||
/// 设计器支持所需的方法 - 不要修改
|
||||
/// 使用代码编辑器修改此方法的内容。
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Flow));
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
this.panel1.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.panel1.AutoSize = true;
|
||||
this.panel1.Location = new System.Drawing.Point(3, 4);
|
||||
this.panel1.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.panel1.Name = "panel1";
|
||||
this.panel1.Size = new System.Drawing.Size(1231, 845);
|
||||
this.panel1.TabIndex = 0;
|
||||
this.panel1.Paint += new System.Windows.Forms.PaintEventHandler(this.panel1_Paint_1);
|
||||
//
|
||||
// button1
|
||||
//
|
||||
this.button1.AutoSize = true;
|
||||
this.button1.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
this.button1.Font = new System.Drawing.Font("SimSun", 16.125F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.button1.Location = new System.Drawing.Point(0, 622);
|
||||
this.button1.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(1241, 37);
|
||||
this.button1.TabIndex = 1;
|
||||
this.button1.Text = "←";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
this.button1.Visible = false;
|
||||
this.button1.Click += new System.EventHandler(this.button1_Click);
|
||||
//
|
||||
// Flow
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(1241, 659);
|
||||
this.Controls.Add(this.button1);
|
||||
this.Controls.Add(this.panel1);
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.Name = "Flow";
|
||||
this.Text = "EasySpider: NoCode Visual Web Crawler";
|
||||
this.Load += new System.EventHandler(this.Flow_Load);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Panel panel1;
|
||||
private System.Windows.Forms.Button button1;
|
||||
}
|
||||
}
|
||||
|
@ -1,123 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using CefSharp;
|
||||
using CefSharp.WinForms;
|
||||
using System.Runtime.InteropServices; //引用此名称空间,简化后面的代码
|
||||
using System.Net;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace EasySpider
|
||||
{
|
||||
|
||||
public partial class Flow : Form, IMessageFilter
|
||||
{
|
||||
public ChromiumWebBrowser chromeBrowser;
|
||||
public bool ChromeNow = false; //标记现在所在窗口是否为chrome
|
||||
public static string flowChartUrl = PublicVariable.frontEndAddress + "/FlowChart.html?id="; //流程图所在的位置
|
||||
public string url = flowChartUrl + "-1&backEndAddressServiceWrapper=" + PublicVariable.backEndAddress;
|
||||
public Flow()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
public Flow(string link)
|
||||
{
|
||||
InitializeComponent();
|
||||
url = link;
|
||||
button1.Show();
|
||||
}
|
||||
// P/Invoke declarations
|
||||
[DllImport("user32.dll")]
|
||||
public static extern IntPtr GetForegroundWindow();
|
||||
[DllImport("user32.dll")]
|
||||
private extern static bool SwapMouseButton(bool fSwap);
|
||||
[System.Runtime.InteropServices.DllImport("user32.dll")]
|
||||
public static extern int SetForegroundWindow(IntPtr hwnd);
|
||||
public const int WM_CLOSE = 0x10;
|
||||
public bool closedriver = true;
|
||||
[DllImport("user32.dll", EntryPoint = "SendMessage")]
|
||||
private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
|
||||
|
||||
public bool PreFilterMessage(ref System.Windows.Forms.Message SystemMessage)
|
||||
{
|
||||
if (SystemMessage.Msg >= 513 && SystemMessage.Msg <= 515)
|
||||
{//不响应鼠标左键消息
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
private void Flow_Load(object sender, EventArgs e)
|
||||
{
|
||||
InitializeChromium();
|
||||
PublicVariable.isInitialized = true;
|
||||
//保证并排平铺
|
||||
int width = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Size.Width;
|
||||
int height = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Size.Height;
|
||||
StartPosition = FormStartPosition.Manual; //窗体的位置由Location属性决定
|
||||
Location = (Point)new Size(0, 0); //窗体的起始位置为(x,y)
|
||||
Width = width;
|
||||
Height = Convert.ToInt32(height * 0.8);
|
||||
FormClosing += Flow_FormClosing;
|
||||
}
|
||||
|
||||
//初始化浏览器并启动
|
||||
public void InitializeChromium()
|
||||
{
|
||||
if (!PublicVariable.isInitialized)//只初始化一次
|
||||
{
|
||||
CefSettings settings = new CefSettings();
|
||||
Cef.Initialize(settings);
|
||||
}
|
||||
// Create a browser component
|
||||
chromeBrowser = new ChromiumWebBrowser(url);
|
||||
//跨域访问允许
|
||||
chromeBrowser.BrowserSettings.FileAccessFromFileUrls = CefState.Enabled;
|
||||
chromeBrowser.BrowserSettings.UniversalAccessFromFileUrls = CefState.Enabled;
|
||||
//textBox1.Text = url;
|
||||
// Add it to the form and fill it to the form window.
|
||||
panel1.Controls.Add(chromeBrowser);
|
||||
chromeBrowser.Dock = DockStyle.Fill;
|
||||
chromeBrowser.RenderProcessMessageHandler = new RenderProcessMessageHandler();
|
||||
}
|
||||
|
||||
//窗体关闭时,记得停止浏览器
|
||||
private void Flow_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
if(closedriver)
|
||||
{
|
||||
//Cef.Shutdown();//关掉内嵌控件
|
||||
try
|
||||
{
|
||||
//PublicVariable.chrome.Kill();//关掉chrome
|
||||
//SendMessage(Start.chromeId, WM_CLOSE, 0, 0);//关掉chrome
|
||||
Start.browser.Quit();//关掉chromedriver
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
}
|
||||
}
|
||||
PublicVariable.start.Show(); //重新显示初始框
|
||||
}
|
||||
|
||||
private void panel1_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
SetForegroundWindow(Start.chromeId); //打开流程图窗口后将chrome窗口显示到最前方
|
||||
}
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
chromeBrowser.Back();
|
||||
}
|
||||
|
||||
private void panel1_Paint_1(object sender, PaintEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@ -1,408 +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>
|
||||
AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAD/////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////7+/v/+/v7//v7+///////+/v7//v7+////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////v7+//7+/v/+/v7/////////
|
||||
/////////////////////////v7+//7+/v//////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////////////////////////////////////7+
|
||||
/v/+/v7//v7+///////+/v7//v7+//////////////////7+/v/+/v7//v7+////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////+/v7//v7+/////////////v7+//7+/v/+/v7////////////+/v7//v7+//7+
|
||||
/v//////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////v7+////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////+/v7//v7+////
|
||||
/////////v7+//7+/v//////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////7+/v//////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////v7+//7+/v//////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////v7+//7+/v/+/v7////////////////////////////+/v7/+vr6/5eX
|
||||
l/+YmJj/+vr6//7+/v//////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////7+/v/+/v7/////////////////////////
|
||||
///9/f3/4uLi/0lJSf8AAAD/AAAA/0lJSf/j4+P//f39////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////9/f3/ubm5/xkZGf8BAQH/AAAA/wAAAP8BAQH/GRkZ/7m5uf/+/v7//v7+////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////9/f3/kpKS/wYGBv8AAAD/AAAA/wAAAP8AAAD/AAAA/wEB
|
||||
Af8GBgb/kpKS//7+/v/+/v7/////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////9/f3/hoaG/wICAv8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wICAv+FhYX//f39////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////////////////////7+/v/+/v7/q6ur/wQE
|
||||
BP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AgIC/6ysrP/+/v7/////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///+/v7/9PT0/x8fH/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wEB
|
||||
Af8dHR3/9fX1////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////v7+/7W1tf8AAAD/AAAA/wICAv8aGhr/AwMD/wAAAP8AAAD/AAAA/wAA
|
||||
AP8EBAT/Ghoa/wICAv8AAAD/AAAA/7a2tv//////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////7+/v+RkZH/AAAA/wAAAP8gICD/+/v7/9fX
|
||||
1/9UVFT/AgIC/wICAv9VVVX/2NjY//v7+/8fHx//AAAA/wAAAP+SkpL/////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////+/v7/mpqa/wAA
|
||||
AP8AAAD/Nzc3//7+/v/+/v7/ysrK/8TExP/Dw8P/ycnJ//7+/v/9/f3/ODg4/wAAAP8AAAD/mpqa////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////v7+/8PDw/8AAAD/AAAA/zU1Nf/+/v7//v7+/83Nzf+Wlpb/lpaW/87Ozv/+/v7//f39/zU1
|
||||
Nf8AAAD/AAAA/8PDw///////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////7+/v/19fX/EBAQ/wAAAP8YGBj/4uLi/6mpqf8tLS3/AgIC/wEB
|
||||
Af8tLS3/qqqq/+Hh4f8YGBj/AAAA/xAQEP/19fX/////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////v7+//7+/v/+/v7//v7+/1lZWf8AAAD/AQEB/wMD
|
||||
A/8DAwP/Li4u/2xsbP9vb2//NDQ0/wICAv8DAwP/AAAA/wAAAP9ZWVn//f39////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////////////////////7+/v/+/v7/////////
|
||||
//+0tLT/AAAA/wAAAP8JCQn/np6e/+/v7/+1tbX/srKy/+7u7v+qqqr/DAwM/wAAAP8BAQH/tLS0////
|
||||
//////////////7+/v/+/v7/////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///+/v7//v7+////////////+Pj4/x4eHv8CAgL/mJiY/8XFxf8fHx//AQEB/wAAAP8aGhr/vr6+/6Wl
|
||||
pf8BAQH/HR0d//j4+P/////////////////+/v7//v7+////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////7+/v99fX3/LS0t/+bm5v8YGBj/AAAA/wAA
|
||||
AP8AAAD/AAAA/xQUFP/j4+P/MjIy/319ff/9/f3/////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////+/v7/3t7e/4GB
|
||||
gf+BgYH/AQEB/wAAAP8AAAD/AAAA/wAAAP8AAAD/enp6/4WFhf/e3t7//v7+////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////39/f/n5+f/MzMz/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/zIyMv/o6Oj//f39////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////+/v7//v7+////
|
||||
///////////////////////////////////+/v7/7+/v/wcHB/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8HBwf/8fHx//7+/v//////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////v7+//7+/v///////////////////////////////////////f39/9jY2P+IiIj/fX19/zEx
|
||||
Mf8ICAj/CAgI/y4uLv99fX3/iIiI/9nZ2f/+/v7/////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////////////////////////////////////Hx
|
||||
8f9mZmb/KSkp/zY2Nv+ioqL/QUFB/z09Pf+kpKT/PDw8/ygoKP9oaGj/8fHx//7+/v//////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///+/v7//v7+//7+/v+CgoL/BwcH/wcHB/8BAQH/DQ0N/7Gxsf+rq6v/Dg4O/wEBAf8GBgb/BwcH/4OD
|
||||
g//9/f3//v7+////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///+/v7//v7+//7+/v/+/v7//v7+//j4+P/29vb/LCws/wcHB/8HBwf/AAAA/wMDA/9lZWX/Y2Nj/wAA
|
||||
AP8AAAD/BgYG/wcHB/8sLCz/9fX1//f39//+/v7//v7+//7+/v/+/v7//v7+////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////v7+//Pz8//X19f/vr6+/4iIiP8yMjL/srKy/wEBAf8GBgb/BAQE/wEB
|
||||
Af8nJyf/aGho/2FhYf8lJSX/AQEB/wcHB/8HBwf/AQEB/7Kysv80NDT/iIiI/729vf/X19f/8vLy//7+
|
||||
/v//////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////6Ojo/1RUVP8FBQX/AAAA/wAAAP8AAAD/AgIC/6Cg
|
||||
oP/V1dX/rq6u/62trf+rq6v/ioqK/05OTv9QUFD/kJCQ/7CwsP+pqan/rq6u/9XV1f+fn5//AwMD/wAA
|
||||
AP8AAAD/AAAA/wYGBv9UVFT/6enp//7+/v//////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////+vr6/z8/P/8BAQH/AAAA/wAA
|
||||
AP8AAAD/AAAA/wcHB/+vr6//+fn5/xQUFP8ICAj/CAgI/wcHB/8JCQn/CAgI/wcHB/8HBwf/CAgI/xQU
|
||||
FP/4+Pj/sLCw/wYGBv8AAAD/AAAA/wAAAP8AAAD/AAAA/0BAQP/6+vr/////////////////////////
|
||||
/////////////////////////v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+////////////////////
|
||||
///////////////////////////////////////////////////////////////////+/v7//v7+/6am
|
||||
pv8AAAD/AAAA/wAAAP8AAAD/AAAA/wEBAf+Li4v//v7+//z8/P++vr7/v7+//4ODg/95eXn/2NjY/9LS
|
||||
0v9ycnL/eXl5/8DAwP+9vb3//Pz8//39/f+Li4v/AQEB/wAAAP8AAAD/AAAA/wAAAP8AAAD/p6en//7+
|
||||
/v////////////////////////////////////////////7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+
|
||||
/v//////////////////////////////////////////////////////////////////////////////
|
||||
/////////v7+//z8/P86Ojr/AAAA/wAAAP8AAAD/AAAA/wEBAf9QUFD/+/v7//7+/v/q6ur/GBgY/wkJ
|
||||
Cf+ampr//f39//7+/v/+/v7//f39/5mZmf8ICAj/GBgY/+vr6//+/v7/+vr6/09PT/8BAQH/AAAA/wAA
|
||||
AP8AAAD/AAAA/zo6Ov/8/Pz/////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////7+/v/c3Nz/BQUF/wAAAP8AAAD/AAAA/wgICP9nZ2f/8vLy//7+
|
||||
/v/+/v7/pqam/wAAAP8BAQH/m5ub//7+/v////////////////+ampr/AAAA/wEBAf+mpqb//v7+//7+
|
||||
/v/y8vL/Z2dn/wgICP8BAQH/AAAA/wAAAP8EBAT/3Nzc////////////////////////////////////
|
||||
///////////////////////////////////+/v7//v7+////////////////////////////////////
|
||||
///////////////////////////////////////////////////+/v7/+fn5/93d3f/Gxsb/vLy8/8nJ
|
||||
yf/v7+///f39//7+/v///////f39/0RERP8AAAD/AgIC/+Dg4P//////////////////////39/f/wEB
|
||||
Af8AAAD/Q0ND//39/f/+/v7//v7+//39/f/v7+//ycnJ/729vf/Gxsb/3Nzc//n5+f//////////////
|
||||
/////////////////////////////////////////////////////////v7+//7+/v//////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////+/v7//v7+/7y8vP8BAQH/AAAA/zMzM//9/f3/////////
|
||||
//////////////39/f80NDT/AAAA/wICAv+8vLz//v7+////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////7+/v/+/v7//v7+/+jo6P8lJSX/AAAA/wEB
|
||||
Af+Dg4P//v7+///////////////////////+/v7/g4OD/wEBAf8AAAD/JCQk/+rq6v/+/v7/////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////+/v7//f39/+np
|
||||
6f89PT3/AAAA/wAAAP8AAAD/y8vL//7+/v///////////////////////////8vLy/8AAAD/AAAA/wAA
|
||||
AP86Ojr/6enp////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///+/v7//f39/8jIyP8oKCj/AAAA/wEBAf8sLCz/DQ0N//j4+P/+/v7//v7+//7+/v//////////////
|
||||
///39/f/Dg4O/ywsLP8CAgL/AAAA/ykpKf/IyMj//v7+//7+/v////////////7+/v/+/v7/////////
|
||||
//////////////////////////////////////////////////////////////7+/v/+/v7/////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////7+/v/9/f3/5+fn/29vb/8HBwf/AAAA/wEBAf9NTU3/2NjY/ysrK//+/v7///////7+
|
||||
/v/+/v7//////////////////f39/ysrK//Y2Nj/TU1N/wEBAf8AAAD/BgYG/25ubv/o6Oj//f39//7+
|
||||
/v/+/v7//v7+/////////////v7+//7+/v/+/v7//v7+/////////////v7+//7+/v/+/v7/////////
|
||||
///+/v7//v7+//7+/v//////////////////////////////////////////////////////////////
|
||||
//////////////////////////////39/f/q6ur/fHx8/xAQEP8BAQH/AgIC/xISEv8qKir/9vb2//T0
|
||||
9P86Ojr//v7+///////+/v7//v7+//////////////////39/f85OTn/8/Pz//X19f8qKir/ExMT/wEB
|
||||
Af8AAAD/EBAQ/3x8fP/q6ur//v7+//7+/v////////////7+/v/+/v7//v7+//7+/v////////////7+
|
||||
/v/+/v7//v7+//////////////////7+/v/+/v7/////////////////////////////////////////
|
||||
///////////////////////////////////+/v7//f39//Ly8v+CgoL/EhIS/wICAv8BAQH/CAgI/62t
|
||||
rf+rq6v/cXFx//7+/v/9/f3/QUFB//39/f/+/v7////////////////////////////9/f3/QUFB//39
|
||||
/f/+/v7/cXFx/6urq/+tra3/CAgI/wEBAf8CAgL/ExMT/4KCgv/x8fH//f39////////////////////
|
||||
///////////////////+/v7//v7+//7+/v//////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////+/v7//f39/7S0tP8iIiL/AQEB/y4u
|
||||
Lv9mZmb/AgIC/2ZmZv/9/f3/3t7e/7a2tv/+/v7//f39/4uLi//8/Pz//v7+////////////////////
|
||||
/////////Pz8/4uLi//9/f3//v7+/7e3t//e3t7//f39/2ZmZv8CAgL/ZmZm/y4uLv8CAgL/IiIi/7Oz
|
||||
s//9/f3//v7+//7+/v///////////////////////v7+//7+/v/+/v7/////////////////////////
|
||||
///////////////////////////////////////////////////////////////////+/v7/+vr6/3t7
|
||||
e/8FBQX/ExMT/6Kiov/5+fn/ZWVl/wQEBP/U1NT//v7+//7+/v/+/v7//v7+//7+/v/9/f3//f39////
|
||||
//////////////////////////////7+/v/9/f3//v7+//7+/v/+/v7//v7+///////U1NT/BAQE/2Vl
|
||||
Zf/5+fn/oqKi/xISEv8FBQX/enp6//r6+v/+/v7//v7+////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///+/v7/+/v7/2xsbP8CAgL/BQUF/8HBwf/9/f3/9/f3/xYWFv83Nzf//f39////////////////////
|
||||
///+/v7//v7+////////////////////////////////////////////////////////////////////
|
||||
/////////Pz8/zg4OP8YGBj/+Pj4//7+/v/BwcH/BwcH/wMDA/9sbGz//Pz8//7+/v//////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////f39/5WVlf8RERH/YWFh/1JSUv/+/v7//v7+/9LS0v8BAQH/fn5+//39
|
||||
/f//////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////9+fn7/AgIC/9LS0v///////v7+/1NTU/9iYmL/ExMT/5SU
|
||||
lP/9/f3///////////////////////////////////////////////////////////////////////7+
|
||||
/v/+/v7//v7+/////////////////////////////////9/f3/8VFRX/vLy8/5aWlv+Ojo7//v7+//7+
|
||||
/v+qqqr/AQEB/6qqqv/+/v7/////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////qamp/wEBAf+rq6v///////7+
|
||||
/v+Ojo7/lpaW/7y8vP8WFhb/39/f//39/f//////////////////////////////////////////////
|
||||
//////////////7+/v/+/v7//v7+//7+/v////////////////////////////39/f9oaGj/dnZ2//z8
|
||||
/P+cnJz/n5+f////////////lZWV/wAAAP+4uLj/////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////7e3
|
||||
t/8AAAD/lpaW///////+/v7/n5+f/5ycnP/9/f3/dnZ2/2hoaP/9/f3/////////////////////////
|
||||
///////////////////////////////////+/v7//v7+//7+/v/+/v7/////////////////////////
|
||||
///9/f3/Xl5e/+rq6v/+/v7/sbGx/5eXl////////////5OTk/8BAQH/oKCg//39/f//////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////+hoaH/AQEB/5OTk//+/v7//v7+/5aWlv+wsLD//v7+/+np6f9eXl7//f39////
|
||||
///////////////////////////////////////////////////+/v7//v7+//7+/v//////////////
|
||||
/////////////////////////v7+//39/f/9/f3//v7+/+3t7f/Z2dn///////////+enp7/Hh4e/11d
|
||||
Xf/9/f3///////7+/v/+/v7//v7+////////////////////////////////////////////////////
|
||||
///////////////////////////////////9/f3/XV1d/x4eHv+fn5///v7+//7+/v/Z2dn/7e3t//7+
|
||||
/v/+/v7//f39//7+/v///////////////////////////////////////////////////////v7+//7+
|
||||
/v/+/v7//v7+//7+/v/+/v7////////////////////////////////////////////+/v7//v7+////
|
||||
////////t7e3/3R0dP9LS0v/0dHR//7+/v/+/v7//v7+//7+/v//////////////////////////////
|
||||
//////////////////////////////////////////////7+/v/+/v7/0dHR/0tLS/9zc3P/t7e3////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////7+/v/+/v7//v7+//7+/v/+/v7//v7+////////////////////////////////////
|
||||
/////////////////////////////9ra2v9ra2v/5+fn/1RUVP/c3Nz//v7+////////////////////
|
||||
//////////////////////////////////////////////////////////////7+/v/9/f3/3Nzc/1RU
|
||||
VP/o6Oj/a2tr/9ra2v//////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////+/v7//v7+//7+/v/+/v7//v7+////////////////////
|
||||
///////////////////////////////////////////////////4+Pj/XV1d//z8/P/r6+v/bGxs/9HR
|
||||
0f//////////////////////////////////////////////////////////////////////////////
|
||||
///+/v7/0dHR/2tra//r6+v//f39/1xcXP/4+Pj/////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////+/v7//v7+//7+
|
||||
/v///////////////////////////////////////////////////////////////////////v7+/19f
|
||||
X//8/Pz///////7+/v/8/Pz/////////////////////////////////////////////////////////
|
||||
/////////////////////////v7+//z8/P/8/Pz//v7+//v7+/9gYGD//f39////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////v7+//7+/v/+/v7///////////////////////////////////////7+/v/+/v7//v7+////
|
||||
//////////////7+/v+4uLj/+fn5///////+/v7//v7+////////////////////////////////////
|
||||
///////////////////////////////////////////////////+/v7//v7+//7+/v/5+fn/t7e3//39
|
||||
/f//////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////v7+//7+/v/+/v7//v7+//7+
|
||||
/v/+/v7//v7+//7+/v/////////////////+/v7//v7+//7+/v//////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////v7+//7+/v/+/v7/////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////////////////////////////////////7+
|
||||
/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v//////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////+/v7//v7+//7+/v/+/v7//v7+//7+
|
||||
/v/+/v7/////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////v7+//7+/v/+/v7/////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////7+/v/+/v7//v7+//7+/v/+/v7//v7+////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///+/v7//v7+////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////+/v7//v7+//7+/v/+/v7/////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////v7+//7+/v//////////////////////////////////////////////
|
||||
////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
@ -1,99 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace EasySpider
|
||||
{
|
||||
static class Program
|
||||
{
|
||||
[DllImport("kernel32")]
|
||||
private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
|
||||
|
||||
[DllImport("kernel32")]
|
||||
private static extern int GetPrivateProfileString(string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, int nSize, string lpFileName);
|
||||
|
||||
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
|
||||
private static extern uint GetPrivateProfileSection(string lpAppName, IntPtr lpReturnedString, uint nSize, string lpFileName);
|
||||
|
||||
private static string ReadString(string section, string key, string def, string filePath)
|
||||
{
|
||||
StringBuilder temp = new StringBuilder(1024);
|
||||
|
||||
try
|
||||
{
|
||||
GetPrivateProfileString(section, key, def, temp, 1024, filePath);
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
return temp.ToString();
|
||||
}
|
||||
/// <summary>
|
||||
/// 根据section取所有key
|
||||
/// </summary>
|
||||
/// <param name="section"></param>
|
||||
/// <param name="filePath"></param>
|
||||
/// <returns></returns>
|
||||
public static string[] ReadIniAllKeys(string section, string filePath)
|
||||
{
|
||||
UInt32 MAX_BUFFER = 32767;
|
||||
|
||||
string[] items = new string[0];
|
||||
|
||||
IntPtr pReturnedString = Marshal.AllocCoTaskMem((int)MAX_BUFFER * sizeof(char));
|
||||
|
||||
UInt32 bytesReturned = GetPrivateProfileSection(section, pReturnedString, MAX_BUFFER, filePath);
|
||||
|
||||
if (!(bytesReturned == MAX_BUFFER - 2) || (bytesReturned == 0))
|
||||
{
|
||||
string returnedString = Marshal.PtrToStringAuto(pReturnedString, (int)bytesReturned);
|
||||
|
||||
items = returnedString.Split(new char[] { '\0' }, StringSplitOptions.RemoveEmptyEntries);
|
||||
}
|
||||
|
||||
Marshal.FreeCoTaskMem(pReturnedString);
|
||||
|
||||
return items;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 根据section,key取值
|
||||
/// </summary>
|
||||
/// <param name="section"></param>
|
||||
/// <param name="keys"></param>
|
||||
/// <param name="filePath">ini文件路径</param>
|
||||
/// <returns></returns>
|
||||
public static string ReadIniKeys(string section, string keys, string filePath)
|
||||
{
|
||||
return ReadString(section, keys, "", filePath);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 保存ini
|
||||
/// </summary>
|
||||
/// <param name="section"></param>
|
||||
/// <param name="key"></param>
|
||||
/// <param name="value"></param>
|
||||
/// <param name="filePath">ini文件路径</param>
|
||||
public static void WriteIniKeys(string section, string key, string value, string filePath)
|
||||
{
|
||||
WritePrivateProfileString(section, key, value, filePath);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 应用程序的主入口点。
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
PublicVariable.frontEndAddress = ReadIniKeys("serverAddress", "frontEndAddress", "./config.ini");
|
||||
PublicVariable.backEndAddress = ReadIniKeys("serverAddress", "backEndAddress", "./config.ini");
|
||||
Application.Run(new Start());
|
||||
}
|
||||
}
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// 有关程序集的一般信息由以下
|
||||
// 控制。更改这些特性值可修改
|
||||
// 与程序集关联的信息。
|
||||
[assembly: AssemblyTitle("EasySpider")]
|
||||
[assembly: AssemblyDescription("Visual Web Crawler")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("Zhejiang University and National University of Singapore")]
|
||||
[assembly: AssemblyProduct("Web Crawler")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2023")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// 将 ComVisible 设置为 false 会使此程序集中的类型
|
||||
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
|
||||
//请将此类型的 ComVisible 特性设置为 true。
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
|
||||
[assembly: Guid("8ff781cb-5c33-4c3f-872d-1fe0e114a8d0")]
|
||||
|
||||
// 程序集的版本信息由下列四个值组成:
|
||||
//
|
||||
// 主版本
|
||||
// 次版本
|
||||
// 生成号
|
||||
// 修订号
|
||||
//
|
||||
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
|
||||
//通过使用 "*",如下所示:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
@ -1,63 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace EasySpider.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EasySpider.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,117 +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.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: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" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
</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" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
@ -1,26 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace EasySpider.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.3.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
|
||||
<Profiles>
|
||||
<Profile Name="(Default)" />
|
||||
</Profiles>
|
||||
<Settings />
|
||||
</SettingsFile>
|
@ -1,32 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using OpenQA.Selenium;
|
||||
using OpenQA.Selenium.Chrome;
|
||||
using OpenQA.Selenium.Interactions;
|
||||
using OpenQA.Selenium.Internal;
|
||||
using OpenQA.Selenium.Support;
|
||||
using Fleck;
|
||||
using Newtonsoft.Json;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace EasySpider
|
||||
{
|
||||
class PublicVariable
|
||||
{
|
||||
public static bool isInitialized = false;
|
||||
public static double ratio = 0.5; //上面流程图窗口所占的大小比率
|
||||
public static Start start = null;
|
||||
public static Flow fr = null;
|
||||
public static Process chrome = null;
|
||||
public static string frontEndAddress = "https://servicewrapper.systems";
|
||||
public static string backEndAddress = "https://servicewrapper.systems";
|
||||
}
|
||||
}
|
@ -1,179 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\packages\CefSharp.WinForms.79.1.350\build\CefSharp.WinForms.props" Condition="Exists('..\packages\CefSharp.WinForms.79.1.350\build\CefSharp.WinForms.props')" />
|
||||
<Import Project="..\packages\CefSharp.Common.79.1.350\build\CefSharp.Common.props" Condition="Exists('..\packages\CefSharp.Common.79.1.350\build\CefSharp.Common.props')" />
|
||||
<Import Project="..\packages\cef.redist.x86.79.1.35\build\cef.redist.x86.props" Condition="Exists('..\packages\cef.redist.x86.79.1.35\build\cef.redist.x86.props')" />
|
||||
<Import Project="..\packages\cef.redist.x64.79.1.35\build\cef.redist.x64.props" Condition="Exists('..\packages\cef.redist.x64.79.1.35\build\cef.redist.x64.props')" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{8FF781CB-5C33-4C3F-872D-1FE0E114A8D0}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>EasySpider</RootNamespace>
|
||||
<AssemblyName>EasySpider</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
<PublishUrl>publish\</PublishUrl>
|
||||
<Install>true</Install>
|
||||
<InstallFrom>Disk</InstallFrom>
|
||||
<UpdateEnabled>false</UpdateEnabled>
|
||||
<UpdateMode>Foreground</UpdateMode>
|
||||
<UpdateInterval>7</UpdateInterval>
|
||||
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
||||
<UpdatePeriodically>false</UpdatePeriodically>
|
||||
<UpdateRequired>false</UpdateRequired>
|
||||
<MapFileExtensions>true</MapFileExtensions>
|
||||
<ApplicationRevision>0</ApplicationRevision>
|
||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x64\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<OutputPath>bin\x64\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationIcon>favicon.ico</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Fleck, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Fleck.1.1.0\lib\net45\Fleck.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="WebDriver, Version=3.141.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Selenium.WebDriver.3.141.0\lib\net45\WebDriver.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Class1.cs" />
|
||||
<Compile Include="Flow.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Flow.Designer.cs">
|
||||
<DependentUpon>Flow.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="PublicVariable.cs" />
|
||||
<Compile Include="Start.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Start.Designer.cs">
|
||||
<DependentUpon>Start.cs</DependentUpon>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="Flow.resx">
|
||||
<DependentUpon>Flow.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="Start.resx">
|
||||
<DependentUpon>Start.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<None Include="packages.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="favicon.ico" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include=".NETFramework,Version=v4.7.2">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>Microsoft .NET Framework 4.7.2 %28x86 和 x64%29</ProductName>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\packages\cef.redist.x64.79.1.35\build\cef.redist.x64.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\cef.redist.x64.79.1.35\build\cef.redist.x64.props'))" />
|
||||
<Error Condition="!Exists('..\packages\cef.redist.x86.79.1.35\build\cef.redist.x86.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\cef.redist.x86.79.1.35\build\cef.redist.x86.props'))" />
|
||||
<Error Condition="!Exists('..\packages\CefSharp.Common.79.1.350\build\CefSharp.Common.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\CefSharp.Common.79.1.350\build\CefSharp.Common.props'))" />
|
||||
<Error Condition="!Exists('..\packages\CefSharp.Common.79.1.350\build\CefSharp.Common.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\CefSharp.Common.79.1.350\build\CefSharp.Common.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\CefSharp.WinForms.79.1.350\build\CefSharp.WinForms.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\CefSharp.WinForms.79.1.350\build\CefSharp.WinForms.props'))" />
|
||||
<Error Condition="!Exists('..\packages\CefSharp.WinForms.79.1.350\build\CefSharp.WinForms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\CefSharp.WinForms.79.1.350\build\CefSharp.WinForms.targets'))" />
|
||||
</Target>
|
||||
<Import Project="..\packages\CefSharp.Common.79.1.350\build\CefSharp.Common.targets" Condition="Exists('..\packages\CefSharp.Common.79.1.350\build\CefSharp.Common.targets')" />
|
||||
<Import Project="..\packages\CefSharp.WinForms.79.1.350\build\CefSharp.WinForms.targets" Condition="Exists('..\packages\CefSharp.WinForms.79.1.350\build\CefSharp.WinForms.targets')" />
|
||||
</Project>
|
@ -1,13 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<PublishUrlHistory>publish\</PublishUrlHistory>
|
||||
<InstallUrlHistory />
|
||||
<SupportUrlHistory />
|
||||
<UpdateUrlHistory />
|
||||
<BootstrapperUrlHistory />
|
||||
<ErrorReportUrlHistory />
|
||||
<FallbackCulture>zh-CN</FallbackCulture>
|
||||
<VerifyUploadedFiles>false</VerifyUploadedFiles>
|
||||
</PropertyGroup>
|
||||
</Project>
|
@ -1,107 +0,0 @@
|
||||
namespace EasySpider
|
||||
{
|
||||
partial class Start
|
||||
{
|
||||
/// <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(Start));
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.State = new System.Windows.Forms.Label();
|
||||
this.button2 = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// button1
|
||||
//
|
||||
this.button1.Location = new System.Drawing.Point(60, 66);
|
||||
this.button1.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(322, 75);
|
||||
this.button1.TabIndex = 1;
|
||||
this.button1.Text = "Design Task";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
this.button1.Click += new System.EventHandler(this.button1_Click);
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(41, 29);
|
||||
this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(89, 20);
|
||||
this.label1.TabIndex = 2;
|
||||
this.label1.Text = "Status: ";
|
||||
//
|
||||
// State
|
||||
//
|
||||
this.State.AutoSize = true;
|
||||
this.State.Location = new System.Drawing.Point(113, 30);
|
||||
this.State.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
this.State.Name = "State";
|
||||
this.State.Size = new System.Drawing.Size(289, 20);
|
||||
this.State.TabIndex = 3;
|
||||
this.State.Text = "Click Button below to start.";
|
||||
//
|
||||
// button2
|
||||
//
|
||||
this.button2.Location = new System.Drawing.Point(60, 163);
|
||||
this.button2.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.button2.Name = "button2";
|
||||
this.button2.Size = new System.Drawing.Size(322, 75);
|
||||
this.button2.TabIndex = 4;
|
||||
this.button2.Text = "View/Manage/Invoke Tasks";
|
||||
this.button2.UseVisualStyleBackColor = true;
|
||||
this.button2.Click += new System.EventHandler(this.button2_Click);
|
||||
//
|
||||
// Start
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 20F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(455, 260);
|
||||
this.Controls.Add(this.button2);
|
||||
this.Controls.Add(this.State);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.button1);
|
||||
this.Font = new System.Drawing.Font("SimSun", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.MaximizeBox = false;
|
||||
this.Name = "Start";
|
||||
this.Text = "EasySpider: NoCode Visual Web Crawler";
|
||||
this.Load += new System.EventHandler(this.Start_Load);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
private System.Windows.Forms.Button button1;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Label State;
|
||||
private System.Windows.Forms.Button button2;
|
||||
}
|
||||
}
|
@ -1,263 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using OpenQA.Selenium;
|
||||
using OpenQA.Selenium.Chrome;
|
||||
using OpenQA.Selenium.Interactions;
|
||||
using OpenQA.Selenium.Internal;
|
||||
using OpenQA.Selenium.Support;
|
||||
using Fleck;
|
||||
using Newtonsoft.Json;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Diagnostics;
|
||||
using System.Threading;
|
||||
|
||||
namespace EasySpider
|
||||
{
|
||||
public partial class Start : Form
|
||||
{
|
||||
public static IWebDriver browser;
|
||||
public static IWebSocketConnection socket_start; //输入网址页面的socket
|
||||
public static IWebSocketConnection socket_window; //正式使用的窗口的socket
|
||||
public static IWebSocketConnection socket_flowchart; //流程图的socket
|
||||
public static WebSocketServer server;
|
||||
public static IntPtr chromeId;
|
||||
public static string[] links;
|
||||
public Flow fr;
|
||||
public string serviceListUrl = PublicVariable.frontEndAddress + "/serviceList.html?backEndAddressServiceWrapper=" + PublicVariable.backEndAddress;
|
||||
|
||||
[System.Runtime.InteropServices.DllImportAttribute("user32.dll", EntryPoint = "MoveWindow")]
|
||||
public static extern bool MoveWindow(System.IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
public static extern IntPtr GetForegroundWindow();
|
||||
[System.Runtime.InteropServices.DllImport("user32.dll")]
|
||||
public static extern int SetForegroundWindow(IntPtr hwnd);
|
||||
|
||||
[DllImport("user32", EntryPoint = "GetWindowThreadProcessId")]
|
||||
private static extern int GetWindowThreadProcessId(IntPtr hwnd, out int pid);
|
||||
|
||||
[DllImport("user32.dll", EntryPoint = "SendMessage", SetLastError = true, CharSet = CharSet.Auto)]
|
||||
private static extern int SendMessage(IntPtr hwnd, uint wMsg, int wParam, int lParam);
|
||||
[DllImport("user32.dll")]
|
||||
private extern static bool SwapMouseButton(bool fSwap);
|
||||
[DllImport("user32.dll", SetLastError = true)]
|
||||
static extern void SwitchToThisWindow(IntPtr hWnd, bool fAltTab);
|
||||
|
||||
[DllImport("user32.dll", EntryPoint = "ShowWindow", CharSet = CharSet.Auto)]
|
||||
public static extern int ShowWindow(IntPtr hwnd, int nCmdShow);
|
||||
|
||||
const int WM_SYSCOMMAND = 0x0112;
|
||||
const int SC_CLOSE = 0xF060;
|
||||
const int SC_MINIMIZE = 0xF020;
|
||||
const int SC_MAXIMIZE = 0xF030;
|
||||
const int SC_RESTORE = 0xF120;
|
||||
|
||||
public Start()
|
||||
{
|
||||
InitializeComponent();
|
||||
PublicVariable.start = this;
|
||||
}
|
||||
|
||||
private void Start_Load(object sender, EventArgs e)
|
||||
{
|
||||
//string title = (string)Scripts().ExecuteScript("return document.title");
|
||||
server = new WebSocketServer("ws://0.0.0.0:8084");
|
||||
server.Start(socke =>
|
||||
{
|
||||
socke.OnOpen = () =>
|
||||
{
|
||||
BeginInvoke(new ConnectionChange(ModifyState), new object[] { "Connected to the browser, can start now." });
|
||||
};
|
||||
socke.OnClose = () =>
|
||||
{
|
||||
//BeginInvoke(new ConnectionChange(ModifyState), new object[] { "与浏览器连接已断开。" });
|
||||
};
|
||||
socke.OnMessage = message =>
|
||||
{
|
||||
|
||||
Msg msg = JsonConvert.DeserializeObject<Msg>(message);//result为上面的Json数据
|
||||
//处理连接操作
|
||||
if (msg.type == 0)//如果是第一次连接操作,设定socket
|
||||
{
|
||||
if (msg.message.id == 0)
|
||||
{
|
||||
socket_window = socke;
|
||||
Console.WriteLine("Socket Window Connected.");
|
||||
}
|
||||
else if (msg.message.id == 1)
|
||||
{
|
||||
socket_start = socke;
|
||||
Console.WriteLine("Socket Start Connected.");
|
||||
}
|
||||
else
|
||||
{
|
||||
socket_flowchart = socke;
|
||||
Console.WriteLine("Socket Flowchart Connected.");
|
||||
//发送打开网页指令
|
||||
//FlowMessage fmsg = JsonConvert.DeserializeObject<FlowMessage>("{\"type\":0,\"data\":{\"option\":1,\"parameters\":{\"url\":\"https://www.baidu.com\"}}}");
|
||||
//fmsg.data.parameters.url = links[0];
|
||||
//string json = JsonConvert.SerializeObject(fmsg);
|
||||
//socket_flowchart.Send(json);
|
||||
}
|
||||
}
|
||||
else //其他情况放在进程外处理
|
||||
{
|
||||
try
|
||||
{
|
||||
BeginInvoke(new GetMessage(HandleEvent), new object[] { message });
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
});
|
||||
try
|
||||
{
|
||||
SendKeys.Send("+");
|
||||
SendKeys.Send("+"); //测试是否能正常使用输入模块
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
MessageBox.Show("Initialization failed, please quit anti-virus softwares such as 360!");
|
||||
Application.Exit();
|
||||
}
|
||||
}
|
||||
|
||||
delegate void ConnectionChange(object input);//委托
|
||||
delegate void GetMessage(object input);
|
||||
|
||||
//正式处理程序入口
|
||||
public void HandleEvent(object input)
|
||||
{
|
||||
|
||||
Msg msg = JsonConvert.DeserializeObject<Msg>(input.ToString());//result为上面的Json数据
|
||||
if (msg.type == 1) //开始的时候输入网址
|
||||
{
|
||||
chromeId = GetForegroundWindow(); //记录下所在浏览器的进程Id号
|
||||
Console.WriteLine(chromeId);
|
||||
Console.WriteLine();
|
||||
//links = msg.message.links.Split(new string[] { "\n" }, StringSplitOptions.None);
|
||||
//List<string> list = links.ToList();
|
||||
//int l = links.Length;
|
||||
//if (links[l - 1].Length == 0)//如果最后一行是空行则删掉
|
||||
//{
|
||||
// list.RemoveAt(l - 1);
|
||||
//}
|
||||
//links = list.ToArray();
|
||||
//if (browser != null)
|
||||
//{
|
||||
// browser.Navigate().GoToUrl(links[0]);
|
||||
//}
|
||||
int width = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Size.Width;
|
||||
int height = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Size.Height;
|
||||
SendMessage(chromeId, WM_SYSCOMMAND, SC_RESTORE, 0); // 最大化
|
||||
MoveWindow(chromeId, 0, Convert.ToInt32(height * PublicVariable.ratio) - 120, width, 120 + Convert.ToInt32(height * (1.0 - PublicVariable.ratio)), true);
|
||||
if(fr!=null)
|
||||
{
|
||||
if (msg.message.id != -1) //读取服务流程,不是新增的时候
|
||||
{
|
||||
fr.chromeBrowser.Load(Flow.flowChartUrl + msg.message.id.ToString() + "&backEndAddressServiceWrapper=" + PublicVariable.backEndAddress);
|
||||
}
|
||||
//SwapMouseButton(true);
|
||||
fr.Show();
|
||||
}
|
||||
Hide();
|
||||
//SwitchToThisWindow(chromeId,true);
|
||||
//ShowWindow(System.UIntPtr(browser.CurrentWindowHandle),2);
|
||||
SetForegroundWindow(Start.chromeId); //打开流程图窗口后将chrome窗口显示到最前方
|
||||
SetForegroundWindow(Handle); //打开流程图窗口后将chrome窗口显示到最前方
|
||||
SetForegroundWindow(Start.chromeId); //打开流程图窗口后将chrome窗口显示到最前方
|
||||
//MouseHelper.SetCursorPos(400, Convert.ToInt32(height * PublicVariable.ratio) - 110);
|
||||
//MouseHelper.mouse_event(MouseHelper.MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0);
|
||||
|
||||
//MouseHelper.mouse_event(MouseHelper.MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0);
|
||||
}
|
||||
else if (msg.type == 2)
|
||||
{
|
||||
try
|
||||
{
|
||||
SendKeys.Send(msg.message.keyboardStr);
|
||||
SendKeys.Send("+");
|
||||
SendKeys.Send("+"); //两个shift是为了防止有人按用中文输入法输入了英文按了回车,这样切换两次输入法就可以达到效果
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
MessageBox.Show("Input form/textbox failed, please quit anti-virus softwares such as 360!");
|
||||
}
|
||||
|
||||
}
|
||||
else if (msg.type == 3)
|
||||
{
|
||||
try
|
||||
{ //null reference error, see later
|
||||
if (msg.from == 0)
|
||||
{
|
||||
socket_flowchart.Send(msg.message.pipe); //直接把消息转接
|
||||
}
|
||||
else
|
||||
{
|
||||
socket_window.Send(msg.message.pipe);
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
else if (msg.type == 5)
|
||||
{
|
||||
string FileName = Application.StartupPath + @"/Chrome/easyspider_executestage.exe"; //启动的应用程序名称
|
||||
string arguments = msg.message.id.ToString() + " " + PublicVariable.backEndAddress;
|
||||
Process.Start(FileName, arguments); //启动执行程序
|
||||
}
|
||||
}
|
||||
|
||||
public void ModifyState(object input)
|
||||
{
|
||||
State.Text = (string)input;
|
||||
}
|
||||
|
||||
|
||||
public static IJavaScriptExecutor Scripts()
|
||||
{
|
||||
return (IJavaScriptExecutor)browser;
|
||||
}
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
fr = new Flow(); //先创造流程图界面,暂时隐藏不显示
|
||||
fr.Show();
|
||||
//fr.Hide();
|
||||
State.Text = "Loading...";
|
||||
ChromeOptions options = new ChromeOptions();
|
||||
options.AddExtension(Application.StartupPath + @"/EasySpider.crx");
|
||||
browser = new ChromeDriver(Application.StartupPath +@"/Chrome", options);
|
||||
browser.Navigate().GoToUrl(serviceListUrl); //默认可以修改服务
|
||||
//ProcessStartInfo startInfo = new ProcessStartInfo();
|
||||
//startInfo.FileName = Application.StartupPath + @"/Chrome/chrome.exe"; //启动的应用程序名称
|
||||
//SwapMouseButton(false);//此时此刻的鼠标应该是默认状态
|
||||
//PublicVariable.chrome = Process.Start(startInfo);
|
||||
//browser.Navigate().GoToUrl("file:///Start.html");
|
||||
}
|
||||
|
||||
private void button2_Click(object sender, EventArgs e)
|
||||
{
|
||||
Flow fr2 = new Flow(serviceListUrl+"&type=1"); //加载的页面不可增加和修改服务
|
||||
fr2.closedriver = false;
|
||||
fr2.WindowState = FormWindowState.Maximized; //最大化窗口
|
||||
fr2.Show();
|
||||
Hide();
|
||||
}
|
||||
}
|
||||
}
|
@ -1,408 +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>
|
||||
AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAD/////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////7+/v/+/v7//v7+///////+/v7//v7+////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////v7+//7+/v/+/v7/////////
|
||||
/////////////////////////v7+//7+/v//////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////////////////////////////////////7+
|
||||
/v/+/v7//v7+///////+/v7//v7+//////////////////7+/v/+/v7//v7+////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////+/v7//v7+/////////////v7+//7+/v/+/v7////////////+/v7//v7+//7+
|
||||
/v//////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////v7+////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////+/v7//v7+////
|
||||
/////////v7+//7+/v//////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////7+/v//////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////v7+//7+/v//////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////v7+//7+/v/+/v7////////////////////////////+/v7/+vr6/5eX
|
||||
l/+YmJj/+vr6//7+/v//////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////7+/v/+/v7/////////////////////////
|
||||
///9/f3/4uLi/0lJSf8AAAD/AAAA/0lJSf/j4+P//f39////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////9/f3/ubm5/xkZGf8BAQH/AAAA/wAAAP8BAQH/GRkZ/7m5uf/+/v7//v7+////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////9/f3/kpKS/wYGBv8AAAD/AAAA/wAAAP8AAAD/AAAA/wEB
|
||||
Af8GBgb/kpKS//7+/v/+/v7/////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////9/f3/hoaG/wICAv8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wICAv+FhYX//f39////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////////////////////7+/v/+/v7/q6ur/wQE
|
||||
BP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AgIC/6ysrP/+/v7/////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///+/v7/9PT0/x8fH/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wEB
|
||||
Af8dHR3/9fX1////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////v7+/7W1tf8AAAD/AAAA/wICAv8aGhr/AwMD/wAAAP8AAAD/AAAA/wAA
|
||||
AP8EBAT/Ghoa/wICAv8AAAD/AAAA/7a2tv//////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////7+/v+RkZH/AAAA/wAAAP8gICD/+/v7/9fX
|
||||
1/9UVFT/AgIC/wICAv9VVVX/2NjY//v7+/8fHx//AAAA/wAAAP+SkpL/////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////+/v7/mpqa/wAA
|
||||
AP8AAAD/Nzc3//7+/v/+/v7/ysrK/8TExP/Dw8P/ycnJ//7+/v/9/f3/ODg4/wAAAP8AAAD/mpqa////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////v7+/8PDw/8AAAD/AAAA/zU1Nf/+/v7//v7+/83Nzf+Wlpb/lpaW/87Ozv/+/v7//f39/zU1
|
||||
Nf8AAAD/AAAA/8PDw///////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////7+/v/19fX/EBAQ/wAAAP8YGBj/4uLi/6mpqf8tLS3/AgIC/wEB
|
||||
Af8tLS3/qqqq/+Hh4f8YGBj/AAAA/xAQEP/19fX/////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////v7+//7+/v/+/v7//v7+/1lZWf8AAAD/AQEB/wMD
|
||||
A/8DAwP/Li4u/2xsbP9vb2//NDQ0/wICAv8DAwP/AAAA/wAAAP9ZWVn//f39////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////////////////////7+/v/+/v7/////////
|
||||
//+0tLT/AAAA/wAAAP8JCQn/np6e/+/v7/+1tbX/srKy/+7u7v+qqqr/DAwM/wAAAP8BAQH/tLS0////
|
||||
//////////////7+/v/+/v7/////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///+/v7//v7+////////////+Pj4/x4eHv8CAgL/mJiY/8XFxf8fHx//AQEB/wAAAP8aGhr/vr6+/6Wl
|
||||
pf8BAQH/HR0d//j4+P/////////////////+/v7//v7+////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////7+/v99fX3/LS0t/+bm5v8YGBj/AAAA/wAA
|
||||
AP8AAAD/AAAA/xQUFP/j4+P/MjIy/319ff/9/f3/////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////+/v7/3t7e/4GB
|
||||
gf+BgYH/AQEB/wAAAP8AAAD/AAAA/wAAAP8AAAD/enp6/4WFhf/e3t7//v7+////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////39/f/n5+f/MzMz/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/zIyMv/o6Oj//f39////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////+/v7//v7+////
|
||||
///////////////////////////////////+/v7/7+/v/wcHB/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8HBwf/8fHx//7+/v//////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////v7+//7+/v///////////////////////////////////////f39/9jY2P+IiIj/fX19/zEx
|
||||
Mf8ICAj/CAgI/y4uLv99fX3/iIiI/9nZ2f/+/v7/////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////////////////////////////////////Hx
|
||||
8f9mZmb/KSkp/zY2Nv+ioqL/QUFB/z09Pf+kpKT/PDw8/ygoKP9oaGj/8fHx//7+/v//////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///+/v7//v7+//7+/v+CgoL/BwcH/wcHB/8BAQH/DQ0N/7Gxsf+rq6v/Dg4O/wEBAf8GBgb/BwcH/4OD
|
||||
g//9/f3//v7+////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///+/v7//v7+//7+/v/+/v7//v7+//j4+P/29vb/LCws/wcHB/8HBwf/AAAA/wMDA/9lZWX/Y2Nj/wAA
|
||||
AP8AAAD/BgYG/wcHB/8sLCz/9fX1//f39//+/v7//v7+//7+/v/+/v7//v7+////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////v7+//Pz8//X19f/vr6+/4iIiP8yMjL/srKy/wEBAf8GBgb/BAQE/wEB
|
||||
Af8nJyf/aGho/2FhYf8lJSX/AQEB/wcHB/8HBwf/AQEB/7Kysv80NDT/iIiI/729vf/X19f/8vLy//7+
|
||||
/v//////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////6Ojo/1RUVP8FBQX/AAAA/wAAAP8AAAD/AgIC/6Cg
|
||||
oP/V1dX/rq6u/62trf+rq6v/ioqK/05OTv9QUFD/kJCQ/7CwsP+pqan/rq6u/9XV1f+fn5//AwMD/wAA
|
||||
AP8AAAD/AAAA/wYGBv9UVFT/6enp//7+/v//////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////+vr6/z8/P/8BAQH/AAAA/wAA
|
||||
AP8AAAD/AAAA/wcHB/+vr6//+fn5/xQUFP8ICAj/CAgI/wcHB/8JCQn/CAgI/wcHB/8HBwf/CAgI/xQU
|
||||
FP/4+Pj/sLCw/wYGBv8AAAD/AAAA/wAAAP8AAAD/AAAA/0BAQP/6+vr/////////////////////////
|
||||
/////////////////////////v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+////////////////////
|
||||
///////////////////////////////////////////////////////////////////+/v7//v7+/6am
|
||||
pv8AAAD/AAAA/wAAAP8AAAD/AAAA/wEBAf+Li4v//v7+//z8/P++vr7/v7+//4ODg/95eXn/2NjY/9LS
|
||||
0v9ycnL/eXl5/8DAwP+9vb3//Pz8//39/f+Li4v/AQEB/wAAAP8AAAD/AAAA/wAAAP8AAAD/p6en//7+
|
||||
/v////////////////////////////////////////////7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+
|
||||
/v//////////////////////////////////////////////////////////////////////////////
|
||||
/////////v7+//z8/P86Ojr/AAAA/wAAAP8AAAD/AAAA/wEBAf9QUFD/+/v7//7+/v/q6ur/GBgY/wkJ
|
||||
Cf+ampr//f39//7+/v/+/v7//f39/5mZmf8ICAj/GBgY/+vr6//+/v7/+vr6/09PT/8BAQH/AAAA/wAA
|
||||
AP8AAAD/AAAA/zo6Ov/8/Pz/////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////7+/v/c3Nz/BQUF/wAAAP8AAAD/AAAA/wgICP9nZ2f/8vLy//7+
|
||||
/v/+/v7/pqam/wAAAP8BAQH/m5ub//7+/v////////////////+ampr/AAAA/wEBAf+mpqb//v7+//7+
|
||||
/v/y8vL/Z2dn/wgICP8BAQH/AAAA/wAAAP8EBAT/3Nzc////////////////////////////////////
|
||||
///////////////////////////////////+/v7//v7+////////////////////////////////////
|
||||
///////////////////////////////////////////////////+/v7/+fn5/93d3f/Gxsb/vLy8/8nJ
|
||||
yf/v7+///f39//7+/v///////f39/0RERP8AAAD/AgIC/+Dg4P//////////////////////39/f/wEB
|
||||
Af8AAAD/Q0ND//39/f/+/v7//v7+//39/f/v7+//ycnJ/729vf/Gxsb/3Nzc//n5+f//////////////
|
||||
/////////////////////////////////////////////////////////v7+//7+/v//////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////+/v7//v7+/7y8vP8BAQH/AAAA/zMzM//9/f3/////////
|
||||
//////////////39/f80NDT/AAAA/wICAv+8vLz//v7+////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////7+/v/+/v7//v7+/+jo6P8lJSX/AAAA/wEB
|
||||
Af+Dg4P//v7+///////////////////////+/v7/g4OD/wEBAf8AAAD/JCQk/+rq6v/+/v7/////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////+/v7//f39/+np
|
||||
6f89PT3/AAAA/wAAAP8AAAD/y8vL//7+/v///////////////////////////8vLy/8AAAD/AAAA/wAA
|
||||
AP86Ojr/6enp////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///+/v7//f39/8jIyP8oKCj/AAAA/wEBAf8sLCz/DQ0N//j4+P/+/v7//v7+//7+/v//////////////
|
||||
///39/f/Dg4O/ywsLP8CAgL/AAAA/ykpKf/IyMj//v7+//7+/v////////////7+/v/+/v7/////////
|
||||
//////////////////////////////////////////////////////////////7+/v/+/v7/////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////7+/v/9/f3/5+fn/29vb/8HBwf/AAAA/wEBAf9NTU3/2NjY/ysrK//+/v7///////7+
|
||||
/v/+/v7//////////////////f39/ysrK//Y2Nj/TU1N/wEBAf8AAAD/BgYG/25ubv/o6Oj//f39//7+
|
||||
/v/+/v7//v7+/////////////v7+//7+/v/+/v7//v7+/////////////v7+//7+/v/+/v7/////////
|
||||
///+/v7//v7+//7+/v//////////////////////////////////////////////////////////////
|
||||
//////////////////////////////39/f/q6ur/fHx8/xAQEP8BAQH/AgIC/xISEv8qKir/9vb2//T0
|
||||
9P86Ojr//v7+///////+/v7//v7+//////////////////39/f85OTn/8/Pz//X19f8qKir/ExMT/wEB
|
||||
Af8AAAD/EBAQ/3x8fP/q6ur//v7+//7+/v////////////7+/v/+/v7//v7+//7+/v////////////7+
|
||||
/v/+/v7//v7+//////////////////7+/v/+/v7/////////////////////////////////////////
|
||||
///////////////////////////////////+/v7//f39//Ly8v+CgoL/EhIS/wICAv8BAQH/CAgI/62t
|
||||
rf+rq6v/cXFx//7+/v/9/f3/QUFB//39/f/+/v7////////////////////////////9/f3/QUFB//39
|
||||
/f/+/v7/cXFx/6urq/+tra3/CAgI/wEBAf8CAgL/ExMT/4KCgv/x8fH//f39////////////////////
|
||||
///////////////////+/v7//v7+//7+/v//////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////+/v7//f39/7S0tP8iIiL/AQEB/y4u
|
||||
Lv9mZmb/AgIC/2ZmZv/9/f3/3t7e/7a2tv/+/v7//f39/4uLi//8/Pz//v7+////////////////////
|
||||
/////////Pz8/4uLi//9/f3//v7+/7e3t//e3t7//f39/2ZmZv8CAgL/ZmZm/y4uLv8CAgL/IiIi/7Oz
|
||||
s//9/f3//v7+//7+/v///////////////////////v7+//7+/v/+/v7/////////////////////////
|
||||
///////////////////////////////////////////////////////////////////+/v7/+vr6/3t7
|
||||
e/8FBQX/ExMT/6Kiov/5+fn/ZWVl/wQEBP/U1NT//v7+//7+/v/+/v7//v7+//7+/v/9/f3//f39////
|
||||
//////////////////////////////7+/v/9/f3//v7+//7+/v/+/v7//v7+///////U1NT/BAQE/2Vl
|
||||
Zf/5+fn/oqKi/xISEv8FBQX/enp6//r6+v/+/v7//v7+////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///+/v7/+/v7/2xsbP8CAgL/BQUF/8HBwf/9/f3/9/f3/xYWFv83Nzf//f39////////////////////
|
||||
///+/v7//v7+////////////////////////////////////////////////////////////////////
|
||||
/////////Pz8/zg4OP8YGBj/+Pj4//7+/v/BwcH/BwcH/wMDA/9sbGz//Pz8//7+/v//////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////f39/5WVlf8RERH/YWFh/1JSUv/+/v7//v7+/9LS0v8BAQH/fn5+//39
|
||||
/f//////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////9+fn7/AgIC/9LS0v///////v7+/1NTU/9iYmL/ExMT/5SU
|
||||
lP/9/f3///////////////////////////////////////////////////////////////////////7+
|
||||
/v/+/v7//v7+/////////////////////////////////9/f3/8VFRX/vLy8/5aWlv+Ojo7//v7+//7+
|
||||
/v+qqqr/AQEB/6qqqv/+/v7/////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////qamp/wEBAf+rq6v///////7+
|
||||
/v+Ojo7/lpaW/7y8vP8WFhb/39/f//39/f//////////////////////////////////////////////
|
||||
//////////////7+/v/+/v7//v7+//7+/v////////////////////////////39/f9oaGj/dnZ2//z8
|
||||
/P+cnJz/n5+f////////////lZWV/wAAAP+4uLj/////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////7e3
|
||||
t/8AAAD/lpaW///////+/v7/n5+f/5ycnP/9/f3/dnZ2/2hoaP/9/f3/////////////////////////
|
||||
///////////////////////////////////+/v7//v7+//7+/v/+/v7/////////////////////////
|
||||
///9/f3/Xl5e/+rq6v/+/v7/sbGx/5eXl////////////5OTk/8BAQH/oKCg//39/f//////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////+hoaH/AQEB/5OTk//+/v7//v7+/5aWlv+wsLD//v7+/+np6f9eXl7//f39////
|
||||
///////////////////////////////////////////////////+/v7//v7+//7+/v//////////////
|
||||
/////////////////////////v7+//39/f/9/f3//v7+/+3t7f/Z2dn///////////+enp7/Hh4e/11d
|
||||
Xf/9/f3///////7+/v/+/v7//v7+////////////////////////////////////////////////////
|
||||
///////////////////////////////////9/f3/XV1d/x4eHv+fn5///v7+//7+/v/Z2dn/7e3t//7+
|
||||
/v/+/v7//f39//7+/v///////////////////////////////////////////////////////v7+//7+
|
||||
/v/+/v7//v7+//7+/v/+/v7////////////////////////////////////////////+/v7//v7+////
|
||||
////////t7e3/3R0dP9LS0v/0dHR//7+/v/+/v7//v7+//7+/v//////////////////////////////
|
||||
//////////////////////////////////////////////7+/v/+/v7/0dHR/0tLS/9zc3P/t7e3////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////7+/v/+/v7//v7+//7+/v/+/v7//v7+////////////////////////////////////
|
||||
/////////////////////////////9ra2v9ra2v/5+fn/1RUVP/c3Nz//v7+////////////////////
|
||||
//////////////////////////////////////////////////////////////7+/v/9/f3/3Nzc/1RU
|
||||
VP/o6Oj/a2tr/9ra2v//////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////+/v7//v7+//7+/v/+/v7//v7+////////////////////
|
||||
///////////////////////////////////////////////////4+Pj/XV1d//z8/P/r6+v/bGxs/9HR
|
||||
0f//////////////////////////////////////////////////////////////////////////////
|
||||
///+/v7/0dHR/2tra//r6+v//f39/1xcXP/4+Pj/////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////+/v7//v7+//7+
|
||||
/v///////////////////////////////////////////////////////////////////////v7+/19f
|
||||
X//8/Pz///////7+/v/8/Pz/////////////////////////////////////////////////////////
|
||||
/////////////////////////v7+//z8/P/8/Pz//v7+//v7+/9gYGD//f39////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////v7+//7+/v/+/v7///////////////////////////////////////7+/v/+/v7//v7+////
|
||||
//////////////7+/v+4uLj/+fn5///////+/v7//v7+////////////////////////////////////
|
||||
///////////////////////////////////////////////////+/v7//v7+//7+/v/5+fn/t7e3//39
|
||||
/f//////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////v7+//7+/v/+/v7//v7+//7+
|
||||
/v/+/v7//v7+//7+/v/////////////////+/v7//v7+//7+/v//////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////v7+//7+/v/+/v7/////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////////////////////////////////////7+
|
||||
/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v//////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////+/v7//v7+//7+/v/+/v7//v7+//7+
|
||||
/v/+/v7/////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////v7+//7+/v/+/v7/////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////7+/v/+/v7//v7+//7+/v/+/v7//v7+////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///+/v7//v7+////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////+/v7//v7+//7+/v/+/v7/////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////v7+//7+/v//////////////////////////////////////////////
|
||||
////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
Binary file not shown.
Before Width: | Height: | Size: 17 KiB |
@ -1,10 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="cef.redist.x64" version="79.1.35" targetFramework="net472" />
|
||||
<package id="cef.redist.x86" version="79.1.35" targetFramework="net472" />
|
||||
<package id="CefSharp.Common" version="79.1.350" targetFramework="net472" />
|
||||
<package id="CefSharp.WinForms" version="79.1.350" targetFramework="net472" />
|
||||
<package id="Fleck" version="1.1.0" targetFramework="net472" />
|
||||
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net472" />
|
||||
<package id="Selenium.WebDriver" version="3.141.0" targetFramework="net472" />
|
||||
</packages>
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,25 +0,0 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.3.32929.385
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "shortcut", "shortcut\shortcut.csproj", "{F7286090-1B9A-456C-A0C6-DB86E17C3C47}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{F7286090-1B9A-456C-A0C6-DB86E17C3C47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{F7286090-1B9A-456C-A0C6-DB86E17C3C47}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{F7286090-1B9A-456C-A0C6-DB86E17C3C47}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{F7286090-1B9A-456C-A0C6-DB86E17C3C47}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {36A0EC28-3049-411D-AB6F-B20A562EE31D}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
|
||||
</startup>
|
||||
</configuration>
|
48
C#/shortcut/shortcut/Form1.Designer.cs
generated
48
C#/shortcut/shortcut/Form1.Designer.cs
generated
@ -1,48 +0,0 @@
|
||||
namespace shortcut
|
||||
{
|
||||
partial class Form1
|
||||
{
|
||||
/// <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.SuspendLayout();
|
||||
//
|
||||
// Form1
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(800, 450);
|
||||
this.Name = "Form1";
|
||||
this.Text = "Form1";
|
||||
this.Load += new System.EventHandler(this.Form1_Load);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
@ -1,26 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace shortcut
|
||||
{
|
||||
public partial class Form1 : Form
|
||||
{
|
||||
public Form1()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void Form1_Load(object sender, EventArgs e)
|
||||
{
|
||||
this.Hide();
|
||||
Application.Exit();
|
||||
}
|
||||
}
|
||||
}
|
@ -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,28 +0,0 @@
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace shortcut
|
||||
{
|
||||
internal static class Program
|
||||
{
|
||||
/// <summary>
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
if (new DirectoryInfo(Application.StartupPath + "\\EasySpider\\").Exists)
|
||||
Process.Start(Application.StartupPath + "\\EasySpider\\EasySpider.exe");
|
||||
else
|
||||
Process.Start(Application.StartupPath + "\\Debug\\EasySpider.exe");
|
||||
}
|
||||
}
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("shortcut")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("shortcut")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2023")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("f7286090-1b9a-456c-a0c6-db86e17c3c47")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
@ -1,71 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace shortcut.Properties
|
||||
{
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources
|
||||
{
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources()
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager
|
||||
{
|
||||
get
|
||||
{
|
||||
if ((resourceMan == null))
|
||||
{
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("shortcut.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture
|
||||
{
|
||||
get
|
||||
{
|
||||
return resourceCulture;
|
||||
}
|
||||
set
|
||||
{
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,117 +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.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: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" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
</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" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
30
C#/shortcut/shortcut/Properties/Settings.Designer.cs
generated
30
C#/shortcut/shortcut/Properties/Settings.Designer.cs
generated
@ -1,30 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace shortcut.Properties
|
||||
{
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
|
||||
{
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default
|
||||
{
|
||||
get
|
||||
{
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
|
||||
<Profiles>
|
||||
<Profile Name="(Default)" />
|
||||
</Profiles>
|
||||
<Settings />
|
||||
</SettingsFile>
|
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
|
||||
</startup>
|
||||
</configuration>
|
Binary file not shown.
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
|
||||
</startup>
|
||||
</configuration>
|
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 17 KiB |
@ -1,4 +0,0 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1 +0,0 @@
|
||||
8069502011d0681850e57a53d5a1673222f430a6
|
@ -1,11 +0,0 @@
|
||||
C:\Users\q9823\source\repos\shortcut\shortcut\obj\Debug\shortcut.csproj.AssemblyReference.cache
|
||||
C:\Users\q9823\source\repos\shortcut\shortcut\obj\Debug\shortcut.csproj.SuggestedBindingRedirects.cache
|
||||
C:\Users\q9823\source\repos\shortcut\shortcut\obj\Debug\shortcut.Form1.resources
|
||||
C:\Users\q9823\source\repos\shortcut\shortcut\obj\Debug\shortcut.Properties.Resources.resources
|
||||
C:\Users\q9823\source\repos\shortcut\shortcut\obj\Debug\shortcut.csproj.GenerateResource.cache
|
||||
C:\Users\q9823\source\repos\shortcut\shortcut\obj\Debug\shortcut.csproj.CoreCompileInputs.cache
|
||||
C:\Users\q9823\source\repos\shortcut\shortcut\bin\Debug\shortcut.exe.config
|
||||
C:\Users\q9823\source\repos\shortcut\shortcut\bin\Debug\shortcut.exe
|
||||
C:\Users\q9823\source\repos\shortcut\shortcut\bin\Debug\shortcut.pdb
|
||||
C:\Users\q9823\source\repos\shortcut\shortcut\obj\Debug\shortcut.exe
|
||||
C:\Users\q9823\source\repos\shortcut\shortcut\obj\Debug\shortcut.pdb
|
Binary file not shown.
Binary file not shown.
@ -1,4 +0,0 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1 +0,0 @@
|
||||
a05b2efad1c492f69cfd9e73a7de2300da2b5b0d
|
@ -1,11 +0,0 @@
|
||||
C:\Users\q9823\source\repos\shortcut\shortcut\obj\Release\shortcut.csproj.AssemblyReference.cache
|
||||
C:\Users\q9823\source\repos\shortcut\shortcut\obj\Release\shortcut.csproj.SuggestedBindingRedirects.cache
|
||||
C:\Users\q9823\source\repos\shortcut\shortcut\obj\Release\shortcut.Form1.resources
|
||||
C:\Users\q9823\source\repos\shortcut\shortcut\obj\Release\shortcut.Properties.Resources.resources
|
||||
C:\Users\q9823\source\repos\shortcut\shortcut\obj\Release\shortcut.csproj.GenerateResource.cache
|
||||
C:\Users\q9823\source\repos\shortcut\shortcut\obj\Release\shortcut.csproj.CoreCompileInputs.cache
|
||||
C:\Users\q9823\source\repos\shortcut\shortcut\bin\Release\EasySpider_ShortCut.exe.config
|
||||
C:\Users\q9823\source\repos\shortcut\shortcut\bin\Release\EasySpider_ShortCut.exe
|
||||
C:\Users\q9823\source\repos\shortcut\shortcut\bin\Release\EasySpider_ShortCut.pdb
|
||||
C:\Users\q9823\source\repos\shortcut\shortcut\obj\Release\EasySpider_ShortCut.exe
|
||||
C:\Users\q9823\source\repos\shortcut\shortcut\obj\Release\EasySpider_ShortCut.pdb
|
Binary file not shown.
@ -1,89 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{F7286090-1B9A-456C-A0C6-DB86E17C3C47}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>shortcut</RootNamespace>
|
||||
<AssemblyName>EasySpider_ShortCut</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationIcon>favicon.ico</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Form1.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Form1.Designer.cs">
|
||||
<DependentUpon>Form1.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="Form1.resx">
|
||||
<DependentUpon>Form1.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="favicon.ico" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
7
ElectronJS/.gitignore
vendored
7
ElectronJS/.gitignore
vendored
@ -1,5 +1,10 @@
|
||||
node_modules
|
||||
out/
|
||||
chrome_win32/
|
||||
chrome_win64/
|
||||
chrome_linux64/
|
||||
chrome_macos/
|
||||
chrome_macos/
|
||||
user-data/
|
||||
user_data/
|
||||
Data/
|
||||
execution_instances/*.json
|
Binary file not shown.
Binary file not shown.
@ -2,17 +2,18 @@
|
||||
|
||||
Remember to update EasySpider.crx everytime the extension updates.
|
||||
|
||||
|
||||
|
||||
## Run Instruction
|
||||
|
||||
```
|
||||
npm install
|
||||
npm install @electron-forge/cli
|
||||
npm start
|
||||
```
|
||||
|
||||
## Package Instruction
|
||||
|
||||
```
|
||||
|
||||
npx electron-forge import
|
||||
npm run package
|
||||
```
|
||||
@ -21,4 +22,11 @@ optional:
|
||||
|
||||
```
|
||||
npm run make
|
||||
```
|
||||
```
|
||||
|
||||
## For windows x64
|
||||
打开下面两个cmd即可打包
|
||||
```
|
||||
package_win64.cmd
|
||||
clean_win64.cmd
|
||||
```
|
||||
|
9
ElectronJS/clean_win64.cmd
Normal file
9
ElectronJS/clean_win64.cmd
Normal file
@ -0,0 +1,9 @@
|
||||
move out\EasySpider-win32-x64 out\EasySpider
|
||||
rmdir /s /q out\EasySpider\resources\app\chrome_win32
|
||||
rmdir /s /q out\EasySpider\resources\app\Data
|
||||
rmdir /s /q out\EasySpider\resources\app\.idea
|
||||
rmdir/s /q out\EasySpider\resources\app\tasks
|
||||
rmdir/s /q out\EasySpider\resources\app\user-data
|
||||
rmdir /s /q out\EasySpider\resources\app\execution_instances
|
||||
rmdir /s /q ..\Releases\EasySpider_windows_amd64\EasySpider
|
||||
move out\EasySpider ..\Releases\EasySpider_windows_amd64\EasySpider
|
@ -1,6 +1 @@
|
||||
{
|
||||
"backend_port": 8074,
|
||||
"websocket_port": 8084,
|
||||
"backend_address": "http://localhost",
|
||||
"user_browser_config_path":""
|
||||
}
|
||||
{"webserver_address":"http://localhost","webserver_port":8074,"user_data_folder":"./user_data"}
|
File diff suppressed because one or more lines are too long
@ -1,740 +0,0 @@
|
||||
{
|
||||
"id": 1,
|
||||
"name": "eBay Names and Link Addresses - demo",
|
||||
"url": "https://www.ebay.com",
|
||||
"links": "https://www.ebay.com?ids=12",
|
||||
"containJudge": false,
|
||||
"desc": "https://www.ebay.com\neBay Names and Link Addresses - demo",
|
||||
"inputParameters": [
|
||||
{
|
||||
"id": 0,
|
||||
"name": "urlList_0",
|
||||
"nodeId": 1,
|
||||
"nodeName": "Open Page",
|
||||
"value": "https://www.ebay.com",
|
||||
"desc": "List of URLs to be collected, separated by \\n for multiple lines",
|
||||
"type": "string",
|
||||
"exampleValue": "https://www.ebay.com"
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"name": "inputText_1",
|
||||
"nodeName": "Input Text",
|
||||
"nodeId": 2,
|
||||
"desc": "The text to be entered, such as 'computer' at eBay search box",
|
||||
"type": "string",
|
||||
"exampleValue": "iPhone",
|
||||
"value": "iPhone"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"name": "loopTimes_Loop Click Next Page_2",
|
||||
"nodeId": 4,
|
||||
"nodeName": "Loop Click Next Page",
|
||||
"desc": "Number of loop executions, 0 means unlimited loops (until element not found)",
|
||||
"type": "int",
|
||||
"exampleValue": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"outputParameters": [
|
||||
{
|
||||
"id": 0,
|
||||
"name": "Name",
|
||||
"desc": "",
|
||||
"type": "string",
|
||||
"exampleValue": "Apple iPhone 11 - 128GB 64GB - GSM+CDMA Factory Unlocked \"Excellent' Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"name": "Link Address",
|
||||
"desc": "",
|
||||
"type": "string",
|
||||
"exampleValue": "https://www.ebay.com/itm/115398776875?epid=18045314698&hash=item1ade4d982b:g:BI4AAOSwo5Rij4S0&amdata=enc%3AAQAHAAAA4ELrFOtK9Q4ol28SIBCj8AlEyuoOswMlad9UdATAXLLXzCrNiXBXqGjK834mUeluTYl2fG4nLibLzPUvOxpTWXkmIyoL%2B14iExY93etuVl%2FBk3C5nIg00wVu4dhYbRF07x6Bsjvf78UyZkC23ZQNHj%2BdfhMp16XqtHjP4m%2Fu2AYs%2F6lcEVMwWKCOW8mLSUEznmhE3xbgOTKZY7vTkB%2BNqszgjnI%2Bj9FduDUmPyH%2ByboyhCEDQHEOnS6boubjzpbJ4gvRsNrBGqR3qcdh%2F1qqEGxETnzj8k%2FFaggVj5uyGRqf%7Ctkp%3ABFBMuoeqssJh"
|
||||
}
|
||||
],
|
||||
"graph": [
|
||||
{
|
||||
"index": 0,
|
||||
"id": 0,
|
||||
"parentId": 0,
|
||||
"type": -1,
|
||||
"option": 0,
|
||||
"title": "root",
|
||||
"sequence": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
],
|
||||
"parameters": {
|
||||
"history": 1,
|
||||
"tabIndex": 0,
|
||||
"useLoop": false,
|
||||
"xpath": "",
|
||||
"wait": 0
|
||||
},
|
||||
"isInLoop": false
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"index": 1,
|
||||
"parentId": 0,
|
||||
"type": 0,
|
||||
"option": 1,
|
||||
"title": "Open Page",
|
||||
"sequence": [],
|
||||
"isInLoop": false,
|
||||
"position": 0,
|
||||
"parameters": {
|
||||
"useLoop": false,
|
||||
"xpath": "",
|
||||
"wait": 0,
|
||||
"url": "https://www.ebay.com",
|
||||
"links": "https://www.ebay.com?ids=12",
|
||||
"scrollType": 0,
|
||||
"scrollCount": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"index": 2,
|
||||
"parentId": 0,
|
||||
"type": 0,
|
||||
"option": 4,
|
||||
"title": "Input Text",
|
||||
"sequence": [],
|
||||
"isInLoop": false,
|
||||
"position": 1,
|
||||
"parameters": {
|
||||
"history": 4,
|
||||
"tabIndex": -1,
|
||||
"useLoop": false,
|
||||
"xpath": "//*[@id=\"gh-ac\"]",
|
||||
"wait": 0,
|
||||
"value": "Personal Computer"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"index": 3,
|
||||
"parentId": 0,
|
||||
"type": 0,
|
||||
"option": 2,
|
||||
"title": "Click Element",
|
||||
"sequence": [],
|
||||
"isInLoop": false,
|
||||
"position": 2,
|
||||
"parameters": {
|
||||
"history": 4,
|
||||
"tabIndex": -1,
|
||||
"useLoop": false,
|
||||
"xpath": "//*[@id=\"gh-btn\"]",
|
||||
"wait": 0,
|
||||
"scrollType": 0,
|
||||
"scrollCount": 0,
|
||||
"paras": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"index": 4,
|
||||
"parentId": 0,
|
||||
"type": 1,
|
||||
"option": 8,
|
||||
"title": "Loop Click Next Page",
|
||||
"sequence": [
|
||||
6,
|
||||
5
|
||||
],
|
||||
"isInLoop": false,
|
||||
"position": 3,
|
||||
"parameters": {
|
||||
"history": 5,
|
||||
"tabIndex": -1,
|
||||
"useLoop": false,
|
||||
"xpath": "//*[contains(@class, \"pagination__next\")]",
|
||||
"wait": 0,
|
||||
"scrollType": 0,
|
||||
"scrollCount": 0,
|
||||
"loopType": 0,
|
||||
"pathList": "",
|
||||
"textList": "",
|
||||
"exitCount": 156,
|
||||
"historyWait": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"index": 5,
|
||||
"parentId": 4,
|
||||
"type": 0,
|
||||
"option": 2,
|
||||
"title": "Click Next",
|
||||
"sequence": [],
|
||||
"isInLoop": true,
|
||||
"position": 1,
|
||||
"parameters": {
|
||||
"history": 5,
|
||||
"tabIndex": -1,
|
||||
"useLoop": true,
|
||||
"xpath": "//*[contains(@class, \"pagination__next\")]",
|
||||
"wait": 0,
|
||||
"scrollType": 0,
|
||||
"scrollCount": 0,
|
||||
"paras": [],
|
||||
"loopType": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"index": 6,
|
||||
"parentId": 4,
|
||||
"type": 1,
|
||||
"option": 8,
|
||||
"title": "Loop Collection",
|
||||
"sequence": [
|
||||
7
|
||||
],
|
||||
"isInLoop": true,
|
||||
"position": 0,
|
||||
"parameters": {
|
||||
"history": 7,
|
||||
"tabIndex": -1,
|
||||
"useLoop": false,
|
||||
"xpath": "/html/body/div[8]/div[4]/div[2]/div[1]/div[2]/ul[1]/li/div[1]/div[2]/a[1]",
|
||||
"wait": 0,
|
||||
"scrollType": 0,
|
||||
"scrollCount": 0,
|
||||
"loopType": 1,
|
||||
"pathList": "",
|
||||
"textList": "",
|
||||
"exitCount": 0,
|
||||
"historyWait": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"index": 7,
|
||||
"parentId": 5,
|
||||
"type": 0,
|
||||
"option": 3,
|
||||
"title": "Collect Data",
|
||||
"sequence": [],
|
||||
"isInLoop": true,
|
||||
"position": 0,
|
||||
"parameters": {
|
||||
"history": 7,
|
||||
"tabIndex": -1,
|
||||
"useLoop": false,
|
||||
"xpath": "",
|
||||
"wait": 0,
|
||||
"paras": [
|
||||
{
|
||||
"nodeType": 1,
|
||||
"contentType": 0,
|
||||
"relative": true,
|
||||
"name": "Name",
|
||||
"desc": "",
|
||||
"relativeXpath": "",
|
||||
"exampleValues": [
|
||||
{
|
||||
"num": 0,
|
||||
"value": "Apple iPhone 11 - 128GB 64GB - GSM+CDMA Factory Unlocked \"Excellent' Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 1,
|
||||
"value": "Apple iPhone X A1901 - 64GB | 256GB - GSM Unlocked AT&T T-Mobile Metro CricketOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 2,
|
||||
"value": "Apple iPhone 11 - 64GB 128GB 256GB - Unlocked Smartphone Good Condition WarrantyOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 3,
|
||||
"value": "Apple iPhone 8 | 8 Plus 64GB 128GB 256GB GSM Unlocked ATT T-Mobile Metro CricketOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 4,
|
||||
"value": "Apple iPhone 11 - 64GB - All Colors - Fully Unlocked (CDMA+GSM) - Good ConditionOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 5,
|
||||
"value": "Apple iPhone XS Max - 64GB Used T-MobileOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 6,
|
||||
"value": "Apple iPhone 11 - 64GB 128GB 256GB - Unlocked - Excellent A+ Condition - UKOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 7,
|
||||
"value": "Apple iPhone 11 128GB Black Green Red Verizon Unlocked Mint ConditionOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 8,
|
||||
"value": "Apple iPhone XR - 64GB - All Colors - Fully Unlocked (CDMA+GSM) - Good ConditionOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 9,
|
||||
"value": "Apple iPhone 11 Pro, Pro Max Unlocked 64GB 256GB 512GBSmartphone UsedOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 10,
|
||||
"value": "Apple iPhone 12 Pro 128GB 256GB 512GB Unlocked All Colours Good ConditionOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 11,
|
||||
"value": "Apple iPhone SE (2020) A2275 - 128 GB - Space Gray Color - AT&T only- Beautiful!Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 12,
|
||||
"value": "Apple iPhone XR Unlocked Various Colors 64GB 128GB 256GB Smartphone UsedOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 13,
|
||||
"value": "Apple iPhone SE 2nd Gen 64|128|256GB 4G LTE 4.7 Verizon Unlocked T-Mobile AT&TOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 14,
|
||||
"value": "Apple iPhone 11 - 64GB 128GB 256GB - Unlocked - Very Good Condition - UK StockOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 15,
|
||||
"value": "Apple iPhone X - 64GB 256GB - Unlocked - Very Good Condition - All ColoursOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 16,
|
||||
"value": "Apple iPhone 8 - 64GB/256GB - Gold/Grey/ Silver - UNLOCKED - Excellent Grade AOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 17,
|
||||
"value": "iPhone 11 ProMax 256GB Unlocked Grey - Great Condition w/ ExtrasOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 18,
|
||||
"value": "Apple iPhone 11 Pro - 64GB 256GB 512GB - Unlocked - Excellent A+ Condition - UKOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 19,
|
||||
"value": "Apple iPhone 11 64GB 128GB Verizon T-Mobile AT&T Unlocked Good ConditionOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 20,
|
||||
"value": "Apple iPhone 11 Pro 64GB 256GB 512GB Unlocked All Colours Good ConditionOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 21,
|
||||
"value": "New ListingApple iPhone 11 - 64GB - Purple (Unlocked) A2111 (CDMA + GSM)Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 22,
|
||||
"value": "Apple iPhone 8 | 8 Plus 64GB 128GB 256GB GSM Unlocked ATT T-Mobile Metro CricketOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 23,
|
||||
"value": "Apple iPhone 11 Pro - 256GB - Gold (Unlocked)Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 24,
|
||||
"value": "Apple iPhone 11 Pro Max 64GB 256GB 512GB Unlocked Smartphone Good ConditionOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 25,
|
||||
"value": "Apple iPhone 11 - 128GB - Factory Unlocked - Good ConditionOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 26,
|
||||
"value": "Apple iPhone 7 - 32GB - All Colors - Unlocked - Good Condition Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 27,
|
||||
"value": "original Apple iPhone 1st Generation 8GB unlocked 2G GSM network work goodOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 28,
|
||||
"value": "Apple iPhone 11 - 64GB 128GB 256GB - Unlocked - Good Condition UK StockOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 29,
|
||||
"value": "Apple iPhone 7 - 32GB - Silver (Unlocked) A1660 (CDMA + GSM) Very Good!Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 30,
|
||||
"value": "Apple iPhone 11 64GB 128GB 256GB Unlocked All Colours Good ConditionOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 31,
|
||||
"value": "Apple iPhone XR 64GB 128GB 256GB - Unlocked Smartphone - Good Condition - UKOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 32,
|
||||
"value": "Apple iPhone 11 Pro Max - 64GB - Midnight Green (Unlocked) A2218 (CDMA + GSM)Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 33,
|
||||
"value": "Apple iPhone 11 Pro Max - 64GB 256GB 512GB - Unlocked - Excellent A+ ConditionOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 34,
|
||||
"value": "Apple iPhone 11 - 64GB / 128GB - Unlocked Smartphone - Very Good ConditionOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 35,
|
||||
"value": "Apple iPhone XS - 256GB - Silver (Unlocked) A1920 (CDMA + GSM) Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 36,
|
||||
"value": "Apple iPhone 13 - 128GB 256GB 512GB Unlocked All Colours Good ConditionOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 37,
|
||||
"value": "Apple iPhone 8 Plus 64GB Factory Unlocked Smartphone - ExcellentOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 38,
|
||||
"value": "iPhone 12 Pro Max 128GB GraphiteOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 39,
|
||||
"value": "Apple iPhone SE 1st Generation 16GB /32GB /64Gb /128GB Smartphone Unlocked #1B1 Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 40,
|
||||
"value": "New ListingApple iPhone 8 Plus - 64GB - Silver (UNLOCKED) USEDOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 41,
|
||||
"value": "Apple iPhone XS ,XS Max Unlocked Various Colors 64GB 256GB 512GB Smartphone UsedOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 42,
|
||||
"value": "Apple iPhone 11 64GB 128GB AT&T Sprint T-Mobile Unlocked Verizon GoodOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 43,
|
||||
"value": "Apple iPhone 11 Pro Max 256GB Midnight Green Unlocked ExcellentOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 44,
|
||||
"value": "Apple iPhone 11 Unlocked Various Colors 64GB 128GB 256GB Smartphone UsedOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 45,
|
||||
"value": "Apple iPhone XS - 256GB - All Colors - Unlocked (CDMA+GSM) - Very Good ConditionOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 46,
|
||||
"value": "Apple iPhone 11 - 64GB - Black (Unlocked) A2111 (CDMA + GSM)Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 47,
|
||||
"value": "Apple iPhone X Unlocked Various Colors 64GB 256GB Smartphone UsedOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 48,
|
||||
"value": "Apple iPhone 12 - 256GB - Blue (Unlocked)Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 49,
|
||||
"value": "Apple iPhone 12 - 64GB 128GB 256GB - Unlocked - 12 Months Warranty - Grade A+Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 50,
|
||||
"value": "Apple iPhone 12 64GB Factory Unlocked AT&T T-Mobile Verizon Good ConditionOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 51,
|
||||
"value": "Apple iPhone X - 64GB - All Colors - Fully Unlocked - Very Good Condition Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 52,
|
||||
"value": "Apple iPhone 6s Plus Unlocked Various Colors 16GB 64GB 128GB Smartphone UsedOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 53,
|
||||
"value": "Apple iPhone 11 - 64GB - All Colors - Fully Unlocked - Very Good Condition Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 54,
|
||||
"value": "Apple iPhone XR 64/128/256GB Fully Unlocked (GSM+CDMA) AT&T T-Mobile VerizonOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 55,
|
||||
"value": "Apple iPhone XR - 64GB - All Colors - Fully Unlocked - Very Good Condition Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 56,
|
||||
"value": "Apple iPhone XS Max 64GB 256GB 512GB Unlocked Smartphone Good RefurbishedOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 57,
|
||||
"value": "Apple iPhone 12 Pro Max 256GB Unlocked GoldOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 58,
|
||||
"value": "Apple iPhone X 64GB 256GB 4G LTE 5.8 Verizon Unlocked T-Mobile AT&T UltraOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 59,
|
||||
"value": "New ListingRead* Apple iPhone 12 mini - 128GB - Blue (Unlocked) A2176 ~52847Opens in a new window or tab"
|
||||
}
|
||||
],
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"nodeType": 2,
|
||||
"contentType": 0,
|
||||
"relative": true,
|
||||
"name": "Link Address",
|
||||
"desc": "",
|
||||
"relativeXpath": "",
|
||||
"exampleValues": [
|
||||
{
|
||||
"num": 0,
|
||||
"value": "https://www.ebay.com/itm/115398776875?epid=18045314698&hash=item1ade4d982b:g:BI4AAOSwo5Rij4S0&amdata=enc%3AAQAHAAAA4ELrFOtK9Q4ol28SIBCj8AlEyuoOswMlad9UdATAXLLXzCrNiXBXqGjK834mUeluTYl2fG4nLibLzPUvOxpTWXkmIyoL%2B14iExY93etuVl%2FBk3C5nIg00wVu4dhYbRF07x6Bsjvf78UyZkC23ZQNHj%2BdfhMp16XqtHjP4m%2Fu2AYs%2F6lcEVMwWKCOW8mLSUEznmhE3xbgOTKZY7vTkB%2BNqszgjnI%2Bj9FduDUmPyH%2ByboyhCEDQHEOnS6boubjzpbJ4gvRsNrBGqR3qcdh%2F1qqEGxETnzj8k%2FFaggVj5uyGRqf%7Ctkp%3ABFBMuoeqssJh"
|
||||
},
|
||||
{
|
||||
"num": 1,
|
||||
"value": "https://www.ebay.com/itm/275621347165?epid=4009565593&hash=item402c4fff5d:g:GksAAOSwon9jwKs4&amdata=enc%3AAQAHAAAA0LKRmqqWx5OPEZfa7A3aRP3L2DiuB9svO4VztlFXtjLC%2FP4%2BcWNWwEBZXnVqjo0shvJyPl%2FJU5%2B9QVJYor7ihcRRv22KXkWTYeocyxjU7G9txYQ3YcqpV7BlHspMpCuPCFkegCIs6dY3M4SAadrnjV2T7ucznx%2BG9VXBG1Qx6lb1x5eV1t8aITS%2FZazBVA%2BnyTH00%2BsKKPwXJucpAqS80gDlsCFzJCP7QvlAGXYdQBjx70MA2l3mFTH2T91oWWIpK%2BPp%2FckUDVlbJaGtWgfYmTU%3D%7Ctkp%3ABFBMuoeqssJh"
|
||||
},
|
||||
{
|
||||
"num": 2,
|
||||
"value": "https://www.ebay.com/itm/284427971922?epid=17034215590&hash=item42393a6d52:g:5N8AAOSwxGthKe4R&amdata=enc%3AAQAHAAAA4M5eT2AiRrAwtbgqXGRm%2BXVy9n0qktk3rHUZXzG%2BsgpRmUzbUxNNGUCUGnjlmnMIqF9Gtfn4J4BrEt1ZYchG5eJ3%2BXWGMigw9DEj%2F%2B0x5chQL7jz08VUYtYdHyNZg507EFXYv0gttSfRfOKh5fwV%2BaxFJop0nZCz8pFlB%2FRjCg3nYkpV2u%2F0LCJHDFeGbj2KdJDH6nAp%2BPkhAz2DBUKkwc3KRl6KgJHK8Mqrqp%2BQdbgJo02%2F%2B8Ozv2QrIANfw9JTaFALDtmNoT0Gst5u2UKbfzgMjAwYzuHKXoAAwgiZlDn7%7Ctkp%3ABFBMuoeqssJh"
|
||||
},
|
||||
{
|
||||
"num": 3,
|
||||
"value": "https://www.ebay.com/itm/185551229219?epid=239099177&hash=item2b33b71123:g:L~MAAOSwIc1jW-Oh&amdata=enc%3AAQAHAAAA0Ei%2FHaIfrdC9r1CGwS%2Fqaga1yJsD4RumFxrkhALy8UKnx6Wn%2FYmjNEsa1wy0CakU0g0XDQwOLFT85ni4Fx5MjwhmvBGhs0nVvKvpjYpFk4ab%2Bz1PirrDSr4xh88%2Bz5JpK07JF98td7vdVQug8%2B5eU6h8o%2FqNYeNPI%2FEF%2FJeqZGtApJzCapqd9xVOI%2FJMSRmt9MAP8NF0xAErePpmFmFmYhJFW4oq9WXwktqG%2B2pSttoihrFYkvfnK%2BNyUCJb0ew%2FGubnZUetPdHpdPz9NZipYqM%3D%7Ctkp%3ABFBMvIeqssJh"
|
||||
},
|
||||
{
|
||||
"num": 4,
|
||||
"value": "https://www.ebay.com/itm/384354658993?epid=14034212858&hash=item597d52aab1:g:dJEAAOSwJfthDS3V&amdata=enc%3AAQAHAAAA4GfEUTxow6USl6bAFapoHtI5u26z2JPHH7%2F%2FBfoRYkNfHjJ4%2FU8mMv3gwzCE03%2FDTyA668sZ0kXIXh4lN7qaGNd3GDBFA6ZD%2ByLOyJ2QuiJByfX155qZpLLypkWeF1ObvUmpKwF%2FvBGDcpMhN8j%2Fodhx%2FiHRfTm2ry3gQzTp6vi2FcUBdAXCQWnh6A73D1wlMjJhBNvMxBVGIS8R%2B3m3%2BT2LNRdF%2F1eAr%2BwcH2T%2FJ84m91EIg95wDWdYtS59V0OLeM7FXBj55M%2FE4HuVlAE5iEjAOs8S9iC20wQr5ABcR%2Fx0%7Ctkp%3ABk9SR7yHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 5,
|
||||
"value": "https://www.ebay.com/itm/266104461656?hash=item3df50fd958:g:FVMAAOSwcHZjyK3N&amdata=enc%3AAQAHAAAAkMnZsbas35KCk%2FKW5FkWhd9YihRBIQZfKwBOUop1G7cd77yagTIsL9UtXOTcgsbNdygZ05GjK%2F8NRy74JnHF%2FkA7bblIQfCOV2TnKQeKdpiRPnB2qm7%2FzSKYAK9hAdCyaOV3tPLb9r2wG2kfo2CIZ1P4n5oUsHHw3MWK5eF%2FhtI9FWRnyMxbrLAE%2FNWxGM9SsA%3D%3D%7Ctkp%3ABk9SR7yHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 6,
|
||||
"value": "https://www.ebay.com/itm/284837173732?epid=27034209608&hash=item42519e59e4:g:oPQAAOSwpDpio8kq&amdata=enc%3AAQAHAAAA4LedSPm1pfKlFdImyMXI6LDoSNlT1syYE9y7VcRh083cVmqlijjzeITpNmgp9lL%2BUSm7OftDmaEqajMCy1hH1B7fKCmeoFclRZRUfFCxOKnlWIy4DLJBr8KqY5%2Bvfjfo2IesZ5ZWrphX2Wu%2F2j5IzSNwIwW4NhlDoQUZgRAAbO5rE1ZeEHaWqvZb54aELniR2P2e2OClozO4A9LbM6E33oyMSgXQX1aeZnjhJ4pA3z2YcDf992bsShgltr5x1IOAp2zuQRTl%2F1D%2FIuIe%2FJnJiwtkWhfJ7P6yNR3i0P3Comwl%7Ctkp%3ABk9SR7yHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 7,
|
||||
"value": "https://www.ebay.com/itm/115382465390?epid=17035818063&hash=item1add54b36e:g:dKoAAOSwRLRifmnG&amdata=enc%3AAQAHAAAA0Mr1qoKp%2BHTjRd0HFCKFhepWD3r7S6zyQM6qnMPPNSsq1muHd7bRA7gpvh9%2BR16xSBV5sFZyGIciRZuCRI9wQMQiTE0HhmZgGuaCFPhjiFpLStA7D7xWWSYYEMDXYPI1hvY2PdmeWcFdkBv8o7PKKBWGMsNfrrp4ybtcElhGONVBIZgIOsdWqyCr%2BDHvzg9s5TetZPXRi%2BQysbpb9CdVVlCHKXXAUBxQgIdXqsE2%2BlTxRvhziCSGWoDYfsFRMbZ0fbLLenzO5oXRtwRLdMf8W9w%3D%7Ctkp%3ABk9SR7yHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 8,
|
||||
"value": "https://www.ebay.com/itm/174911368932?epid=13023706562&hash=item28b987aee4:g:H2YAAOSw8KthE6N8&amdata=enc%3AAQAHAAAA4BYzR%2BW70yaCb7fiAGMUiwHpKVhjj9Yrs0mALp6Yj5K4ZV5lNkgjjSx3WwTfWXERRXZwY9qrhiIq%2BusfV2p8WFmH1wTX6%2FxZwX8MF9FW89zptnptJy4bZd8GEcZgJoGP6rwOs3cXlZvOaU8GPMhRwjvjvqfcrcZ71MZbzzw26dOFVUxWye495h8mq575ILei%2FGs9hGx%2FGtfTnbkMqt%2FJcoj1tHP7ASU4pqUYKf0GZl061iypnLgSm5x3HCnd3ZYtCPPl3P0gbqCTMFSk57lgkz4arVRPFgzInnCqTQcjHaBZ%7Ctkp%3ABk9SR7yHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 9,
|
||||
"value": "https://www.ebay.com/itm/134304284556?epid=11037566785&hash=item1f4528bf8c:g:BtMAAOSwY9ZjW8s9&amdata=enc%3AAQAHAAAA0A7ZwCdas9HwReYsPxksq35ZC3yg0bq9QrjBH5g55Rk%2F3mEFdM%2Bbni7bXBrEjf89aNEfpYUrwxjn6XTL%2BHebYVfdcXS2JEBvUFMhu7ybb4mxdkDpn4DwLjf44iJsx6GGNDOlJZtQkn%2Bb3M5OpdcyJ4cAVxYv84YzmREetNOF1dv2VawtWi4OgpWcCBrCMux51TMBqGDp%2FD4fJpcuuURNMhd%2FYeSQOaNg%2FwRoUolLR8L%2F6E9%2FzCmhObilajteLbuAPhpkpOLCNF5AxxT%2Fnx33Oh0%3D%7Ctkp%3ABk9SR7yHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 10,
|
||||
"value": "https://www.ebay.com/itm/265427542241?epid=25041703738&hash=item3dccb6e0e1:g:Bx0AAOSw2w1hpKF3&amdata=enc%3AAQAHAAAA4MvC6Na2jkJUpYaYWpqMcESD9zwQLxHpstfeDKh0fkBKan2fH4XzHGovpbaEyyAcN6HFaAjupDxp9LNNylRfcKWJ6QpnYobpMeBsOw0dShsTt2QKxnhNHYOdh4JBTO8OgpuXKvpjmSrvGyseLMjn2QudSCqOnBSgnm4d5Ci%2FpwE3eoKo27gXum%2FnPwV%2BVngyn6bhJHAf%2BX4jOop0kgsOWv9wwyN2DAgy4kcBxlk21aKvsSfdupdb6iogfnmBjlTMXFFpgv22LcSyl3pn8UZEUw%2FcPzThaLMR3%2FK1wjdwePTo%7Ctkp%3ABk9SR7yHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 11,
|
||||
"value": "https://www.ebay.com/itm/115691162547?epid=4051364949&hash=item1aefbb0bb3:g:II8AAOSwlO9jeBJ8&amdata=enc%3AAQAHAAAA4NZ%2FpQYQVCVzZPkiXgQt5%2Bsh8xpsB26BdrW8A9nj1Z2Bejf4mdE0nC3FLqpdlYyDDNYsUXrleFpH9xFutW0d7illZC5J4Qupf%2FKwSHpCrSitUJDnxycgqbdU9sMBG8IQiF%2BzGq9kJdt9%2BCuyNJKjjyEaBccfhl4WuKoqso5bwGbJxH2M38Z6K2BGRGgifKr5THOSczWAQPDpHxbgrY0Jf02%2FrIkn4CE4TBnaVl7WiDOPtuCUUPRx0JpgwvdfGjW8DbfemJzaoyylO6q8ojLjm%2BM0on0O3OPsmOEApTtSG7n0%7Ctkp%3ABk9SR7yHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 12,
|
||||
"value": "https://www.ebay.com/itm/134289912060?epid=22034747823&hash=item1f444d70fc:g:IzYAAOSw6tdjUN3W&amdata=enc%3AAQAHAAAA0NH4iRsvvaEBqYiBaAmyTvhN72tTqAPA2CfJ9VNAfqzEwplsjc2KYde8MV7UOX3ddyytJ2ye7nuF79idOJeosYY4T4NDkARHmfH3mUtjZ2%2BTTUrYvgmwKJlAYM%2BS%2BPt4ELAZl34mGmS5vh3QGKNJnaEYaoYiUQbU6ecHAcqJEk1Pk46%2FVZuAllsioeNabp4oMVVYSV%2BvjCqjlHR5nINdPJYZYa3zTrFZilValvznXR051Pn289ZJITrEOcKhgSYQgmM4B7UhE%2Fh146IoNoVK7wU%3D%7Ctkp%3ABk9SR7yHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 13,
|
||||
"value": "https://www.ebay.com/itm/165337199649?epid=24037853119&hash=item267edd7421:g:WK0AAOSw5pxjgrpi&amdata=enc%3AAQAHAAAA4BcTaXjAPWkPQHEGLadS0WevO4pCHHbxB3E%2Bghp%2FwSrSgRIZxdhNUWRkvYtDmmA5NcjtfCfH%2F%2B7%2BLASFZVoedKqaqqwklr1puMWBnzC4EPuOTuoeOjqIo%2BNMC2%2BFjYrediSVBOZGwX5l%2F8ALbZqojBoYIdXxkSMNlT7alj64oe%2BLjmCC3UNI4QUMWm0LOll9EkCuWPKi%2FKpi2O7Jrd0W%2BEmLNmJ844%2FCQKj5DZ9OHZwL%2BrTXc4av804pAF%2Fj9%2BkoOd1Vab2Qsmhnms5DLhIfnmqBDuUvb28%2BdVGFOQXCIemW%7Ctkp%3ABFBMvIeqssJh"
|
||||
},
|
||||
{
|
||||
"num": 14,
|
||||
"value": "https://www.ebay.com/itm/284837193309?epid=13057692504&hash=item42519ea65d:g:ITYAAOSwFaVin-Fd&amdata=enc%3AAQAHAAAA4LOHQXdx6PMPZ8BELQ8MPrLBBd%2F3p9CxwKR%2BN55WPrnf2LXiH8d2jSfgdBSja68RBxt93aSYJ2oX9m%2FYaF6LKIA728d0ZRNIiQnTjar5tWblRvWM9w02WWgJsuj7K6KXkIi%2FeQzuEeOp2d3lOt6l9hx1ajdq18HCCVEahnN%2BbCOlIoTKvdZfCeXGKblptxg2f68S1f8MMmAt8MSQ17cqz3DIpeyFIbjZhMcFEQRdYS5Z5IKqgDRpjtu0%2BRtFbfmNfV6GsOdUfaQ%2Bkeu2EE%2B53nJNulypa8szcne0ty2yGmKJ%7Ctkp%3ABFBMvIeqssJh"
|
||||
},
|
||||
{
|
||||
"num": 15,
|
||||
"value": "https://www.ebay.com/itm/284842367385?epid=14037756699&hash=item4251ed9999:g:230AAOSwiAVio8mQ&amdata=enc%3AAQAHAAAA4CmsLG5XpeMzPM4bhZX8I%2FsN4u1Vfdw7Vl9uH0EsZHoS4msT8d2RBADlwH2Xztbdbvxqq0sAZyO9uYLx7FHuGNXqlpS8tSvE3VW4irrIr8Vh%2BN16AmhtUBX2WXsdVLxyqkc4c79o9o%2BClf3y5srPjPdk3mMFCY59aI9%2FIJRVWMl3Vr0d2hyBAt6V7HR24HxN5j7JYjYqmQfJkgm%2FmXvq53q3TVtV5HdmoSQDi3OjOsSqesl5JoFV2xCVx0bMgwaEkW6VtFVlUsrKvsraLX2mNK2xVDJ8BlmtgFQj3xoUupmE%7Ctkp%3ABFBMvoeqssJh"
|
||||
},
|
||||
{
|
||||
"num": 16,
|
||||
"value": "https://www.ebay.com/itm/114975199041?epid=245228137&hash=item1ac50e4f41:g:nnsAAOSwecFhNwVE&amdata=enc%3AAQAHAAAA4DA0xaGh9QtOHo%2B0gmkmSwsL9vXdb7L%2BgYw%2BWhXynpRXCUKMBcxv9cpOdGNh0fW3YOUc9ypjATmcwpO0227HBT7QbNhOySgI6H1BJfgaC6s1DygmUB60DpVzUFmKAFQrIfyZ3SsrZCwYYljpHAZbnHapV7N4cKoz0AKX9gLlXFTNH5B5acSul7m5MMho9rrTA3zvPg0pQeTiDCng6W5FeuG3P9OwgP%2B46fXOGQSC4TFYOahzFFus0kKxH1ZhUpXI%2FzlXQw3HL6tijDlXWkFkiTLlQAzwMmfVLjzdFk91AniF%7Ctkp%3ABk9SR76HqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 17,
|
||||
"value": "https://www.ebay.com/itm/285126736012?hash=item4262e0b88c:g:QcIAAOSwDSRjxB15&amdata=enc%3AAQAHAAAAkGKiAlwtur%2FmPt%2B9vIUM6Cyu3DdqkEPdG9Sj0qXc1WMhLE0Bx4tBvgMdHhtXTMDmmSeFtpBU1UU06Fsgr5p3LsXLSs7sjQ31BCoYBid5iLj247vpFIhU2Ie62URrdVXMPSK3fvyHppzD8BaqyrF6nabK3PHExgZl3CQ%2FtS9Sav2OHr2fQmmeT9emuqqVXUW2Fw%3D%3D%7Ctkp%3ABk9SR76HqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 18,
|
||||
"value": "https://www.ebay.com/itm/284843502844?epid=11034210273&hash=item4251feecfc:g:q4kAAOSwr1Nio8pF&amdata=enc%3AAQAHAAAA4AqqXJw6a3IVMos1JmYlvdF%2BspvAt0nIKthfNtw8GBKxhA3MqQbi3rB5y4%2FVpXvKppuTlWMWUjsg1UwLXnAi6NhjnlrlGkAwaEawiC4PlmoZzTA819Wt%2FRM4b5GYG0o3MfMftflW6%2FK5Ib2E1crI%2FHStqMHLyRlBvb8wZAL3FE%2Fc5xQA5VDRzQ5wksk1rXtT6YQoiW6McBdIFFbrLFW3%2BIidgZHDUrPC26CE6U4jhW4DmVrl%2BZijyBTpRlSaRaaPcwUOEKyYSKr%2Fw2anP3UMGyNT71aTqzFauCpcKhcVW9hd%7Ctkp%3ABk9SR76HqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 19,
|
||||
"value": "https://www.ebay.com/itm/115382462850?hash=item1add54a982:g:Qm4AAOSw~9tifmko&amdata=enc%3AAQAHAAAA4CtHO%2F7BqM6oDOBsGwo1GLY6nqMr65odDv4SJ4zxNGxeoxl47AUl%2FArq56grc7G3IB6%2FX%2Fk0u0Nn8KtlhH7TKXCiYqlbZxPd9hMnTMzh%2B6Lmtu%2B%2B91bKluc0a%2BYi68OkaQoxUBW6JtUoXHylhN5mbiWxxy4%2B2xojZMpFj1GalpMfQYiNZQzt4pWOOD436%2FoerSU06aTif5Go6jRKd4K04PFvUsjOPrEtlDhhGke3o1eGLyo9QcCd5oSrSOJmAHijrWsx%2Fl99%2BkZF%2BJ1yN533rvLl7VCM1jcNHIXa9XA7gSMP%7Ctkp%3ABk9SR76HqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 20,
|
||||
"value": "https://www.ebay.com/itm/265495435187?epid=11043394863&hash=item3dd0c2d7b3:g:cDgAAOSwaI9h3XSA&amdata=enc%3AAQAHAAAA4KsoLUFY4EfgdFccXqshoZUkDxOQBoJqKdMuIGPFrvuZ%2FxqMW7hdxi9UQpgSGDUDuRJdXZsA4ReDCxcyNoAYbVPasi%2FygBXJlx8OusnlaNknU7gNzx1mLHtN6MfiwZJ1f5IyXrs77JpkqDN2qhl%2BZ9E%2Bx%2BSAAjBfDdcu5nYgrvCTXT5sit9Of4RuglxKgyJoUschpVFWh3UG2XPoOYQgdaprXOmVBwkucF9lFyTXtcfeMzupWVV2IPd%2B4tey8AMyTYbV%2F0SZKDCGfvNLwpTthlsE8YAjcbgwO%2F8dgo7%2F15Z1%7Ctkp%3ABk9SR76HqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 21,
|
||||
"value": "https://www.ebay.com/itm/195581816273?epid=26034221296&hash=item2d8995add1:g:9dkAAOSwcs9jzT27&amdata=enc%3AAQAHAAAAkDcQT879sZ2qF%2BLXWtrmZwB11w4IkwsU6HGUfXZTG2Zl0Gz6Jf87JadFAiT8Z%2FkWI3ekO5Xg2G0gi%2FcPMRefKWZtyePp2ne5qt0wpeECpmyJ09Xne1audacJP8nQ8nghONsUrodXv8TBT0VdWnhtgN1wbAK4VXKwBdrz9cWB0p%2B23yWW7y4fNRk2f7TBUO%2FUvg%3D%3D%7Ctkp%3ABk9SR76HqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 22,
|
||||
"value": "https://www.ebay.com/itm/275419609847?epid=18039187887&hash=item402049baf7:g:tlsAAOSwCoJi8vb1&amdata=enc%3AAQAHAAAA4NfdraIMVt8TBTcv%2BeSSJe9maUWtsEU9tzzvPtf2Ef5TCEUzabtE3gsrvNlTzo%2FdQ7%2BiZNJ6gNBhcsbtXBaD5yiWsd%2FbE6sfgyPw83X9neUWJvVC7CoFVOWRL0pRBRyQogzoOaiz8krHBiAShGn1fGSI64KrpQis9OYIruFuXoDCcoLM7gon8A6VN7Zo2qPpz7I%2FtSg%2BWwJS9IuqWkCAfWTua1cE2cztUZnHV5UPzYunkN%2B9Kp7qitMxAJPDJ49RHQHaIEcNtadQz5EJL6GmEx7Re87YjU1EJaNJU8nSbQuP%7Ctkp%3ABk9SR76HqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 23,
|
||||
"value": "https://www.ebay.com/itm/185755456278?epid=13057692509&hash=item2b3fe35316:g:d~oAAOSwB8djzAs-&amdata=enc%3AAQAHAAAAkE8PdZMZa8t8p9Xet8vqO%2BqTUK9h1ZvrkMHBVJ6FgBSCMAh6JWSjwvLwef6Uza3AP6C4mQLDluxmOwt7q%2BousyLSRJH7mCbIcq6u43vnJLZMtesKOGixWJae5SDIxBiiQClmTGaVveKHIijcarV%2FtBvFdxf56Uf3fUwPFFVRdPh2QYqdciIJ%2F2I3XkTPldxHSQ%3D%3D%7Ctkp%3ABk9SR76HqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 24,
|
||||
"value": "https://www.ebay.com/itm/275555429968?epid=23057357625&hash=item4028622e50:g:834AAOSwmCdhXunZ&amdata=enc%3AAQAHAAAA4M0tm3d2t02bud3a5WDVnXcbAPsDSJHdYlgDVdhCnD5EJUnttsbQQm%2F%2FMZ7Jkn1MO1PBc9af%2BxuEuNf6V0uCW%2BU2fkIITL%2FzaYhHWwSJBrGrLngK2K9Dy59GO8BT57A%2BHs2QbH%2BZ4nGao1S6farpQMPc%2B50r0OX7JS0pa13pa5KRUymrhch432nRuIAsYyjzcS43o2bKg1bRMmCch7ThcQ3lRM04EfY%2FH%2Bbp7YydhI1WruQLIKvMGqzzkmVbnt0fnzKQ%2FeSAlVVy8co1HsKbpWVuzhEeZTOsb%2FypOdbzWrps%7Ctkp%3ABk9SR76HqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 25,
|
||||
"value": "https://www.ebay.com/itm/115398775717?epid=9051376057&hash=item1ade4d93a5:g:vYAAAOSw3bRij4R6&amdata=enc%3AAQAHAAAA4H3K3cmdwPRC5wET7%2F2xkS4%2BY06wViXKPIzSPY9Imm1QX%2FPtjywhAvfLkokX%2F4wbgcFEm%2Fvx2pN6m8QRMmFkGXRN7xGvIWHm%2B%2BqGV7N0d0HhcRKSLgMTSM17K6McInGnumb5KJrx3%2F5DHtUW9FQ%2BtIfCed1k3ch2RF3bcNQH2GbYbxKNMTs7gmWDWQOFHMxn6dsghvY8FJ80YxoDy9Dxx6c7F3JPGgM3qIBtnpOe4fSeYfGykQYpmdJLF5AM%2FrQlLMBS%2FaT%2FzzCz%2FYEPjxlJKtkzq1mS17zqsJXEvR1V5Y8K%7Ctkp%3ABk9SR76HqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 26,
|
||||
"value": "https://www.ebay.com/itm/384342925442?epid=14035917224&hash=item597c9fa082:g:9qkAAOSwM5JhH1-5&amdata=enc%3AAQAHAAAA0FWLtXypj6qADoDeQuHqZ1dVP9hE9L9dXC%2FmA2tUkadtSewnzOsO%2BWAGeAH3bCaLOAR%2BW9ZNmeohMTi%2FxpG54pcp92uv7fNSpMbB2YwbYyHnelg%2B6b6e4mOdnoK3Mw5SD3yv44Ng%2Fxz2c153HjXzycivTSZWIQkcEVsemnq2ozQQs1sz9bt%2B3LhbH2WpfydsE1Z%2Bi4jpd980fRWe28YjX%2FJ8G1mCpPFXaVjIiWWE4%2B3YkN8aQXy6flTJRVvKiIMXXxErIq82zGwHWYX5WL6V96o%3D%7Ctkp%3ABk9SR76HqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 27,
|
||||
"value": "https://www.ebay.com/itm/394373978599?epid=240174780&hash=item5bd28559e7:g:nnQAAOSwiWJjlZr-&amdata=enc%3AAQAHAAAAkG1Du%2Bf4d07y8jBatVlqQ6SrCXgb9%2B%2BCy7VEWR0SRnNg1QdDdy3jrjKBMJgOwde%2FTHRxcUaeY%2Fqz7F157bywzqAZbbcnHPQiRcyQJlGAZclv1mtx2SthGWygOGKBRb33tCWUlLSWcQKTi20BHhx%2FuWx1hrxgxEd2kyKxtGwneEVWJYg3el0xtBqco9%2BllRgi9Q%3D%3D%7Ctkp%3ABk9SR76HqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 28,
|
||||
"value": "https://www.ebay.com/itm/284837223550?epid=26034221283&hash=item42519f1c7e:g:6XgAAOSwAUdio8q9&amdata=enc%3AAQAHAAAA4KRLndsNFZE%2FG2Gwi0RpkZ1XmZlZ3CfW5ZpPw1JxYfjlFNy5VmCoOOLdQrh5zZouvwojEdqvGlkW8zktR4vAw9t%2FVo0oYwwxjUR7ffJ%2BKbjEp0fZPj16NUZ2FKo7TUr32SY90uo08bk2rM18xuthWxq0ZyVkG7g3nSY1sLhJqIfK2c%2Ft%2FG4ey81K9ocEwFreqtTJd5UJA%2Bpi9YVcwQ%2FCPgryxqobstj6KBprZIyFXKoAfHq7%2BzrYN%2F1zLWMwJvrLd62XlZIZGWWdyLW72kT8q8Xw4ECDli1M1y4pevUXYghG%7Ctkp%3ABFBMvoeqssJh"
|
||||
},
|
||||
{
|
||||
"num": 29,
|
||||
"value": "https://www.ebay.com/itm/275563969227?epid=14035917224&hash=item4028e47acb:g:OiMAAOSwAHRjilss&amdata=enc%3AAQAHAAAA0KUuubeWDARmNbgSomW054zgf1E1m4NRwGo43HJpc2oRWNl8HovOrzDkqokwP%2B3y0aSHXUb4wp7Elkoa5y%2FtxjApmorPmtGFL29rlXplwv3vQG30atZC3L8ryotC59ltwi46ig6bog1MT7qS1Rtt1YJfMWRE3LyBeTuH%2BmLE3ltGuBXdHDLXkkysBIbPjR9dXqWok3b1409MnqDYsflAbzh3t3fuYqPsw1h0aFPXgM%2FuCr0gAKva2I3hM50WHuuLiFO371sdQpVixA1QGo7M02c%3D%7Ctkp%3ABFBMvoeqssJh"
|
||||
},
|
||||
{
|
||||
"num": 30,
|
||||
"value": "https://www.ebay.com/itm/384392379194?epid=15034218412&hash=item597f923b3a:g:TBUAAOSwcQxihfxQ&amdata=enc%3AAQAHAAAA4E6BFacxI6A2chqRI9xMeNs2EPZFwnEqDGG4mPgeJI7V%2BiO6PUPTKBhTHH7YUD035b2lzoV2%2FwrTC04URzlSOq5p2aoV06F3TV0v90UcPOsQrOudO5iox8g50pGtQDHLGPcQmuuLHfN2GtHmyidMAN83Lfso4D6fRbGcOCxcdzXRLJuM2G1E3bP3Cu%2FOg7KBtjOMTo11UYSmQmckpmyArSm13cUHKxnDugJGabNSyQ0Sfmwpqi5kKFaGkGBXChDUslPWbFAgYIBCl1fwwq82oTaZAxLmjrH2Hb3Xuv34GakG%7Ctkp%3ABFBMvoeqssJh"
|
||||
},
|
||||
{
|
||||
"num": 31,
|
||||
"value": "https://www.ebay.com/itm/284834690629?epid=27023701740&hash=item4251787645:g:~H4AAOSwFwZio8lE&amdata=enc%3AAQAHAAAA4D64fGAPrSEv14V6Lx6XqlIoO3Is%2FNIRckGsWM6SR7oguEXGM3UC8qOBMT6pEr4Z9pkqCo1hjbkRt9s1kWRhHYOd65Nfgvc1yb%2FKIHJTpNhWU9Pq%2BSJuwk%2FZAbx6EBk1aANZbB5FHO6nGPooe6prFVuZhvh1lo6JBFgYezpWNbVC17eG13fBmNgXOJj%2FWxF8pTd3yECW97Al%2FjELMmPDK%2Ff7kxv1ebjIcN2nKfwmhCP0ywZIAP3HB9AcLmRQq0mSr4dmCawMWrE7n6Xd6HF3VJtKeDDMK2mzHg3WW1PLYTth%7Ctkp%3ABFBMvoeqssJh"
|
||||
},
|
||||
{
|
||||
"num": 32,
|
||||
"value": "https://www.ebay.com/itm/385378711279?epid=5034224996&hash=item59ba5c76ef:g:8YIAAOSwRl9jwrl6&amdata=enc%3AAQAHAAAAoOdf4fJNQcoka6bs5ocCxWNHhIYx7oOCYUQau0j7T9XFKCvxCULgf7ciLtGIdNxbt6kej%2BKqG9xiilrw36nZR2khAh5EPHwUlydo5Fj6KZqmGIzzEPccTVoCKnGv8yaUGxno%2Fk2n%2BDu9r%2F9TansxafW6T1y4zxxnU7XBrjBXyo8%2FjjUmjbU7jxGXGQxLHNXZ7fg8P1vG0xgPrRCNqh5vaWI%3D%7Ctkp%3ABk9SR8CHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 33,
|
||||
"value": "https://www.ebay.com/itm/284843533396?epid=5034224996&hash=item4251ff6454:g:k7AAAOSwxbtin92z&amdata=enc%3AAQAHAAAA4JB8zc5HRAIGjSABwz51ly%2B6gRJSYMP7ePCrq7egyB3ynDSzeYKcLSdyttBSoCpwzEnKYLTXKCQApCOMc%2FAgMQ5qNpQS63xpj1vpzUSA0ZAo%2BnOea0N4R59Cx1sXVnlndTjE%2Bm0DxhE%2FOWuUp4SlPy23pczbc%2F3Q6OROr02Q15vP1ue7AD7BLN%2FN%2BSH%2F1ho9eLriuT9%2F0CwQNtMdLaQSTf9F%2B2yK%2FDB2fQpp0ybIHaHkgjQe5HoHvJvVrwmhIfdhBifEFJThn1JwtZrqtgvbJ1XQ0HT50libXklr6%2FmOHsh9%7Ctkp%3ABk9SR8CHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 34,
|
||||
"value": "https://www.ebay.com/itm/354352448855?epid=16034579360&hash=item52810d4557:g:jCsAAOSwNAFjSYuD&amdata=enc%3AAQAHAAAAoBe6PPX4cziAMH0zqph5CVKzeNK5rRqYKfKAk4GHDulh6Z4prRNzhjzV0cUxdC8dGp5lcPZ3wE8wZyc4xJveWoV9zNH8mHAuJtYXqFVKnWYthyltxBZabn8Lu4Sw2ZGZRYGr0IEpveY8F6Y6hzjP6hbFEwdEebm8MK4GxWHcMMwX%2FaxLXCWSD97YuGfHksfIG%2BfRrny6RufWm8ljq8yVj30%3D%7Ctkp%3ABk9SR8CHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 35,
|
||||
"value": "https://www.ebay.com/itm/115055691694?epid=6023706166&hash=item1ac9da87ae:g:Q4UAAOSwWmBhcE9E&amdata=enc%3AAQAHAAAA4EUJLPKV703Ekx2%2BCWqMXvBRR%2BZjdsXLMQbxQ5blWGGbGi4M%2B3UbfyONygmPuFLkxjI027y0Hd%2FolBzoWN8SknMWX3Q9N4ToLpqQPIeUbHpiLfJKgEs0RwFZDIifdlj6KDk7VPz6U4Il4zD2d0Icrt6px993s7S5OHzxdJYtHhOYq%2BgXe0ZfHuQS6T%2Fk5l2Srhrt%2FFY8us%2FugysDgYnTxDj1zqGZFlDTsKgbklE6rtVIx58poayLW7onOQrKtFRoaFV6sIb4fxYefABdBecdZZghT23FoKp7%2FaHHZWBkcyT4%7Ctkp%3ABk9SR8CHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 36,
|
||||
"value": "https://www.ebay.com/itm/204154889363?hash=item2f88946493:g:9DsAAOSw3R1jdMnI&amdata=enc%3AAQAHAAAA4P9DtAwd40J0WTSiekmkteRZoiZEd%2FkMehqqbdN8dSNEJZ%2BrZOaWWIShgeRfA7o7N639YViFxJkkg%2FmRhWAFir%2B24zPr3g9lb7Gl%2BRgIg5qT9nKCmQ5VtgnUVoMhiMlDfQ29YLJv9JZwo7b2iXWPo8uki3Un8qKk0PraRTp4RHXConRbIqopSwPdHznOLmop5iydoztVLSQhtW4GYHKCmSzcltPmvw6XQuPAIpBN2ebiPZrT85PpJ%2B%2FxYK8vJaHTE%2FU8mZyTUR6KAAlWpvKDIFVpZgh%2B2EQQ%2F6Wm2ogWDS3D%7Ctkp%3ABk9SR8CHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 37,
|
||||
"value": "https://www.ebay.com/itm/114982462737?hash=item1ac57d2511:g:uCoAAOSwmlRhO76O&amdata=enc%3AAQAHAAAA4DOHXyPMyoQsjN2ZT0NzeY623TkFdSLW0CMa4shD6K5TsBZvYnUSenuzZg%2BiinB3pVfLeqd42hewDNPiTSzYNegfaV40DU6zYxWLk6rB%2Bg6XZ3VLtP07jmmkBkI3C7mkfpBH7RMvgS%2B46uo%2FmvoMRhhk54nG68HYepoIx%2By1vRVDPxu6DqwooGcp%2BolBnp%2Bd1i4dc7RyyXXEuJ1%2Fp82gcOhI3N120812fZ8VATHfJqg3IdQ1a3IfM7nqdxnA0dPkPLf1TVIwtJeyE0c7uZHATsY08u84E43UR9eFO%2BeI3oyU%7Ctkp%3ABk9SR8CHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 38,
|
||||
"value": "https://www.ebay.com/itm/295366826662?epid=23041723818&hash=item44c53c1aa6:g:dl4AAOSwDC5jgSu-&amdata=enc%3AAQAHAAAA4PjXAsnjh5aI0vrEnGo7Z9OnBBoN%2B%2BVr9%2F5EFHOnPE6apceeU3bd6Ib2dVpm7vOuvi0mh3kWZz0JBpztsYclaqGUlCZa%2BqX8U83pme23zM0ADkiJxBMsToGYzEqjh6cvwKa%2BidzyeLqg389koSvYZg%2FXStbjMDreOFQr9n1cxhY67jNQvMIH469%2B72E%2FeBNb75x2uDj46xjF4A%2BenR2DDd7UEdBabTEDUWcCCNzYWwQkocmXQCXIthRuGr%2FNSVG77SrbVXr4kt1LUeaSYShs6vbYTBn55NUtIwUj69CuV%2B4W%7Ctkp%3ABFBMwIeqssJh"
|
||||
},
|
||||
{
|
||||
"num": 39,
|
||||
"value": "https://www.ebay.com/itm/275037837307?epid=235205919&hash=item40098857fb:g:BmQAAOSwhdhicagi&amdata=enc%3AAQAHAAAA0NGR4CAfGY1g9aBugj0vl3zqXcLw6jndqmUruRknV%2F4ZLSZITGRlruzUB2rjL1FC%2FM628dnRo%2BeTxqKptbADDWcAyPWqvpRLJcfn8gM7f9Qy7akVCDa82kOrBViw%2F6URqeJcKRJ6eqAWt6XAbcxuRvt4VO9A0hpt66CzdCD12gtbjIq9sz7NVLRRZqPIKB9p3fMIlwnx%2BanNPx1Yx%2Fe9BIx%2FQys3yEDXl1RIg54rry%2F9apVWOEfEJm%2B8Km02ecwPbs%2F1qEEOjV21EGTSitMoAiU%3D%7Ctkp%3ABFBMwIeqssJh"
|
||||
},
|
||||
{
|
||||
"num": 40,
|
||||
"value": "https://www.ebay.com/itm/165917646229?epid=15055100591&hash=item26a1765d95:g:GbUAAOSwon9jx2r2&amdata=enc%3AAQAHAAAAkJA8t8382O2wUFVyY44TF8%2F6RQu2rmQaB6CD%2FdknZw8966upTYJ5EqzW%2F4odXtRkA5gyOosdD%2FRINHtTQhZGBNUWG%2F%2BYIB0LUjg%2BTj9320EOmTpZPjC0TMKoYU5gzWGiA16QV%2BVlEu%2FoPWv4%2BT9Q2aJwl8OC%2F7N4%2F6kzbZ6VV24ewKag3fHyTHyZRGjWJowaIw%3D%3D%7Ctkp%3ABk9SR8CHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 41,
|
||||
"value": "https://www.ebay.com/itm/134289962940?epid=8023709558&hash=item1f444e37bc:g:kG8AAOSwemNjUOyA&amdata=enc%3AAQAHAAAA0NYhSjHQ%2B3r9Ohbbg0P5SeKql99jLpvtv1C0W2nKcjuB8OQnbe9dAhrhAviF9vEdMLFMjNhuInRrxnyqLToLPaMJVzKjfmGtSX81%2FjQEqKEI4YH1R7Tvbvhf%2FZEOkGpEtTRc82Xw9M5dSguaAcp2mYoarAQi7cpZfVu6jQLQDsyeiotBZfUwQUxxDL7FLr2Fs4H2rqAYwwwypTP69wVR2B24MrCJ6FGEBm2EfJK9JbZZz1MSV%2BpMJc8%2B5Z88bEYUfkGSYR4IGdbn5RupdD8qGns%3D%7Ctkp%3ABk9SR8CHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 42,
|
||||
"value": "https://www.ebay.com/itm/115382465076?epid=15057003479&hash=item1add54b234:g:gIIAAOSwiJFifmmz&amdata=enc%3AAQAHAAAA4Pel7yRDK%2BnatS0iAXxk1WaGbuoYNoae0iyeFBxKZacYyQ%2Ftth%2FHvVPTU5BQ%2ByichClcVZZmyyVqKV6oRgXHKyXvu6ABRqPWRtFIfGDVEuFEMn6mRaAkHvKl99sNkZJ89bUq8M6GJrtoqk%2FypQBOBjQktHJeL87GbR6D4y4BkcKrwG475EcMmSxZ%2ByPiMFwCH%2FzmgHROa6NkgmL2HV%2BlOMCplMvfhP4AiS37ZEvpZ05N7%2BWb5ZI4By5lHGbt6N3AcobIZXk9IywIO2BY9fFVvZ6QACHF9kJ%2FQ9E1MIuZtap0%7Ctkp%3ABk9SR8CHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 43,
|
||||
"value": "https://www.ebay.com/itm/234870611190?epid=14034578851&hash=item36af611cf6:g:iR0AAOSwG31jvVQi&amdata=enc%3AAQAHAAAAkBSwZdfU7K35zNXT%2BnTVSkeTsWogSkmQeeb572EPUfRj3GQl%2BvzJBvHAMb6FpwoD2EMY7B9ddDzfoOVpPZmnb2bT6PZ%2BBTwFm5Er8AcYNmGsMgl1mGKxz1m5r8we%2FyV7s8Kw3zdHoVDtJT71H2arNwPULxbdqpF53hH8Ojx2tgE%2BqiCdn%2ByqVKvR61GzWbIsfg%3D%3D%7Ctkp%3ABk9SR8CHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 44,
|
||||
"value": "https://www.ebay.com/itm/134304224259?epid=26034221266&hash=item1f4527d403:g:59EAAOSweStjW8ZZ&amdata=enc%3AAQAHAAAA0BsJ1VkljwMFWwnM0jIkO%2Bd2rTgjF8Ps8zEjdH4gY14CcFRUF8MkF6DhHVfLaRQh0421VykhsrTC22jlcG%2FI2lP6B1j2c5ujIbmpdJOzBgcFbNrv%2FXqTELr7owA8r5zZ3EzyLgjx7LanzkNrk0XfxKobi6efxa83umH6%2FYX2Ze7NpYTVXbs37pAf54Ot5cXXYgu24rGHNjnRIn%2FtPDWUcqpvPL0WwcVfMnEGCpvPN4mKctUnqP7y%2FrUYKnSlDUG5PiW52qvXIRag8Cb3s0wI5Ik%3D%7Ctkp%3ABk9SR8CHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 45,
|
||||
"value": "https://www.ebay.com/itm/194316866035?epid=8023709558&hash=item2d3e3011f3:g:DfAAAOSw1ephFOPR&amdata=enc%3AAQAHAAAA4NSJ9hyAPoE3EL%2F86975ibMzsHsGDDkDLzcC2IgZVrQRjEsUJscwCausqJFSYI6Ab%2Fn%2BD15qv5deHvCdQAEOmP2rarGk1tprdTveSw3vG8j%2FpmvpxtqSOz3aoWVVd8XV2veBRqAPEoxoRG3iiGK63jd%2BkH8pUgXXhd2sAYZhst5dgpRq7U4cm1aWfrZvsEBO1YyCrgnACH1nVJfjd5AExEIKP5MEQTkemstac5Q5%2BmryufAeepZW%2FPcBCHwt%2FpyICoUtP36X2cq7u7aE9wT35EXhwrcZhEBSFkrOTmEzLHNw%7Ctkp%3ABk9SR8CHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 46,
|
||||
"value": "https://www.ebay.com/itm/295495133461?epid=18045314698&hash=item44cce1e915:g:9bYAAOSwvLFjpGwJ&amdata=enc%3AAQAHAAAAkCODiRPuf6NrA%2Ff4O2ZViOXWjcBJqR1XjeCNbevxP5u9VI95JGIq5CUv%2BXWQIT733cKrc994Qf6a9%2FDWyfC0iOWtnODSOsonWQJz7ALDPWQwuux%2BLT63MMyw7pl0660OkuZ%2BrPCvbJEC9esxXjaLkTjqjymImvJgkiKpMLu%2FWoVwdv0mM%2FvfFUpRInGJ%2F%2BOj5A%3D%3D%7Ctkp%3ABk9SR8CHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 47,
|
||||
"value": "https://www.ebay.com/itm/134278052376?epid=2310781314&hash=item1f43987a18:g:SJcAAOSwRiRjR58C&amdata=enc%3AAQAHAAAA4MuzP1v8LO2bJU8o1OIyRKN0A8jHabFvrZ38t%2By45PTiGMWx%2FVzh%2B%2FZnNQCB9mCbhdk%2FvIW3yJvMqRW4AcCB9cHkuWe6Hu50%2BdeDZCIJItEtXzmRADELMetUO8%2FzUQDqzi3QYIBArqnghN8ASWpndv484vN1v9TLHAtprYCzFHYAv3RYLQpAHcSRuOwlZDhfSkhnxDyWQVx5VqWT%2F3LlEBmIQEFC1HEN59FKeToi5FJ13JUpKGiUmfuJnJZbex86XTHq9Yud1wzdmX14HIKOR%2BdHxpoEEQWGVWe%2FMEgMpyQh%7Ctkp%3ABk9SR8CHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 48,
|
||||
"value": "https://www.ebay.com/itm/385385510766?epid=18041715094&hash=item59bac4376e:g:5osAAOSw0IJjzn8u&amdata=enc%3AAQAHAAAAkFRsqN5XTshfan%2FaQlBgyRmupACU6c%2F46htNVlozDZlSFvHuy1YoCt6S%2BHOXhD%2BwFnF3IHKh8NJNGeWTELxZkZhpD1wuCwap30JZi0Jx1KIEBXILCaJx9kHq62lMp18F9ctOY96N1Z0xksZPTh00HFh8KrPHpSOCE3rh64Iq5gVDjqeqfrxsVWXObzXhGSkmxg%3D%3D%7Ctkp%3ABk9SR8KHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 49,
|
||||
"value": "https://www.ebay.com/itm/354375729960?epid=16041709998&hash=item5282708328:g:eaMAAOSw-BVjZaxt&amdata=enc%3AAQAHAAAAoIYZCVaVMJlE1xi2Dazjl%2FWEj4m0nd4gXhIxisineG5Y4fWnCwNLwbkOvlKFPIwGmoC8pk66RzEt5bG4e0rqBHOc%2BqLM9TtgN69RfJ0FbembPUBqkeJqWLAqLAtgo14vnb7oVcfbnyP6ZDuG5APDw0AnOGRr%2FFIGxwB4UJTY56dyJzEBt7euOFjbTozcBn3kUFU5MqBtnQ5P9kVragVSv7E%3D%7Ctkp%3ABk9SR8KHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 50,
|
||||
"value": "https://www.ebay.com/itm/304786301225?hash=item46f6ade129:g:qnsAAOSwc3Jj1yVo&amdata=enc%3AAQAHAAAAkJaQM9LbO8pQQpm5Eg9m8R0uPlugNpcXSXqllVSKN0EPpnJzrE25gwCd8hhNR%2BcSMP978sfs16e%2Bua%2FKy160SEvxijbjWmzbFYXNdUNneRFHL%2Bz9jpRy2gvHuiN%2FiXW%2BRYwwRogGDV8NzWBXuBqjN%2FGkpH8WyJL7z6eEROZmMDxVah3aeJxBd0HX0S43WgvbNw%3D%3D%7Ctkp%3ABk9SR8KHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 51,
|
||||
"value": "https://www.ebay.com/itm/174911437767?epid=238944741&hash=item28b988bbc7:g:LAwAAOSw3tFhEnDR&amdata=enc%3AAQAHAAAA4OUrIuiGa2TtmvD2S1fdS%2B%2BCMSN6PEv70vribX3V%2FhIHx25mQNXNae4tS0Ud6jpKa4ZFjZzjlt7bygqxmRtgD79yiaTg9xT3vMvIVD%2BcGxBa%2BzjYl2PINFu6owvlsD0riwdahZJy2bdkGZXvxNOEi3uhs%2BjMLoLQxMpplMwk72lnY3wGNt2DX6hqr%2B00jKQWIzcA6uv%2FKZYCxVkwdJkqEs9JIjZlRKmxZoe%2F%2BQbCfqLqPHAIfv2P2y3QTsUhuqNDjYXMlt3iJtxzPgrXlz0ZwrvB7979C4lzZAtAPNif44Uc%7Ctkp%3ABk9SR8KHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 52,
|
||||
"value": "https://www.ebay.com/itm/134327782473?epid=224886862&hash=item1f468f4c49:g:fwMAAOSwrphjcmQF&amdata=enc%3AAQAHAAAA0MoVc8HnavBYYAcZpkyN7pzyeOjKXb1XBsPWG70gxXvRSLgJ9o1SNHJUYo2OHEfm%2FNzrKZrUORxxFMJ%2BstvFP3l6iik5KSVtD70PMjxOBUPKnFozs%2F5LxxqZxt9NPoVH8EaHJh0Mf4OYa467PZVV59QxrHIrRmG9N3IQFwj9FXZKTbSoQIVq9WnGCq6LvPFok0jLKo5JNo5RotMvquAk5il5e0r04gvIF9guKgM7lrQZnGNjbibqyCZN2NKvVaMR57INPi%2ByEG86n6dlSDXYQzs%3D%7Ctkp%3ABk9SR8KHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 53,
|
||||
"value": "https://www.ebay.com/itm/384354718272?epid=19034211465&hash=item597d539240:g:dJEAAOSwJfthDS3V&amdata=enc%3AAQAHAAAA4Ca7XeeVvYUALBuDtcNoNuhvGfaXQ7MvLfUZoXd5PeLwW5sPmCtc7NXmC9n%2FSJkwxtzY7BhiZVX37ie2PL6B2ksBm7K5XdYbc4yv%2BjWBo4OA2tuXRhx%2BwT%2BgYFa1zprhQnu2pN8BpbHTkusr7ZakxTQ0lWsCpcKJuNBSmaAN9H0lw2T%2FgBGQPbYVNc4weXw4ZJuoScNO7WsO7IxJxYzZFqReE38HWEkiWiXzrSeqFquhQUAqh2gedIWCFMELPz48TmP6E1vpckvVKSlWRiDvSPcx34QXXW1TruQRoI3l7%2B9c%7Ctkp%3ABk9SR8KHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 54,
|
||||
"value": "https://www.ebay.com/itm/165514454435?epid=19048294271&hash=item26896e25a3:g:DSQAAOSwJxVimRrw&amdata=enc%3AAQAHAAAA0AEcfe918pjX0VJfW6zR3ekp05VFnLII061XlBdjPyEm4imOkoy5Yd0nh4az%2BGOk9N71Bt4KgFcZAT8SfJz25DnGn0qxzSD8RXr%2BPzq1ny1LUzUaPn1v5YpdMOWorGo7munUtAh%2FaVDOJV0d%2BwLu9AIoOmF7kXH1TwZrZm3q4ZTSBTTo8dDGri3IsMNV4FFrvuAg%2FLCfDLu929MV6d9OkVFtshsNOAHO4zXUijjYQKaWRUtBnGp2HXXsoOOdc6yo6CpSp4FMkmWTA%2BVpiqBnoic%3D%7Ctkp%3ABk9SR8KHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 55,
|
||||
"value": "https://www.ebay.com/itm/384354878808?epid=21023708552&hash=item597d560558:g:H2YAAOSw8KthE6N8&amdata=enc%3AAQAHAAAA4DXQxeojdyx5xV0e9%2FqBE5zZ%2F1WT03i1eIKbZn8SSNqTKpyw80PFEMZ03eGhZrJZ8JStS9FFW1mPT7UTRkSRPOED6cae6T4cY3XEqIoBIY1en6kAreY%2Fj7j%2BOV01rYmK0Tp3zztJBPITNq3xi3o6lJNMAi5%2BQwGTZLVXYXIiTGIuRExIneKhvzOfT3btIr1vY0D%2F9YANjYsRwP33VVRR6XnGlWG5aPh9rAoH5UZCYSPJTPFdHyApMuIbsqGNxJ4Nyi%2BXwOf6FUWP7750zC%2BtYWmTJf498O02QmwDY7k%2FksOE%7Ctkp%3ABk9SR8KHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 56,
|
||||
"value": "https://www.ebay.com/itm/275558102208?epid=28024399462&hash=item40288af4c0:g:zZ4AAOSwBHhhQKm9&amdata=enc%3AAQAHAAAA4DX9Vhc87B23tD5jfMVFJZHAOvzu0gh%2BnU4M1DxyKOIiAwh1b1cfjI0HVs9yoIFK06Ka9nIaMeB635PtpGbprnIkaxOV9av20tgXnOwPOuMa3AtNImBgJUtABBhHW7k5zLtmD7GTc%2FwcdDGKadDOSoz%2Fymaebjd0V7QmUKz%2F3xqzJytX19G7P1QU3p7QoI77YwZuGE1K866QvszYtvlmsZLvmu%2BXbQMuDOoRqBP3Kb9OsWYVu8zfMEM0oFFGgMOw3RpM00htTxM7tc5tU5kWLnDRNoQpuFjblsYvoARi9xST%7Ctkp%3ABk9SR8KHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 57,
|
||||
"value": "https://www.ebay.com/itm/234870614872?epid=6041725317&hash=item36af612b58:g:Nb8AAOSwx4BjvVmz&amdata=enc%3AAQAHAAAAkEDeT8TmUlQ8IjQL99g9oZL8YHYFlR0TRqo2bLHhbsKtfw0AldDbv9VWIxc%2BvMg%2FV%2BbCex%2FVSmsJoNdMTOMyvGOIxG2sf4%2BRXvfldKHih939mnFK59lUpZGdc4WSukzF%2F5a%2FY0GE%2BHdBTDrPIFVKrG7RNbWqtjArUbPbe5nUxnQ6GIadY7kkmdgYp5%2F3MEsj%2Fg%3D%3D%7Ctkp%3ABk9SR8KHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 58,
|
||||
"value": "https://www.ebay.com/itm/275513445335?epid=242053148&hash=item4025e18bd7:g:lPkAAOSwa3NjVuDe&amdata=enc%3AAQAHAAAA4IR6AGPBlVGpOH7xh1nhu9MEJqdYk6VXoL8oRYBTP7ld8KoXBTQaIu6%2F6r7rlGWt4wcUHDG7WE8fQz4ZA0j07VGCVxpy%2FP9Eqff0%2B38UZ9%2F%2FlFrknO2rkHaX1DV13ztTCSNW2RRXVGIwan7%2B%2F167DOUDCVV32u7RRuq5hT23b%2BRA%2F30k3v4PbGABKCS5jTkveHIx9AeVbS23nMP8Cy3y7p9zpHisq5w3hVbWPzCoxOgc1vtgmZoRsZ23uaTwOMJPgWOxzxj1pB5JNh0iY97WEWg70Rut698YKTlG6kP%2FTD7V%7Ctkp%3ABFBMwoeqssJh"
|
||||
},
|
||||
{
|
||||
"num": 59,
|
||||
"value": "https://www.ebay.com/itm/325520901816?epid=27041707918&hash=item4bca8ec6b8:g:uqYAAOSwXWZj29Bo&amdata=enc%3AAQAHAAAA4G6SJ3xy1glI4gOD5fDQkPnjzMfEYvVIfAzHMFZ1X1i%2BbSRbZ6s11S6805uASEQCGH2lhtdK0aJIM2s2eyzxSQz8tCDSWmmLxuvNb9SmNHw4eFM%2BKfk09W%2FNZ%2B5UnEv%2FOdf68sImPbp0vWR2a1Q8p4iYQR09VRVZrwI4FzxuggoPmQuIh8K5%2BqyopGx2EsWuDaMSbaGF%2FGVKFrrPoZGcZY8XzRX7jK9ghb30K36vP%2BTIuDdt1GHqIqVvexsNG7FAzBdNymFarmBrMvBdvGaahw9t0gAn6XFcuFAE3YYbA5Nk%7Ctkp%3ABFBMwoeqssJh"
|
||||
}
|
||||
],
|
||||
"default": ""
|
||||
}
|
||||
],
|
||||
"loopType": 1
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,740 +0,0 @@
|
||||
{
|
||||
"id": 7,
|
||||
"name": "eBay Names and Link Addresses - demo",
|
||||
"url": "https://www.ebay.com",
|
||||
"links": "https://www.ebay.com?ids=12\r\nhttps://www.ebay.com?ids=12\r\nhttps://www.ebay.com?ids=12",
|
||||
"containJudge": false,
|
||||
"desc": "https://www.ebay.com\neBay Names and Link Addresses - demo",
|
||||
"inputParameters": [
|
||||
{
|
||||
"id": 0,
|
||||
"name": "urlList_0",
|
||||
"nodeId": 1,
|
||||
"nodeName": "Open Page",
|
||||
"value": "https://www.ebay.com",
|
||||
"desc": "List of URLs to be collected, separated by \\n for multiple lines",
|
||||
"type": "string",
|
||||
"exampleValue": "https://www.ebay.com"
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"name": "inputText_1",
|
||||
"nodeName": "Input Text",
|
||||
"nodeId": 2,
|
||||
"desc": "The text to be entered, such as 'computer' at eBay search box",
|
||||
"type": "string",
|
||||
"exampleValue": "iPhone",
|
||||
"value": "iPhone"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"name": "loopTimes_Loop Click Next Page_2",
|
||||
"nodeId": 4,
|
||||
"nodeName": "Loop Click Next Page",
|
||||
"desc": "Number of loop executions, 0 means unlimited loops (until element not found)",
|
||||
"type": "int",
|
||||
"exampleValue": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"outputParameters": [
|
||||
{
|
||||
"id": 0,
|
||||
"name": "Name",
|
||||
"desc": "",
|
||||
"type": "string",
|
||||
"exampleValue": "Apple iPhone 11 - 128GB 64GB - GSM+CDMA Factory Unlocked \"Excellent' Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"name": "Link Address",
|
||||
"desc": "",
|
||||
"type": "string",
|
||||
"exampleValue": "https://www.ebay.com/itm/115398776875?epid=18045314698&hash=item1ade4d982b:g:BI4AAOSwo5Rij4S0&amdata=enc%3AAQAHAAAA4ELrFOtK9Q4ol28SIBCj8AlEyuoOswMlad9UdATAXLLXzCrNiXBXqGjK834mUeluTYl2fG4nLibLzPUvOxpTWXkmIyoL%2B14iExY93etuVl%2FBk3C5nIg00wVu4dhYbRF07x6Bsjvf78UyZkC23ZQNHj%2BdfhMp16XqtHjP4m%2Fu2AYs%2F6lcEVMwWKCOW8mLSUEznmhE3xbgOTKZY7vTkB%2BNqszgjnI%2Bj9FduDUmPyH%2ByboyhCEDQHEOnS6boubjzpbJ4gvRsNrBGqR3qcdh%2F1qqEGxETnzj8k%2FFaggVj5uyGRqf%7Ctkp%3ABFBMuoeqssJh"
|
||||
}
|
||||
],
|
||||
"graph": [
|
||||
{
|
||||
"index": 0,
|
||||
"id": 0,
|
||||
"parentId": 0,
|
||||
"type": -1,
|
||||
"option": 0,
|
||||
"title": "root",
|
||||
"sequence": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
],
|
||||
"parameters": {
|
||||
"history": 1,
|
||||
"tabIndex": 0,
|
||||
"useLoop": false,
|
||||
"xpath": "",
|
||||
"wait": 0
|
||||
},
|
||||
"isInLoop": false
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"index": 1,
|
||||
"parentId": 0,
|
||||
"type": 0,
|
||||
"option": 1,
|
||||
"title": "Open Page",
|
||||
"sequence": [],
|
||||
"isInLoop": false,
|
||||
"position": 0,
|
||||
"parameters": {
|
||||
"useLoop": false,
|
||||
"xpath": "",
|
||||
"wait": 0,
|
||||
"url": "https://www.ebay.com",
|
||||
"links": "https://www.ebay.com?ids=12\r\nhttps://www.ebay.com?ids=12\r\nhttps://www.ebay.com?ids=12",
|
||||
"scrollType": 0,
|
||||
"scrollCount": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"index": 2,
|
||||
"parentId": 0,
|
||||
"type": 0,
|
||||
"option": 4,
|
||||
"title": "Input Text",
|
||||
"sequence": [],
|
||||
"isInLoop": false,
|
||||
"position": 1,
|
||||
"parameters": {
|
||||
"history": 4,
|
||||
"tabIndex": -1,
|
||||
"useLoop": false,
|
||||
"xpath": "//*[@id=\"gh-ac\"]",
|
||||
"wait": 0,
|
||||
"value": "Personal Computasdfer"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"index": 3,
|
||||
"parentId": 0,
|
||||
"type": 0,
|
||||
"option": 2,
|
||||
"title": "Click Element",
|
||||
"sequence": [],
|
||||
"isInLoop": false,
|
||||
"position": 2,
|
||||
"parameters": {
|
||||
"history": 4,
|
||||
"tabIndex": -1,
|
||||
"useLoop": false,
|
||||
"xpath": "//*[@id=\"gh-btn\"]",
|
||||
"wait": 0,
|
||||
"scrollType": 0,
|
||||
"scrollCount": 0,
|
||||
"paras": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"index": 4,
|
||||
"parentId": 0,
|
||||
"type": 1,
|
||||
"option": 8,
|
||||
"title": "Loop Click Next Page",
|
||||
"sequence": [
|
||||
6,
|
||||
5
|
||||
],
|
||||
"isInLoop": false,
|
||||
"position": 3,
|
||||
"parameters": {
|
||||
"history": 5,
|
||||
"tabIndex": -1,
|
||||
"useLoop": false,
|
||||
"xpath": "//*[contains(@class, \"pagination__next\")]",
|
||||
"wait": 0,
|
||||
"scrollType": 0,
|
||||
"scrollCount": 0,
|
||||
"loopType": 0,
|
||||
"pathList": "",
|
||||
"textList": "",
|
||||
"exitCount": 156,
|
||||
"historyWait": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"index": 5,
|
||||
"parentId": 4,
|
||||
"type": 0,
|
||||
"option": 2,
|
||||
"title": "Click Next",
|
||||
"sequence": [],
|
||||
"isInLoop": true,
|
||||
"position": 1,
|
||||
"parameters": {
|
||||
"history": 5,
|
||||
"tabIndex": -1,
|
||||
"useLoop": true,
|
||||
"xpath": "//*[contains(@class, \"pagination__next\")]",
|
||||
"wait": 0,
|
||||
"scrollType": 0,
|
||||
"scrollCount": 0,
|
||||
"paras": [],
|
||||
"loopType": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"index": 6,
|
||||
"parentId": 4,
|
||||
"type": 1,
|
||||
"option": 8,
|
||||
"title": "Loop Collection",
|
||||
"sequence": [
|
||||
7
|
||||
],
|
||||
"isInLoop": true,
|
||||
"position": 0,
|
||||
"parameters": {
|
||||
"history": 7,
|
||||
"tabIndex": -1,
|
||||
"useLoop": false,
|
||||
"xpath": "/html/body/div[8]/div[4]/div[2]/div[1]/div[2]/ul[1]/li/div[1]/div[2]/a[1]",
|
||||
"wait": 0,
|
||||
"scrollType": 0,
|
||||
"scrollCount": 0,
|
||||
"loopType": 1,
|
||||
"pathList": "",
|
||||
"textList": "",
|
||||
"exitCount": 0,
|
||||
"historyWait": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"index": 7,
|
||||
"parentId": 5,
|
||||
"type": 0,
|
||||
"option": 3,
|
||||
"title": "Collect Data",
|
||||
"sequence": [],
|
||||
"isInLoop": true,
|
||||
"position": 0,
|
||||
"parameters": {
|
||||
"history": 7,
|
||||
"tabIndex": -1,
|
||||
"useLoop": false,
|
||||
"xpath": "",
|
||||
"wait": 0,
|
||||
"paras": [
|
||||
{
|
||||
"nodeType": 1,
|
||||
"contentType": 0,
|
||||
"relative": true,
|
||||
"name": "Name",
|
||||
"desc": "",
|
||||
"relativeXpath": "",
|
||||
"exampleValues": [
|
||||
{
|
||||
"num": 0,
|
||||
"value": "Apple iPhone 11 - 128GB 64GB - GSM+CDMA Factory Unlocked \"Excellent' Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 1,
|
||||
"value": "Apple iPhone X A1901 - 64GB | 256GB - GSM Unlocked AT&T T-Mobile Metro CricketOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 2,
|
||||
"value": "Apple iPhone 11 - 64GB 128GB 256GB - Unlocked Smartphone Good Condition WarrantyOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 3,
|
||||
"value": "Apple iPhone 8 | 8 Plus 64GB 128GB 256GB GSM Unlocked ATT T-Mobile Metro CricketOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 4,
|
||||
"value": "Apple iPhone 11 - 64GB - All Colors - Fully Unlocked (CDMA+GSM) - Good ConditionOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 5,
|
||||
"value": "Apple iPhone XS Max - 64GB Used T-MobileOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 6,
|
||||
"value": "Apple iPhone 11 - 64GB 128GB 256GB - Unlocked - Excellent A+ Condition - UKOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 7,
|
||||
"value": "Apple iPhone 11 128GB Black Green Red Verizon Unlocked Mint ConditionOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 8,
|
||||
"value": "Apple iPhone XR - 64GB - All Colors - Fully Unlocked (CDMA+GSM) - Good ConditionOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 9,
|
||||
"value": "Apple iPhone 11 Pro, Pro Max Unlocked 64GB 256GB 512GBSmartphone UsedOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 10,
|
||||
"value": "Apple iPhone 12 Pro 128GB 256GB 512GB Unlocked All Colours Good ConditionOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 11,
|
||||
"value": "Apple iPhone SE (2020) A2275 - 128 GB - Space Gray Color - AT&T only- Beautiful!Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 12,
|
||||
"value": "Apple iPhone XR Unlocked Various Colors 64GB 128GB 256GB Smartphone UsedOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 13,
|
||||
"value": "Apple iPhone SE 2nd Gen 64|128|256GB 4G LTE 4.7 Verizon Unlocked T-Mobile AT&TOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 14,
|
||||
"value": "Apple iPhone 11 - 64GB 128GB 256GB - Unlocked - Very Good Condition - UK StockOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 15,
|
||||
"value": "Apple iPhone X - 64GB 256GB - Unlocked - Very Good Condition - All ColoursOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 16,
|
||||
"value": "Apple iPhone 8 - 64GB/256GB - Gold/Grey/ Silver - UNLOCKED - Excellent Grade AOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 17,
|
||||
"value": "iPhone 11 ProMax 256GB Unlocked Grey - Great Condition w/ ExtrasOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 18,
|
||||
"value": "Apple iPhone 11 Pro - 64GB 256GB 512GB - Unlocked - Excellent A+ Condition - UKOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 19,
|
||||
"value": "Apple iPhone 11 64GB 128GB Verizon T-Mobile AT&T Unlocked Good ConditionOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 20,
|
||||
"value": "Apple iPhone 11 Pro 64GB 256GB 512GB Unlocked All Colours Good ConditionOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 21,
|
||||
"value": "New ListingApple iPhone 11 - 64GB - Purple (Unlocked) A2111 (CDMA + GSM)Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 22,
|
||||
"value": "Apple iPhone 8 | 8 Plus 64GB 128GB 256GB GSM Unlocked ATT T-Mobile Metro CricketOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 23,
|
||||
"value": "Apple iPhone 11 Pro - 256GB - Gold (Unlocked)Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 24,
|
||||
"value": "Apple iPhone 11 Pro Max 64GB 256GB 512GB Unlocked Smartphone Good ConditionOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 25,
|
||||
"value": "Apple iPhone 11 - 128GB - Factory Unlocked - Good ConditionOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 26,
|
||||
"value": "Apple iPhone 7 - 32GB - All Colors - Unlocked - Good Condition Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 27,
|
||||
"value": "original Apple iPhone 1st Generation 8GB unlocked 2G GSM network work goodOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 28,
|
||||
"value": "Apple iPhone 11 - 64GB 128GB 256GB - Unlocked - Good Condition UK StockOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 29,
|
||||
"value": "Apple iPhone 7 - 32GB - Silver (Unlocked) A1660 (CDMA + GSM) Very Good!Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 30,
|
||||
"value": "Apple iPhone 11 64GB 128GB 256GB Unlocked All Colours Good ConditionOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 31,
|
||||
"value": "Apple iPhone XR 64GB 128GB 256GB - Unlocked Smartphone - Good Condition - UKOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 32,
|
||||
"value": "Apple iPhone 11 Pro Max - 64GB - Midnight Green (Unlocked) A2218 (CDMA + GSM)Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 33,
|
||||
"value": "Apple iPhone 11 Pro Max - 64GB 256GB 512GB - Unlocked - Excellent A+ ConditionOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 34,
|
||||
"value": "Apple iPhone 11 - 64GB / 128GB - Unlocked Smartphone - Very Good ConditionOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 35,
|
||||
"value": "Apple iPhone XS - 256GB - Silver (Unlocked) A1920 (CDMA + GSM) Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 36,
|
||||
"value": "Apple iPhone 13 - 128GB 256GB 512GB Unlocked All Colours Good ConditionOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 37,
|
||||
"value": "Apple iPhone 8 Plus 64GB Factory Unlocked Smartphone - ExcellentOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 38,
|
||||
"value": "iPhone 12 Pro Max 128GB GraphiteOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 39,
|
||||
"value": "Apple iPhone SE 1st Generation 16GB /32GB /64Gb /128GB Smartphone Unlocked #1B1 Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 40,
|
||||
"value": "New ListingApple iPhone 8 Plus - 64GB - Silver (UNLOCKED) USEDOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 41,
|
||||
"value": "Apple iPhone XS ,XS Max Unlocked Various Colors 64GB 256GB 512GB Smartphone UsedOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 42,
|
||||
"value": "Apple iPhone 11 64GB 128GB AT&T Sprint T-Mobile Unlocked Verizon GoodOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 43,
|
||||
"value": "Apple iPhone 11 Pro Max 256GB Midnight Green Unlocked ExcellentOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 44,
|
||||
"value": "Apple iPhone 11 Unlocked Various Colors 64GB 128GB 256GB Smartphone UsedOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 45,
|
||||
"value": "Apple iPhone XS - 256GB - All Colors - Unlocked (CDMA+GSM) - Very Good ConditionOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 46,
|
||||
"value": "Apple iPhone 11 - 64GB - Black (Unlocked) A2111 (CDMA + GSM)Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 47,
|
||||
"value": "Apple iPhone X Unlocked Various Colors 64GB 256GB Smartphone UsedOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 48,
|
||||
"value": "Apple iPhone 12 - 256GB - Blue (Unlocked)Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 49,
|
||||
"value": "Apple iPhone 12 - 64GB 128GB 256GB - Unlocked - 12 Months Warranty - Grade A+Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 50,
|
||||
"value": "Apple iPhone 12 64GB Factory Unlocked AT&T T-Mobile Verizon Good ConditionOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 51,
|
||||
"value": "Apple iPhone X - 64GB - All Colors - Fully Unlocked - Very Good Condition Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 52,
|
||||
"value": "Apple iPhone 6s Plus Unlocked Various Colors 16GB 64GB 128GB Smartphone UsedOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 53,
|
||||
"value": "Apple iPhone 11 - 64GB - All Colors - Fully Unlocked - Very Good Condition Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 54,
|
||||
"value": "Apple iPhone XR 64/128/256GB Fully Unlocked (GSM+CDMA) AT&T T-Mobile VerizonOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 55,
|
||||
"value": "Apple iPhone XR - 64GB - All Colors - Fully Unlocked - Very Good Condition Opens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 56,
|
||||
"value": "Apple iPhone XS Max 64GB 256GB 512GB Unlocked Smartphone Good RefurbishedOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 57,
|
||||
"value": "Apple iPhone 12 Pro Max 256GB Unlocked GoldOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 58,
|
||||
"value": "Apple iPhone X 64GB 256GB 4G LTE 5.8 Verizon Unlocked T-Mobile AT&T UltraOpens in a new window or tab"
|
||||
},
|
||||
{
|
||||
"num": 59,
|
||||
"value": "New ListingRead* Apple iPhone 12 mini - 128GB - Blue (Unlocked) A2176 ~52847Opens in a new window or tab"
|
||||
}
|
||||
],
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"nodeType": 2,
|
||||
"contentType": 0,
|
||||
"relative": true,
|
||||
"name": "Link Address",
|
||||
"desc": "",
|
||||
"relativeXpath": "",
|
||||
"exampleValues": [
|
||||
{
|
||||
"num": 0,
|
||||
"value": "https://www.ebay.com/itm/115398776875?epid=18045314698&hash=item1ade4d982b:g:BI4AAOSwo5Rij4S0&amdata=enc%3AAQAHAAAA4ELrFOtK9Q4ol28SIBCj8AlEyuoOswMlad9UdATAXLLXzCrNiXBXqGjK834mUeluTYl2fG4nLibLzPUvOxpTWXkmIyoL%2B14iExY93etuVl%2FBk3C5nIg00wVu4dhYbRF07x6Bsjvf78UyZkC23ZQNHj%2BdfhMp16XqtHjP4m%2Fu2AYs%2F6lcEVMwWKCOW8mLSUEznmhE3xbgOTKZY7vTkB%2BNqszgjnI%2Bj9FduDUmPyH%2ByboyhCEDQHEOnS6boubjzpbJ4gvRsNrBGqR3qcdh%2F1qqEGxETnzj8k%2FFaggVj5uyGRqf%7Ctkp%3ABFBMuoeqssJh"
|
||||
},
|
||||
{
|
||||
"num": 1,
|
||||
"value": "https://www.ebay.com/itm/275621347165?epid=4009565593&hash=item402c4fff5d:g:GksAAOSwon9jwKs4&amdata=enc%3AAQAHAAAA0LKRmqqWx5OPEZfa7A3aRP3L2DiuB9svO4VztlFXtjLC%2FP4%2BcWNWwEBZXnVqjo0shvJyPl%2FJU5%2B9QVJYor7ihcRRv22KXkWTYeocyxjU7G9txYQ3YcqpV7BlHspMpCuPCFkegCIs6dY3M4SAadrnjV2T7ucznx%2BG9VXBG1Qx6lb1x5eV1t8aITS%2FZazBVA%2BnyTH00%2BsKKPwXJucpAqS80gDlsCFzJCP7QvlAGXYdQBjx70MA2l3mFTH2T91oWWIpK%2BPp%2FckUDVlbJaGtWgfYmTU%3D%7Ctkp%3ABFBMuoeqssJh"
|
||||
},
|
||||
{
|
||||
"num": 2,
|
||||
"value": "https://www.ebay.com/itm/284427971922?epid=17034215590&hash=item42393a6d52:g:5N8AAOSwxGthKe4R&amdata=enc%3AAQAHAAAA4M5eT2AiRrAwtbgqXGRm%2BXVy9n0qktk3rHUZXzG%2BsgpRmUzbUxNNGUCUGnjlmnMIqF9Gtfn4J4BrEt1ZYchG5eJ3%2BXWGMigw9DEj%2F%2B0x5chQL7jz08VUYtYdHyNZg507EFXYv0gttSfRfOKh5fwV%2BaxFJop0nZCz8pFlB%2FRjCg3nYkpV2u%2F0LCJHDFeGbj2KdJDH6nAp%2BPkhAz2DBUKkwc3KRl6KgJHK8Mqrqp%2BQdbgJo02%2F%2B8Ozv2QrIANfw9JTaFALDtmNoT0Gst5u2UKbfzgMjAwYzuHKXoAAwgiZlDn7%7Ctkp%3ABFBMuoeqssJh"
|
||||
},
|
||||
{
|
||||
"num": 3,
|
||||
"value": "https://www.ebay.com/itm/185551229219?epid=239099177&hash=item2b33b71123:g:L~MAAOSwIc1jW-Oh&amdata=enc%3AAQAHAAAA0Ei%2FHaIfrdC9r1CGwS%2Fqaga1yJsD4RumFxrkhALy8UKnx6Wn%2FYmjNEsa1wy0CakU0g0XDQwOLFT85ni4Fx5MjwhmvBGhs0nVvKvpjYpFk4ab%2Bz1PirrDSr4xh88%2Bz5JpK07JF98td7vdVQug8%2B5eU6h8o%2FqNYeNPI%2FEF%2FJeqZGtApJzCapqd9xVOI%2FJMSRmt9MAP8NF0xAErePpmFmFmYhJFW4oq9WXwktqG%2B2pSttoihrFYkvfnK%2BNyUCJb0ew%2FGubnZUetPdHpdPz9NZipYqM%3D%7Ctkp%3ABFBMvIeqssJh"
|
||||
},
|
||||
{
|
||||
"num": 4,
|
||||
"value": "https://www.ebay.com/itm/384354658993?epid=14034212858&hash=item597d52aab1:g:dJEAAOSwJfthDS3V&amdata=enc%3AAQAHAAAA4GfEUTxow6USl6bAFapoHtI5u26z2JPHH7%2F%2FBfoRYkNfHjJ4%2FU8mMv3gwzCE03%2FDTyA668sZ0kXIXh4lN7qaGNd3GDBFA6ZD%2ByLOyJ2QuiJByfX155qZpLLypkWeF1ObvUmpKwF%2FvBGDcpMhN8j%2Fodhx%2FiHRfTm2ry3gQzTp6vi2FcUBdAXCQWnh6A73D1wlMjJhBNvMxBVGIS8R%2B3m3%2BT2LNRdF%2F1eAr%2BwcH2T%2FJ84m91EIg95wDWdYtS59V0OLeM7FXBj55M%2FE4HuVlAE5iEjAOs8S9iC20wQr5ABcR%2Fx0%7Ctkp%3ABk9SR7yHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 5,
|
||||
"value": "https://www.ebay.com/itm/266104461656?hash=item3df50fd958:g:FVMAAOSwcHZjyK3N&amdata=enc%3AAQAHAAAAkMnZsbas35KCk%2FKW5FkWhd9YihRBIQZfKwBOUop1G7cd77yagTIsL9UtXOTcgsbNdygZ05GjK%2F8NRy74JnHF%2FkA7bblIQfCOV2TnKQeKdpiRPnB2qm7%2FzSKYAK9hAdCyaOV3tPLb9r2wG2kfo2CIZ1P4n5oUsHHw3MWK5eF%2FhtI9FWRnyMxbrLAE%2FNWxGM9SsA%3D%3D%7Ctkp%3ABk9SR7yHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 6,
|
||||
"value": "https://www.ebay.com/itm/284837173732?epid=27034209608&hash=item42519e59e4:g:oPQAAOSwpDpio8kq&amdata=enc%3AAQAHAAAA4LedSPm1pfKlFdImyMXI6LDoSNlT1syYE9y7VcRh083cVmqlijjzeITpNmgp9lL%2BUSm7OftDmaEqajMCy1hH1B7fKCmeoFclRZRUfFCxOKnlWIy4DLJBr8KqY5%2Bvfjfo2IesZ5ZWrphX2Wu%2F2j5IzSNwIwW4NhlDoQUZgRAAbO5rE1ZeEHaWqvZb54aELniR2P2e2OClozO4A9LbM6E33oyMSgXQX1aeZnjhJ4pA3z2YcDf992bsShgltr5x1IOAp2zuQRTl%2F1D%2FIuIe%2FJnJiwtkWhfJ7P6yNR3i0P3Comwl%7Ctkp%3ABk9SR7yHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 7,
|
||||
"value": "https://www.ebay.com/itm/115382465390?epid=17035818063&hash=item1add54b36e:g:dKoAAOSwRLRifmnG&amdata=enc%3AAQAHAAAA0Mr1qoKp%2BHTjRd0HFCKFhepWD3r7S6zyQM6qnMPPNSsq1muHd7bRA7gpvh9%2BR16xSBV5sFZyGIciRZuCRI9wQMQiTE0HhmZgGuaCFPhjiFpLStA7D7xWWSYYEMDXYPI1hvY2PdmeWcFdkBv8o7PKKBWGMsNfrrp4ybtcElhGONVBIZgIOsdWqyCr%2BDHvzg9s5TetZPXRi%2BQysbpb9CdVVlCHKXXAUBxQgIdXqsE2%2BlTxRvhziCSGWoDYfsFRMbZ0fbLLenzO5oXRtwRLdMf8W9w%3D%7Ctkp%3ABk9SR7yHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 8,
|
||||
"value": "https://www.ebay.com/itm/174911368932?epid=13023706562&hash=item28b987aee4:g:H2YAAOSw8KthE6N8&amdata=enc%3AAQAHAAAA4BYzR%2BW70yaCb7fiAGMUiwHpKVhjj9Yrs0mALp6Yj5K4ZV5lNkgjjSx3WwTfWXERRXZwY9qrhiIq%2BusfV2p8WFmH1wTX6%2FxZwX8MF9FW89zptnptJy4bZd8GEcZgJoGP6rwOs3cXlZvOaU8GPMhRwjvjvqfcrcZ71MZbzzw26dOFVUxWye495h8mq575ILei%2FGs9hGx%2FGtfTnbkMqt%2FJcoj1tHP7ASU4pqUYKf0GZl061iypnLgSm5x3HCnd3ZYtCPPl3P0gbqCTMFSk57lgkz4arVRPFgzInnCqTQcjHaBZ%7Ctkp%3ABk9SR7yHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 9,
|
||||
"value": "https://www.ebay.com/itm/134304284556?epid=11037566785&hash=item1f4528bf8c:g:BtMAAOSwY9ZjW8s9&amdata=enc%3AAQAHAAAA0A7ZwCdas9HwReYsPxksq35ZC3yg0bq9QrjBH5g55Rk%2F3mEFdM%2Bbni7bXBrEjf89aNEfpYUrwxjn6XTL%2BHebYVfdcXS2JEBvUFMhu7ybb4mxdkDpn4DwLjf44iJsx6GGNDOlJZtQkn%2Bb3M5OpdcyJ4cAVxYv84YzmREetNOF1dv2VawtWi4OgpWcCBrCMux51TMBqGDp%2FD4fJpcuuURNMhd%2FYeSQOaNg%2FwRoUolLR8L%2F6E9%2FzCmhObilajteLbuAPhpkpOLCNF5AxxT%2Fnx33Oh0%3D%7Ctkp%3ABk9SR7yHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 10,
|
||||
"value": "https://www.ebay.com/itm/265427542241?epid=25041703738&hash=item3dccb6e0e1:g:Bx0AAOSw2w1hpKF3&amdata=enc%3AAQAHAAAA4MvC6Na2jkJUpYaYWpqMcESD9zwQLxHpstfeDKh0fkBKan2fH4XzHGovpbaEyyAcN6HFaAjupDxp9LNNylRfcKWJ6QpnYobpMeBsOw0dShsTt2QKxnhNHYOdh4JBTO8OgpuXKvpjmSrvGyseLMjn2QudSCqOnBSgnm4d5Ci%2FpwE3eoKo27gXum%2FnPwV%2BVngyn6bhJHAf%2BX4jOop0kgsOWv9wwyN2DAgy4kcBxlk21aKvsSfdupdb6iogfnmBjlTMXFFpgv22LcSyl3pn8UZEUw%2FcPzThaLMR3%2FK1wjdwePTo%7Ctkp%3ABk9SR7yHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 11,
|
||||
"value": "https://www.ebay.com/itm/115691162547?epid=4051364949&hash=item1aefbb0bb3:g:II8AAOSwlO9jeBJ8&amdata=enc%3AAQAHAAAA4NZ%2FpQYQVCVzZPkiXgQt5%2Bsh8xpsB26BdrW8A9nj1Z2Bejf4mdE0nC3FLqpdlYyDDNYsUXrleFpH9xFutW0d7illZC5J4Qupf%2FKwSHpCrSitUJDnxycgqbdU9sMBG8IQiF%2BzGq9kJdt9%2BCuyNJKjjyEaBccfhl4WuKoqso5bwGbJxH2M38Z6K2BGRGgifKr5THOSczWAQPDpHxbgrY0Jf02%2FrIkn4CE4TBnaVl7WiDOPtuCUUPRx0JpgwvdfGjW8DbfemJzaoyylO6q8ojLjm%2BM0on0O3OPsmOEApTtSG7n0%7Ctkp%3ABk9SR7yHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 12,
|
||||
"value": "https://www.ebay.com/itm/134289912060?epid=22034747823&hash=item1f444d70fc:g:IzYAAOSw6tdjUN3W&amdata=enc%3AAQAHAAAA0NH4iRsvvaEBqYiBaAmyTvhN72tTqAPA2CfJ9VNAfqzEwplsjc2KYde8MV7UOX3ddyytJ2ye7nuF79idOJeosYY4T4NDkARHmfH3mUtjZ2%2BTTUrYvgmwKJlAYM%2BS%2BPt4ELAZl34mGmS5vh3QGKNJnaEYaoYiUQbU6ecHAcqJEk1Pk46%2FVZuAllsioeNabp4oMVVYSV%2BvjCqjlHR5nINdPJYZYa3zTrFZilValvznXR051Pn289ZJITrEOcKhgSYQgmM4B7UhE%2Fh146IoNoVK7wU%3D%7Ctkp%3ABk9SR7yHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 13,
|
||||
"value": "https://www.ebay.com/itm/165337199649?epid=24037853119&hash=item267edd7421:g:WK0AAOSw5pxjgrpi&amdata=enc%3AAQAHAAAA4BcTaXjAPWkPQHEGLadS0WevO4pCHHbxB3E%2Bghp%2FwSrSgRIZxdhNUWRkvYtDmmA5NcjtfCfH%2F%2B7%2BLASFZVoedKqaqqwklr1puMWBnzC4EPuOTuoeOjqIo%2BNMC2%2BFjYrediSVBOZGwX5l%2F8ALbZqojBoYIdXxkSMNlT7alj64oe%2BLjmCC3UNI4QUMWm0LOll9EkCuWPKi%2FKpi2O7Jrd0W%2BEmLNmJ844%2FCQKj5DZ9OHZwL%2BrTXc4av804pAF%2Fj9%2BkoOd1Vab2Qsmhnms5DLhIfnmqBDuUvb28%2BdVGFOQXCIemW%7Ctkp%3ABFBMvIeqssJh"
|
||||
},
|
||||
{
|
||||
"num": 14,
|
||||
"value": "https://www.ebay.com/itm/284837193309?epid=13057692504&hash=item42519ea65d:g:ITYAAOSwFaVin-Fd&amdata=enc%3AAQAHAAAA4LOHQXdx6PMPZ8BELQ8MPrLBBd%2F3p9CxwKR%2BN55WPrnf2LXiH8d2jSfgdBSja68RBxt93aSYJ2oX9m%2FYaF6LKIA728d0ZRNIiQnTjar5tWblRvWM9w02WWgJsuj7K6KXkIi%2FeQzuEeOp2d3lOt6l9hx1ajdq18HCCVEahnN%2BbCOlIoTKvdZfCeXGKblptxg2f68S1f8MMmAt8MSQ17cqz3DIpeyFIbjZhMcFEQRdYS5Z5IKqgDRpjtu0%2BRtFbfmNfV6GsOdUfaQ%2Bkeu2EE%2B53nJNulypa8szcne0ty2yGmKJ%7Ctkp%3ABFBMvIeqssJh"
|
||||
},
|
||||
{
|
||||
"num": 15,
|
||||
"value": "https://www.ebay.com/itm/284842367385?epid=14037756699&hash=item4251ed9999:g:230AAOSwiAVio8mQ&amdata=enc%3AAQAHAAAA4CmsLG5XpeMzPM4bhZX8I%2FsN4u1Vfdw7Vl9uH0EsZHoS4msT8d2RBADlwH2Xztbdbvxqq0sAZyO9uYLx7FHuGNXqlpS8tSvE3VW4irrIr8Vh%2BN16AmhtUBX2WXsdVLxyqkc4c79o9o%2BClf3y5srPjPdk3mMFCY59aI9%2FIJRVWMl3Vr0d2hyBAt6V7HR24HxN5j7JYjYqmQfJkgm%2FmXvq53q3TVtV5HdmoSQDi3OjOsSqesl5JoFV2xCVx0bMgwaEkW6VtFVlUsrKvsraLX2mNK2xVDJ8BlmtgFQj3xoUupmE%7Ctkp%3ABFBMvoeqssJh"
|
||||
},
|
||||
{
|
||||
"num": 16,
|
||||
"value": "https://www.ebay.com/itm/114975199041?epid=245228137&hash=item1ac50e4f41:g:nnsAAOSwecFhNwVE&amdata=enc%3AAQAHAAAA4DA0xaGh9QtOHo%2B0gmkmSwsL9vXdb7L%2BgYw%2BWhXynpRXCUKMBcxv9cpOdGNh0fW3YOUc9ypjATmcwpO0227HBT7QbNhOySgI6H1BJfgaC6s1DygmUB60DpVzUFmKAFQrIfyZ3SsrZCwYYljpHAZbnHapV7N4cKoz0AKX9gLlXFTNH5B5acSul7m5MMho9rrTA3zvPg0pQeTiDCng6W5FeuG3P9OwgP%2B46fXOGQSC4TFYOahzFFus0kKxH1ZhUpXI%2FzlXQw3HL6tijDlXWkFkiTLlQAzwMmfVLjzdFk91AniF%7Ctkp%3ABk9SR76HqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 17,
|
||||
"value": "https://www.ebay.com/itm/285126736012?hash=item4262e0b88c:g:QcIAAOSwDSRjxB15&amdata=enc%3AAQAHAAAAkGKiAlwtur%2FmPt%2B9vIUM6Cyu3DdqkEPdG9Sj0qXc1WMhLE0Bx4tBvgMdHhtXTMDmmSeFtpBU1UU06Fsgr5p3LsXLSs7sjQ31BCoYBid5iLj247vpFIhU2Ie62URrdVXMPSK3fvyHppzD8BaqyrF6nabK3PHExgZl3CQ%2FtS9Sav2OHr2fQmmeT9emuqqVXUW2Fw%3D%3D%7Ctkp%3ABk9SR76HqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 18,
|
||||
"value": "https://www.ebay.com/itm/284843502844?epid=11034210273&hash=item4251feecfc:g:q4kAAOSwr1Nio8pF&amdata=enc%3AAQAHAAAA4AqqXJw6a3IVMos1JmYlvdF%2BspvAt0nIKthfNtw8GBKxhA3MqQbi3rB5y4%2FVpXvKppuTlWMWUjsg1UwLXnAi6NhjnlrlGkAwaEawiC4PlmoZzTA819Wt%2FRM4b5GYG0o3MfMftflW6%2FK5Ib2E1crI%2FHStqMHLyRlBvb8wZAL3FE%2Fc5xQA5VDRzQ5wksk1rXtT6YQoiW6McBdIFFbrLFW3%2BIidgZHDUrPC26CE6U4jhW4DmVrl%2BZijyBTpRlSaRaaPcwUOEKyYSKr%2Fw2anP3UMGyNT71aTqzFauCpcKhcVW9hd%7Ctkp%3ABk9SR76HqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 19,
|
||||
"value": "https://www.ebay.com/itm/115382462850?hash=item1add54a982:g:Qm4AAOSw~9tifmko&amdata=enc%3AAQAHAAAA4CtHO%2F7BqM6oDOBsGwo1GLY6nqMr65odDv4SJ4zxNGxeoxl47AUl%2FArq56grc7G3IB6%2FX%2Fk0u0Nn8KtlhH7TKXCiYqlbZxPd9hMnTMzh%2B6Lmtu%2B%2B91bKluc0a%2BYi68OkaQoxUBW6JtUoXHylhN5mbiWxxy4%2B2xojZMpFj1GalpMfQYiNZQzt4pWOOD436%2FoerSU06aTif5Go6jRKd4K04PFvUsjOPrEtlDhhGke3o1eGLyo9QcCd5oSrSOJmAHijrWsx%2Fl99%2BkZF%2BJ1yN533rvLl7VCM1jcNHIXa9XA7gSMP%7Ctkp%3ABk9SR76HqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 20,
|
||||
"value": "https://www.ebay.com/itm/265495435187?epid=11043394863&hash=item3dd0c2d7b3:g:cDgAAOSwaI9h3XSA&amdata=enc%3AAQAHAAAA4KsoLUFY4EfgdFccXqshoZUkDxOQBoJqKdMuIGPFrvuZ%2FxqMW7hdxi9UQpgSGDUDuRJdXZsA4ReDCxcyNoAYbVPasi%2FygBXJlx8OusnlaNknU7gNzx1mLHtN6MfiwZJ1f5IyXrs77JpkqDN2qhl%2BZ9E%2Bx%2BSAAjBfDdcu5nYgrvCTXT5sit9Of4RuglxKgyJoUschpVFWh3UG2XPoOYQgdaprXOmVBwkucF9lFyTXtcfeMzupWVV2IPd%2B4tey8AMyTYbV%2F0SZKDCGfvNLwpTthlsE8YAjcbgwO%2F8dgo7%2F15Z1%7Ctkp%3ABk9SR76HqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 21,
|
||||
"value": "https://www.ebay.com/itm/195581816273?epid=26034221296&hash=item2d8995add1:g:9dkAAOSwcs9jzT27&amdata=enc%3AAQAHAAAAkDcQT879sZ2qF%2BLXWtrmZwB11w4IkwsU6HGUfXZTG2Zl0Gz6Jf87JadFAiT8Z%2FkWI3ekO5Xg2G0gi%2FcPMRefKWZtyePp2ne5qt0wpeECpmyJ09Xne1audacJP8nQ8nghONsUrodXv8TBT0VdWnhtgN1wbAK4VXKwBdrz9cWB0p%2B23yWW7y4fNRk2f7TBUO%2FUvg%3D%3D%7Ctkp%3ABk9SR76HqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 22,
|
||||
"value": "https://www.ebay.com/itm/275419609847?epid=18039187887&hash=item402049baf7:g:tlsAAOSwCoJi8vb1&amdata=enc%3AAQAHAAAA4NfdraIMVt8TBTcv%2BeSSJe9maUWtsEU9tzzvPtf2Ef5TCEUzabtE3gsrvNlTzo%2FdQ7%2BiZNJ6gNBhcsbtXBaD5yiWsd%2FbE6sfgyPw83X9neUWJvVC7CoFVOWRL0pRBRyQogzoOaiz8krHBiAShGn1fGSI64KrpQis9OYIruFuXoDCcoLM7gon8A6VN7Zo2qPpz7I%2FtSg%2BWwJS9IuqWkCAfWTua1cE2cztUZnHV5UPzYunkN%2B9Kp7qitMxAJPDJ49RHQHaIEcNtadQz5EJL6GmEx7Re87YjU1EJaNJU8nSbQuP%7Ctkp%3ABk9SR76HqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 23,
|
||||
"value": "https://www.ebay.com/itm/185755456278?epid=13057692509&hash=item2b3fe35316:g:d~oAAOSwB8djzAs-&amdata=enc%3AAQAHAAAAkE8PdZMZa8t8p9Xet8vqO%2BqTUK9h1ZvrkMHBVJ6FgBSCMAh6JWSjwvLwef6Uza3AP6C4mQLDluxmOwt7q%2BousyLSRJH7mCbIcq6u43vnJLZMtesKOGixWJae5SDIxBiiQClmTGaVveKHIijcarV%2FtBvFdxf56Uf3fUwPFFVRdPh2QYqdciIJ%2F2I3XkTPldxHSQ%3D%3D%7Ctkp%3ABk9SR76HqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 24,
|
||||
"value": "https://www.ebay.com/itm/275555429968?epid=23057357625&hash=item4028622e50:g:834AAOSwmCdhXunZ&amdata=enc%3AAQAHAAAA4M0tm3d2t02bud3a5WDVnXcbAPsDSJHdYlgDVdhCnD5EJUnttsbQQm%2F%2FMZ7Jkn1MO1PBc9af%2BxuEuNf6V0uCW%2BU2fkIITL%2FzaYhHWwSJBrGrLngK2K9Dy59GO8BT57A%2BHs2QbH%2BZ4nGao1S6farpQMPc%2B50r0OX7JS0pa13pa5KRUymrhch432nRuIAsYyjzcS43o2bKg1bRMmCch7ThcQ3lRM04EfY%2FH%2Bbp7YydhI1WruQLIKvMGqzzkmVbnt0fnzKQ%2FeSAlVVy8co1HsKbpWVuzhEeZTOsb%2FypOdbzWrps%7Ctkp%3ABk9SR76HqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 25,
|
||||
"value": "https://www.ebay.com/itm/115398775717?epid=9051376057&hash=item1ade4d93a5:g:vYAAAOSw3bRij4R6&amdata=enc%3AAQAHAAAA4H3K3cmdwPRC5wET7%2F2xkS4%2BY06wViXKPIzSPY9Imm1QX%2FPtjywhAvfLkokX%2F4wbgcFEm%2Fvx2pN6m8QRMmFkGXRN7xGvIWHm%2B%2BqGV7N0d0HhcRKSLgMTSM17K6McInGnumb5KJrx3%2F5DHtUW9FQ%2BtIfCed1k3ch2RF3bcNQH2GbYbxKNMTs7gmWDWQOFHMxn6dsghvY8FJ80YxoDy9Dxx6c7F3JPGgM3qIBtnpOe4fSeYfGykQYpmdJLF5AM%2FrQlLMBS%2FaT%2FzzCz%2FYEPjxlJKtkzq1mS17zqsJXEvR1V5Y8K%7Ctkp%3ABk9SR76HqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 26,
|
||||
"value": "https://www.ebay.com/itm/384342925442?epid=14035917224&hash=item597c9fa082:g:9qkAAOSwM5JhH1-5&amdata=enc%3AAQAHAAAA0FWLtXypj6qADoDeQuHqZ1dVP9hE9L9dXC%2FmA2tUkadtSewnzOsO%2BWAGeAH3bCaLOAR%2BW9ZNmeohMTi%2FxpG54pcp92uv7fNSpMbB2YwbYyHnelg%2B6b6e4mOdnoK3Mw5SD3yv44Ng%2Fxz2c153HjXzycivTSZWIQkcEVsemnq2ozQQs1sz9bt%2B3LhbH2WpfydsE1Z%2Bi4jpd980fRWe28YjX%2FJ8G1mCpPFXaVjIiWWE4%2B3YkN8aQXy6flTJRVvKiIMXXxErIq82zGwHWYX5WL6V96o%3D%7Ctkp%3ABk9SR76HqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 27,
|
||||
"value": "https://www.ebay.com/itm/394373978599?epid=240174780&hash=item5bd28559e7:g:nnQAAOSwiWJjlZr-&amdata=enc%3AAQAHAAAAkG1Du%2Bf4d07y8jBatVlqQ6SrCXgb9%2B%2BCy7VEWR0SRnNg1QdDdy3jrjKBMJgOwde%2FTHRxcUaeY%2Fqz7F157bywzqAZbbcnHPQiRcyQJlGAZclv1mtx2SthGWygOGKBRb33tCWUlLSWcQKTi20BHhx%2FuWx1hrxgxEd2kyKxtGwneEVWJYg3el0xtBqco9%2BllRgi9Q%3D%3D%7Ctkp%3ABk9SR76HqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 28,
|
||||
"value": "https://www.ebay.com/itm/284837223550?epid=26034221283&hash=item42519f1c7e:g:6XgAAOSwAUdio8q9&amdata=enc%3AAQAHAAAA4KRLndsNFZE%2FG2Gwi0RpkZ1XmZlZ3CfW5ZpPw1JxYfjlFNy5VmCoOOLdQrh5zZouvwojEdqvGlkW8zktR4vAw9t%2FVo0oYwwxjUR7ffJ%2BKbjEp0fZPj16NUZ2FKo7TUr32SY90uo08bk2rM18xuthWxq0ZyVkG7g3nSY1sLhJqIfK2c%2Ft%2FG4ey81K9ocEwFreqtTJd5UJA%2Bpi9YVcwQ%2FCPgryxqobstj6KBprZIyFXKoAfHq7%2BzrYN%2F1zLWMwJvrLd62XlZIZGWWdyLW72kT8q8Xw4ECDli1M1y4pevUXYghG%7Ctkp%3ABFBMvoeqssJh"
|
||||
},
|
||||
{
|
||||
"num": 29,
|
||||
"value": "https://www.ebay.com/itm/275563969227?epid=14035917224&hash=item4028e47acb:g:OiMAAOSwAHRjilss&amdata=enc%3AAQAHAAAA0KUuubeWDARmNbgSomW054zgf1E1m4NRwGo43HJpc2oRWNl8HovOrzDkqokwP%2B3y0aSHXUb4wp7Elkoa5y%2FtxjApmorPmtGFL29rlXplwv3vQG30atZC3L8ryotC59ltwi46ig6bog1MT7qS1Rtt1YJfMWRE3LyBeTuH%2BmLE3ltGuBXdHDLXkkysBIbPjR9dXqWok3b1409MnqDYsflAbzh3t3fuYqPsw1h0aFPXgM%2FuCr0gAKva2I3hM50WHuuLiFO371sdQpVixA1QGo7M02c%3D%7Ctkp%3ABFBMvoeqssJh"
|
||||
},
|
||||
{
|
||||
"num": 30,
|
||||
"value": "https://www.ebay.com/itm/384392379194?epid=15034218412&hash=item597f923b3a:g:TBUAAOSwcQxihfxQ&amdata=enc%3AAQAHAAAA4E6BFacxI6A2chqRI9xMeNs2EPZFwnEqDGG4mPgeJI7V%2BiO6PUPTKBhTHH7YUD035b2lzoV2%2FwrTC04URzlSOq5p2aoV06F3TV0v90UcPOsQrOudO5iox8g50pGtQDHLGPcQmuuLHfN2GtHmyidMAN83Lfso4D6fRbGcOCxcdzXRLJuM2G1E3bP3Cu%2FOg7KBtjOMTo11UYSmQmckpmyArSm13cUHKxnDugJGabNSyQ0Sfmwpqi5kKFaGkGBXChDUslPWbFAgYIBCl1fwwq82oTaZAxLmjrH2Hb3Xuv34GakG%7Ctkp%3ABFBMvoeqssJh"
|
||||
},
|
||||
{
|
||||
"num": 31,
|
||||
"value": "https://www.ebay.com/itm/284834690629?epid=27023701740&hash=item4251787645:g:~H4AAOSwFwZio8lE&amdata=enc%3AAQAHAAAA4D64fGAPrSEv14V6Lx6XqlIoO3Is%2FNIRckGsWM6SR7oguEXGM3UC8qOBMT6pEr4Z9pkqCo1hjbkRt9s1kWRhHYOd65Nfgvc1yb%2FKIHJTpNhWU9Pq%2BSJuwk%2FZAbx6EBk1aANZbB5FHO6nGPooe6prFVuZhvh1lo6JBFgYezpWNbVC17eG13fBmNgXOJj%2FWxF8pTd3yECW97Al%2FjELMmPDK%2Ff7kxv1ebjIcN2nKfwmhCP0ywZIAP3HB9AcLmRQq0mSr4dmCawMWrE7n6Xd6HF3VJtKeDDMK2mzHg3WW1PLYTth%7Ctkp%3ABFBMvoeqssJh"
|
||||
},
|
||||
{
|
||||
"num": 32,
|
||||
"value": "https://www.ebay.com/itm/385378711279?epid=5034224996&hash=item59ba5c76ef:g:8YIAAOSwRl9jwrl6&amdata=enc%3AAQAHAAAAoOdf4fJNQcoka6bs5ocCxWNHhIYx7oOCYUQau0j7T9XFKCvxCULgf7ciLtGIdNxbt6kej%2BKqG9xiilrw36nZR2khAh5EPHwUlydo5Fj6KZqmGIzzEPccTVoCKnGv8yaUGxno%2Fk2n%2BDu9r%2F9TansxafW6T1y4zxxnU7XBrjBXyo8%2FjjUmjbU7jxGXGQxLHNXZ7fg8P1vG0xgPrRCNqh5vaWI%3D%7Ctkp%3ABk9SR8CHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 33,
|
||||
"value": "https://www.ebay.com/itm/284843533396?epid=5034224996&hash=item4251ff6454:g:k7AAAOSwxbtin92z&amdata=enc%3AAQAHAAAA4JB8zc5HRAIGjSABwz51ly%2B6gRJSYMP7ePCrq7egyB3ynDSzeYKcLSdyttBSoCpwzEnKYLTXKCQApCOMc%2FAgMQ5qNpQS63xpj1vpzUSA0ZAo%2BnOea0N4R59Cx1sXVnlndTjE%2Bm0DxhE%2FOWuUp4SlPy23pczbc%2F3Q6OROr02Q15vP1ue7AD7BLN%2FN%2BSH%2F1ho9eLriuT9%2F0CwQNtMdLaQSTf9F%2B2yK%2FDB2fQpp0ybIHaHkgjQe5HoHvJvVrwmhIfdhBifEFJThn1JwtZrqtgvbJ1XQ0HT50libXklr6%2FmOHsh9%7Ctkp%3ABk9SR8CHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 34,
|
||||
"value": "https://www.ebay.com/itm/354352448855?epid=16034579360&hash=item52810d4557:g:jCsAAOSwNAFjSYuD&amdata=enc%3AAQAHAAAAoBe6PPX4cziAMH0zqph5CVKzeNK5rRqYKfKAk4GHDulh6Z4prRNzhjzV0cUxdC8dGp5lcPZ3wE8wZyc4xJveWoV9zNH8mHAuJtYXqFVKnWYthyltxBZabn8Lu4Sw2ZGZRYGr0IEpveY8F6Y6hzjP6hbFEwdEebm8MK4GxWHcMMwX%2FaxLXCWSD97YuGfHksfIG%2BfRrny6RufWm8ljq8yVj30%3D%7Ctkp%3ABk9SR8CHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 35,
|
||||
"value": "https://www.ebay.com/itm/115055691694?epid=6023706166&hash=item1ac9da87ae:g:Q4UAAOSwWmBhcE9E&amdata=enc%3AAQAHAAAA4EUJLPKV703Ekx2%2BCWqMXvBRR%2BZjdsXLMQbxQ5blWGGbGi4M%2B3UbfyONygmPuFLkxjI027y0Hd%2FolBzoWN8SknMWX3Q9N4ToLpqQPIeUbHpiLfJKgEs0RwFZDIifdlj6KDk7VPz6U4Il4zD2d0Icrt6px993s7S5OHzxdJYtHhOYq%2BgXe0ZfHuQS6T%2Fk5l2Srhrt%2FFY8us%2FugysDgYnTxDj1zqGZFlDTsKgbklE6rtVIx58poayLW7onOQrKtFRoaFV6sIb4fxYefABdBecdZZghT23FoKp7%2FaHHZWBkcyT4%7Ctkp%3ABk9SR8CHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 36,
|
||||
"value": "https://www.ebay.com/itm/204154889363?hash=item2f88946493:g:9DsAAOSw3R1jdMnI&amdata=enc%3AAQAHAAAA4P9DtAwd40J0WTSiekmkteRZoiZEd%2FkMehqqbdN8dSNEJZ%2BrZOaWWIShgeRfA7o7N639YViFxJkkg%2FmRhWAFir%2B24zPr3g9lb7Gl%2BRgIg5qT9nKCmQ5VtgnUVoMhiMlDfQ29YLJv9JZwo7b2iXWPo8uki3Un8qKk0PraRTp4RHXConRbIqopSwPdHznOLmop5iydoztVLSQhtW4GYHKCmSzcltPmvw6XQuPAIpBN2ebiPZrT85PpJ%2B%2FxYK8vJaHTE%2FU8mZyTUR6KAAlWpvKDIFVpZgh%2B2EQQ%2F6Wm2ogWDS3D%7Ctkp%3ABk9SR8CHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 37,
|
||||
"value": "https://www.ebay.com/itm/114982462737?hash=item1ac57d2511:g:uCoAAOSwmlRhO76O&amdata=enc%3AAQAHAAAA4DOHXyPMyoQsjN2ZT0NzeY623TkFdSLW0CMa4shD6K5TsBZvYnUSenuzZg%2BiinB3pVfLeqd42hewDNPiTSzYNegfaV40DU6zYxWLk6rB%2Bg6XZ3VLtP07jmmkBkI3C7mkfpBH7RMvgS%2B46uo%2FmvoMRhhk54nG68HYepoIx%2By1vRVDPxu6DqwooGcp%2BolBnp%2Bd1i4dc7RyyXXEuJ1%2Fp82gcOhI3N120812fZ8VATHfJqg3IdQ1a3IfM7nqdxnA0dPkPLf1TVIwtJeyE0c7uZHATsY08u84E43UR9eFO%2BeI3oyU%7Ctkp%3ABk9SR8CHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 38,
|
||||
"value": "https://www.ebay.com/itm/295366826662?epid=23041723818&hash=item44c53c1aa6:g:dl4AAOSwDC5jgSu-&amdata=enc%3AAQAHAAAA4PjXAsnjh5aI0vrEnGo7Z9OnBBoN%2B%2BVr9%2F5EFHOnPE6apceeU3bd6Ib2dVpm7vOuvi0mh3kWZz0JBpztsYclaqGUlCZa%2BqX8U83pme23zM0ADkiJxBMsToGYzEqjh6cvwKa%2BidzyeLqg389koSvYZg%2FXStbjMDreOFQr9n1cxhY67jNQvMIH469%2B72E%2FeBNb75x2uDj46xjF4A%2BenR2DDd7UEdBabTEDUWcCCNzYWwQkocmXQCXIthRuGr%2FNSVG77SrbVXr4kt1LUeaSYShs6vbYTBn55NUtIwUj69CuV%2B4W%7Ctkp%3ABFBMwIeqssJh"
|
||||
},
|
||||
{
|
||||
"num": 39,
|
||||
"value": "https://www.ebay.com/itm/275037837307?epid=235205919&hash=item40098857fb:g:BmQAAOSwhdhicagi&amdata=enc%3AAQAHAAAA0NGR4CAfGY1g9aBugj0vl3zqXcLw6jndqmUruRknV%2F4ZLSZITGRlruzUB2rjL1FC%2FM628dnRo%2BeTxqKptbADDWcAyPWqvpRLJcfn8gM7f9Qy7akVCDa82kOrBViw%2F6URqeJcKRJ6eqAWt6XAbcxuRvt4VO9A0hpt66CzdCD12gtbjIq9sz7NVLRRZqPIKB9p3fMIlwnx%2BanNPx1Yx%2Fe9BIx%2FQys3yEDXl1RIg54rry%2F9apVWOEfEJm%2B8Km02ecwPbs%2F1qEEOjV21EGTSitMoAiU%3D%7Ctkp%3ABFBMwIeqssJh"
|
||||
},
|
||||
{
|
||||
"num": 40,
|
||||
"value": "https://www.ebay.com/itm/165917646229?epid=15055100591&hash=item26a1765d95:g:GbUAAOSwon9jx2r2&amdata=enc%3AAQAHAAAAkJA8t8382O2wUFVyY44TF8%2F6RQu2rmQaB6CD%2FdknZw8966upTYJ5EqzW%2F4odXtRkA5gyOosdD%2FRINHtTQhZGBNUWG%2F%2BYIB0LUjg%2BTj9320EOmTpZPjC0TMKoYU5gzWGiA16QV%2BVlEu%2FoPWv4%2BT9Q2aJwl8OC%2F7N4%2F6kzbZ6VV24ewKag3fHyTHyZRGjWJowaIw%3D%3D%7Ctkp%3ABk9SR8CHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 41,
|
||||
"value": "https://www.ebay.com/itm/134289962940?epid=8023709558&hash=item1f444e37bc:g:kG8AAOSwemNjUOyA&amdata=enc%3AAQAHAAAA0NYhSjHQ%2B3r9Ohbbg0P5SeKql99jLpvtv1C0W2nKcjuB8OQnbe9dAhrhAviF9vEdMLFMjNhuInRrxnyqLToLPaMJVzKjfmGtSX81%2FjQEqKEI4YH1R7Tvbvhf%2FZEOkGpEtTRc82Xw9M5dSguaAcp2mYoarAQi7cpZfVu6jQLQDsyeiotBZfUwQUxxDL7FLr2Fs4H2rqAYwwwypTP69wVR2B24MrCJ6FGEBm2EfJK9JbZZz1MSV%2BpMJc8%2B5Z88bEYUfkGSYR4IGdbn5RupdD8qGns%3D%7Ctkp%3ABk9SR8CHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 42,
|
||||
"value": "https://www.ebay.com/itm/115382465076?epid=15057003479&hash=item1add54b234:g:gIIAAOSwiJFifmmz&amdata=enc%3AAQAHAAAA4Pel7yRDK%2BnatS0iAXxk1WaGbuoYNoae0iyeFBxKZacYyQ%2Ftth%2FHvVPTU5BQ%2ByichClcVZZmyyVqKV6oRgXHKyXvu6ABRqPWRtFIfGDVEuFEMn6mRaAkHvKl99sNkZJ89bUq8M6GJrtoqk%2FypQBOBjQktHJeL87GbR6D4y4BkcKrwG475EcMmSxZ%2ByPiMFwCH%2FzmgHROa6NkgmL2HV%2BlOMCplMvfhP4AiS37ZEvpZ05N7%2BWb5ZI4By5lHGbt6N3AcobIZXk9IywIO2BY9fFVvZ6QACHF9kJ%2FQ9E1MIuZtap0%7Ctkp%3ABk9SR8CHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 43,
|
||||
"value": "https://www.ebay.com/itm/234870611190?epid=14034578851&hash=item36af611cf6:g:iR0AAOSwG31jvVQi&amdata=enc%3AAQAHAAAAkBSwZdfU7K35zNXT%2BnTVSkeTsWogSkmQeeb572EPUfRj3GQl%2BvzJBvHAMb6FpwoD2EMY7B9ddDzfoOVpPZmnb2bT6PZ%2BBTwFm5Er8AcYNmGsMgl1mGKxz1m5r8we%2FyV7s8Kw3zdHoVDtJT71H2arNwPULxbdqpF53hH8Ojx2tgE%2BqiCdn%2ByqVKvR61GzWbIsfg%3D%3D%7Ctkp%3ABk9SR8CHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 44,
|
||||
"value": "https://www.ebay.com/itm/134304224259?epid=26034221266&hash=item1f4527d403:g:59EAAOSweStjW8ZZ&amdata=enc%3AAQAHAAAA0BsJ1VkljwMFWwnM0jIkO%2Bd2rTgjF8Ps8zEjdH4gY14CcFRUF8MkF6DhHVfLaRQh0421VykhsrTC22jlcG%2FI2lP6B1j2c5ujIbmpdJOzBgcFbNrv%2FXqTELr7owA8r5zZ3EzyLgjx7LanzkNrk0XfxKobi6efxa83umH6%2FYX2Ze7NpYTVXbs37pAf54Ot5cXXYgu24rGHNjnRIn%2FtPDWUcqpvPL0WwcVfMnEGCpvPN4mKctUnqP7y%2FrUYKnSlDUG5PiW52qvXIRag8Cb3s0wI5Ik%3D%7Ctkp%3ABk9SR8CHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 45,
|
||||
"value": "https://www.ebay.com/itm/194316866035?epid=8023709558&hash=item2d3e3011f3:g:DfAAAOSw1ephFOPR&amdata=enc%3AAQAHAAAA4NSJ9hyAPoE3EL%2F86975ibMzsHsGDDkDLzcC2IgZVrQRjEsUJscwCausqJFSYI6Ab%2Fn%2BD15qv5deHvCdQAEOmP2rarGk1tprdTveSw3vG8j%2FpmvpxtqSOz3aoWVVd8XV2veBRqAPEoxoRG3iiGK63jd%2BkH8pUgXXhd2sAYZhst5dgpRq7U4cm1aWfrZvsEBO1YyCrgnACH1nVJfjd5AExEIKP5MEQTkemstac5Q5%2BmryufAeepZW%2FPcBCHwt%2FpyICoUtP36X2cq7u7aE9wT35EXhwrcZhEBSFkrOTmEzLHNw%7Ctkp%3ABk9SR8CHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 46,
|
||||
"value": "https://www.ebay.com/itm/295495133461?epid=18045314698&hash=item44cce1e915:g:9bYAAOSwvLFjpGwJ&amdata=enc%3AAQAHAAAAkCODiRPuf6NrA%2Ff4O2ZViOXWjcBJqR1XjeCNbevxP5u9VI95JGIq5CUv%2BXWQIT733cKrc994Qf6a9%2FDWyfC0iOWtnODSOsonWQJz7ALDPWQwuux%2BLT63MMyw7pl0660OkuZ%2BrPCvbJEC9esxXjaLkTjqjymImvJgkiKpMLu%2FWoVwdv0mM%2FvfFUpRInGJ%2F%2BOj5A%3D%3D%7Ctkp%3ABk9SR8CHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 47,
|
||||
"value": "https://www.ebay.com/itm/134278052376?epid=2310781314&hash=item1f43987a18:g:SJcAAOSwRiRjR58C&amdata=enc%3AAQAHAAAA4MuzP1v8LO2bJU8o1OIyRKN0A8jHabFvrZ38t%2By45PTiGMWx%2FVzh%2B%2FZnNQCB9mCbhdk%2FvIW3yJvMqRW4AcCB9cHkuWe6Hu50%2BdeDZCIJItEtXzmRADELMetUO8%2FzUQDqzi3QYIBArqnghN8ASWpndv484vN1v9TLHAtprYCzFHYAv3RYLQpAHcSRuOwlZDhfSkhnxDyWQVx5VqWT%2F3LlEBmIQEFC1HEN59FKeToi5FJ13JUpKGiUmfuJnJZbex86XTHq9Yud1wzdmX14HIKOR%2BdHxpoEEQWGVWe%2FMEgMpyQh%7Ctkp%3ABk9SR8CHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 48,
|
||||
"value": "https://www.ebay.com/itm/385385510766?epid=18041715094&hash=item59bac4376e:g:5osAAOSw0IJjzn8u&amdata=enc%3AAQAHAAAAkFRsqN5XTshfan%2FaQlBgyRmupACU6c%2F46htNVlozDZlSFvHuy1YoCt6S%2BHOXhD%2BwFnF3IHKh8NJNGeWTELxZkZhpD1wuCwap30JZi0Jx1KIEBXILCaJx9kHq62lMp18F9ctOY96N1Z0xksZPTh00HFh8KrPHpSOCE3rh64Iq5gVDjqeqfrxsVWXObzXhGSkmxg%3D%3D%7Ctkp%3ABk9SR8KHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 49,
|
||||
"value": "https://www.ebay.com/itm/354375729960?epid=16041709998&hash=item5282708328:g:eaMAAOSw-BVjZaxt&amdata=enc%3AAQAHAAAAoIYZCVaVMJlE1xi2Dazjl%2FWEj4m0nd4gXhIxisineG5Y4fWnCwNLwbkOvlKFPIwGmoC8pk66RzEt5bG4e0rqBHOc%2BqLM9TtgN69RfJ0FbembPUBqkeJqWLAqLAtgo14vnb7oVcfbnyP6ZDuG5APDw0AnOGRr%2FFIGxwB4UJTY56dyJzEBt7euOFjbTozcBn3kUFU5MqBtnQ5P9kVragVSv7E%3D%7Ctkp%3ABk9SR8KHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 50,
|
||||
"value": "https://www.ebay.com/itm/304786301225?hash=item46f6ade129:g:qnsAAOSwc3Jj1yVo&amdata=enc%3AAQAHAAAAkJaQM9LbO8pQQpm5Eg9m8R0uPlugNpcXSXqllVSKN0EPpnJzrE25gwCd8hhNR%2BcSMP978sfs16e%2Bua%2FKy160SEvxijbjWmzbFYXNdUNneRFHL%2Bz9jpRy2gvHuiN%2FiXW%2BRYwwRogGDV8NzWBXuBqjN%2FGkpH8WyJL7z6eEROZmMDxVah3aeJxBd0HX0S43WgvbNw%3D%3D%7Ctkp%3ABk9SR8KHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 51,
|
||||
"value": "https://www.ebay.com/itm/174911437767?epid=238944741&hash=item28b988bbc7:g:LAwAAOSw3tFhEnDR&amdata=enc%3AAQAHAAAA4OUrIuiGa2TtmvD2S1fdS%2B%2BCMSN6PEv70vribX3V%2FhIHx25mQNXNae4tS0Ud6jpKa4ZFjZzjlt7bygqxmRtgD79yiaTg9xT3vMvIVD%2BcGxBa%2BzjYl2PINFu6owvlsD0riwdahZJy2bdkGZXvxNOEi3uhs%2BjMLoLQxMpplMwk72lnY3wGNt2DX6hqr%2B00jKQWIzcA6uv%2FKZYCxVkwdJkqEs9JIjZlRKmxZoe%2F%2BQbCfqLqPHAIfv2P2y3QTsUhuqNDjYXMlt3iJtxzPgrXlz0ZwrvB7979C4lzZAtAPNif44Uc%7Ctkp%3ABk9SR8KHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 52,
|
||||
"value": "https://www.ebay.com/itm/134327782473?epid=224886862&hash=item1f468f4c49:g:fwMAAOSwrphjcmQF&amdata=enc%3AAQAHAAAA0MoVc8HnavBYYAcZpkyN7pzyeOjKXb1XBsPWG70gxXvRSLgJ9o1SNHJUYo2OHEfm%2FNzrKZrUORxxFMJ%2BstvFP3l6iik5KSVtD70PMjxOBUPKnFozs%2F5LxxqZxt9NPoVH8EaHJh0Mf4OYa467PZVV59QxrHIrRmG9N3IQFwj9FXZKTbSoQIVq9WnGCq6LvPFok0jLKo5JNo5RotMvquAk5il5e0r04gvIF9guKgM7lrQZnGNjbibqyCZN2NKvVaMR57INPi%2ByEG86n6dlSDXYQzs%3D%7Ctkp%3ABk9SR8KHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 53,
|
||||
"value": "https://www.ebay.com/itm/384354718272?epid=19034211465&hash=item597d539240:g:dJEAAOSwJfthDS3V&amdata=enc%3AAQAHAAAA4Ca7XeeVvYUALBuDtcNoNuhvGfaXQ7MvLfUZoXd5PeLwW5sPmCtc7NXmC9n%2FSJkwxtzY7BhiZVX37ie2PL6B2ksBm7K5XdYbc4yv%2BjWBo4OA2tuXRhx%2BwT%2BgYFa1zprhQnu2pN8BpbHTkusr7ZakxTQ0lWsCpcKJuNBSmaAN9H0lw2T%2FgBGQPbYVNc4weXw4ZJuoScNO7WsO7IxJxYzZFqReE38HWEkiWiXzrSeqFquhQUAqh2gedIWCFMELPz48TmP6E1vpckvVKSlWRiDvSPcx34QXXW1TruQRoI3l7%2B9c%7Ctkp%3ABk9SR8KHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 54,
|
||||
"value": "https://www.ebay.com/itm/165514454435?epid=19048294271&hash=item26896e25a3:g:DSQAAOSwJxVimRrw&amdata=enc%3AAQAHAAAA0AEcfe918pjX0VJfW6zR3ekp05VFnLII061XlBdjPyEm4imOkoy5Yd0nh4az%2BGOk9N71Bt4KgFcZAT8SfJz25DnGn0qxzSD8RXr%2BPzq1ny1LUzUaPn1v5YpdMOWorGo7munUtAh%2FaVDOJV0d%2BwLu9AIoOmF7kXH1TwZrZm3q4ZTSBTTo8dDGri3IsMNV4FFrvuAg%2FLCfDLu929MV6d9OkVFtshsNOAHO4zXUijjYQKaWRUtBnGp2HXXsoOOdc6yo6CpSp4FMkmWTA%2BVpiqBnoic%3D%7Ctkp%3ABk9SR8KHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 55,
|
||||
"value": "https://www.ebay.com/itm/384354878808?epid=21023708552&hash=item597d560558:g:H2YAAOSw8KthE6N8&amdata=enc%3AAQAHAAAA4DXQxeojdyx5xV0e9%2FqBE5zZ%2F1WT03i1eIKbZn8SSNqTKpyw80PFEMZ03eGhZrJZ8JStS9FFW1mPT7UTRkSRPOED6cae6T4cY3XEqIoBIY1en6kAreY%2Fj7j%2BOV01rYmK0Tp3zztJBPITNq3xi3o6lJNMAi5%2BQwGTZLVXYXIiTGIuRExIneKhvzOfT3btIr1vY0D%2F9YANjYsRwP33VVRR6XnGlWG5aPh9rAoH5UZCYSPJTPFdHyApMuIbsqGNxJ4Nyi%2BXwOf6FUWP7750zC%2BtYWmTJf498O02QmwDY7k%2FksOE%7Ctkp%3ABk9SR8KHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 56,
|
||||
"value": "https://www.ebay.com/itm/275558102208?epid=28024399462&hash=item40288af4c0:g:zZ4AAOSwBHhhQKm9&amdata=enc%3AAQAHAAAA4DX9Vhc87B23tD5jfMVFJZHAOvzu0gh%2BnU4M1DxyKOIiAwh1b1cfjI0HVs9yoIFK06Ka9nIaMeB635PtpGbprnIkaxOV9av20tgXnOwPOuMa3AtNImBgJUtABBhHW7k5zLtmD7GTc%2FwcdDGKadDOSoz%2Fymaebjd0V7QmUKz%2F3xqzJytX19G7P1QU3p7QoI77YwZuGE1K866QvszYtvlmsZLvmu%2BXbQMuDOoRqBP3Kb9OsWYVu8zfMEM0oFFGgMOw3RpM00htTxM7tc5tU5kWLnDRNoQpuFjblsYvoARi9xST%7Ctkp%3ABk9SR8KHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 57,
|
||||
"value": "https://www.ebay.com/itm/234870614872?epid=6041725317&hash=item36af612b58:g:Nb8AAOSwx4BjvVmz&amdata=enc%3AAQAHAAAAkEDeT8TmUlQ8IjQL99g9oZL8YHYFlR0TRqo2bLHhbsKtfw0AldDbv9VWIxc%2BvMg%2FV%2BbCex%2FVSmsJoNdMTOMyvGOIxG2sf4%2BRXvfldKHih939mnFK59lUpZGdc4WSukzF%2F5a%2FY0GE%2BHdBTDrPIFVKrG7RNbWqtjArUbPbe5nUxnQ6GIadY7kkmdgYp5%2F3MEsj%2Fg%3D%3D%7Ctkp%3ABk9SR8KHqrLCYQ"
|
||||
},
|
||||
{
|
||||
"num": 58,
|
||||
"value": "https://www.ebay.com/itm/275513445335?epid=242053148&hash=item4025e18bd7:g:lPkAAOSwa3NjVuDe&amdata=enc%3AAQAHAAAA4IR6AGPBlVGpOH7xh1nhu9MEJqdYk6VXoL8oRYBTP7ld8KoXBTQaIu6%2F6r7rlGWt4wcUHDG7WE8fQz4ZA0j07VGCVxpy%2FP9Eqff0%2B38UZ9%2F%2FlFrknO2rkHaX1DV13ztTCSNW2RRXVGIwan7%2B%2F167DOUDCVV32u7RRuq5hT23b%2BRA%2F30k3v4PbGABKCS5jTkveHIx9AeVbS23nMP8Cy3y7p9zpHisq5w3hVbWPzCoxOgc1vtgmZoRsZ23uaTwOMJPgWOxzxj1pB5JNh0iY97WEWg70Rut698YKTlG6kP%2FTD7V%7Ctkp%3ABFBMwoeqssJh"
|
||||
},
|
||||
{
|
||||
"num": 59,
|
||||
"value": "https://www.ebay.com/itm/325520901816?epid=27041707918&hash=item4bca8ec6b8:g:uqYAAOSwXWZj29Bo&amdata=enc%3AAQAHAAAA4G6SJ3xy1glI4gOD5fDQkPnjzMfEYvVIfAzHMFZ1X1i%2BbSRbZ6s11S6805uASEQCGH2lhtdK0aJIM2s2eyzxSQz8tCDSWmmLxuvNb9SmNHw4eFM%2BKfk09W%2FNZ%2B5UnEv%2FOdf68sImPbp0vWR2a1Q8p4iYQR09VRVZrwI4FzxuggoPmQuIh8K5%2BqyopGx2EsWuDaMSbaGF%2FGVKFrrPoZGcZY8XzRX7jK9ghb30K36vP%2BTIuDdt1GHqIqVvexsNG7FAzBdNymFarmBrMvBdvGaahw9t0gAn6XFcuFAE3YYbA5Nk%7Ctkp%3ABFBMwoeqssJh"
|
||||
}
|
||||
],
|
||||
"default": ""
|
||||
}
|
||||
],
|
||||
"loopType": 1
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
File diff suppressed because one or more lines are too long
@ -7,20 +7,24 @@ const {exec} = require('child_process');
|
||||
const iconPath = path.join(__dirname, 'favicon.ico');
|
||||
const task_server = require(path.join(__dirname, 'server.js'));
|
||||
|
||||
let config = fs.readFileSync(path.join(__dirname, `config.json`), 'utf8');
|
||||
let config = fs.readFileSync(path.join(task_server.getDir(), `config.json`), 'utf8');
|
||||
config = JSON.parse(config);
|
||||
task_server.start(config.backend_port); //start local server
|
||||
let backend_address = `${config.backend_address}:${config.backend_port}`;
|
||||
let websocket_port = config.websocket_port;
|
||||
let user_browser_config_path = path.join(__dirname, "user_browser_config.json");
|
||||
console.log("backend_address: " + backend_address);
|
||||
task_server.start(config.webserver_port); //start local server
|
||||
let server_address = `${config.webserver_address}:${config.webserver_port}`;
|
||||
const websocket_port = 8084; //目前只支持8084端口,写死,因为扩展里面写死了
|
||||
console.log("server_address: " + server_address);
|
||||
let driverPath = "";
|
||||
let chromeBinaryPath = "";
|
||||
let execute_path = "";
|
||||
if (process.platform === 'win32' || process.platform === 'win64') {
|
||||
console.log(process.arch);
|
||||
if (process.platform === 'win32' && process.arch === 'ia32') {
|
||||
driverPath = path.join(__dirname, "chrome_win32/chromedriver_win32.exe");
|
||||
chromeBinaryPath = path.join(__dirname, "chrome_win32/chrome.exe");
|
||||
execute_path = path.join(__dirname, "chrome_win32/execute.bat");
|
||||
} else if(process.platform === 'win32' && process.arch === 'x64') {
|
||||
driverPath = path.join(__dirname, "chrome_win64/chromedriver_win64.exe");
|
||||
chromeBinaryPath = path.join(__dirname, "chrome_win64/chrome.exe");
|
||||
execute_path = path.join(__dirname, "chrome_win64/execute.bat");
|
||||
} else if (process.platform === 'darwin') {
|
||||
driverPath = path.join(__dirname, "chromedriver_mac64");
|
||||
chromeBinaryPath = path.join(__dirname, "chrome_mac64.app/Contents/MacOS/Google Chrome");
|
||||
@ -30,8 +34,8 @@ if (process.platform === 'win32' || process.platform === 'win64') {
|
||||
chromeBinaryPath = path.join(__dirname, "chrome_linux64/chrome");
|
||||
execute_path = path.join(__dirname, "chrome_linux64/easyspider_executestage");
|
||||
}
|
||||
console.log(driverPath, chromeBinaryPath, execute_path);
|
||||
let language = "en";
|
||||
let server_address = "https://servicewrapper.systems";
|
||||
let driver = null;
|
||||
let mainWindow = null;
|
||||
let flowchart_window = null;
|
||||
@ -54,10 +58,10 @@ let flowchart_window = null;
|
||||
function createWindow() {
|
||||
// Create the browser window.
|
||||
mainWindow = new BrowserWindow({
|
||||
width: 500,
|
||||
height: 300,
|
||||
width: 520,
|
||||
height: 750,
|
||||
webPreferences: {
|
||||
preload: path.join(__dirname, 'preload.js')
|
||||
preload: path.join(__dirname, 'src/js/preload.js')
|
||||
},
|
||||
icon: iconPath,
|
||||
// frame: false, //取消window自带的关闭最小化等
|
||||
@ -65,12 +69,16 @@ function createWindow() {
|
||||
})
|
||||
|
||||
// and load the index.html of the app.
|
||||
mainWindow.loadFile('src/index.html');
|
||||
|
||||
// mainWindow.loadFile('src/index.html');
|
||||
mainWindow.loadURL(server_address + '/index.html?user_data_folder=' + config.user_data_folder);
|
||||
// 隐藏菜单栏
|
||||
const { Menu } = require('electron');
|
||||
Menu.setApplicationMenu(null);
|
||||
|
||||
mainWindow.on('close', function (e) {
|
||||
if (process.platform !== 'darwin'){
|
||||
app.quit();
|
||||
}
|
||||
});
|
||||
// mainWindow.webContents.openDevTools();
|
||||
// Open the DevTools.
|
||||
// mainWindow.webContents.openDevTools()
|
||||
@ -82,16 +90,14 @@ function beginInvoke(msg) {
|
||||
if (msg.message.id != -1) {
|
||||
let url = "";
|
||||
if (language == "zh"){
|
||||
url = server_address + `/FlowChart_CN.html?id=${msg.message.id}&backEndAddressServiceWrapper=` + server_address;
|
||||
url = server_address + `/taskGrid/FlowChart_CN.html?id=${msg.message.id}&wsport=${websocket_port}&backEndAddressServiceWrapper=` + server_address;
|
||||
} else if(language == "en"){
|
||||
url = server_address + `/FlowChart.html?id=${msg.message.id}&backEndAddressServiceWrapper=` + server_address;
|
||||
url = server_address + `/taskGrid/FlowChart.html?id=${msg.message.id}&wsport=${websocket_port}&backEndAddressServiceWrapper=` + server_address;
|
||||
}
|
||||
console.log(url);
|
||||
flowchart_window.loadURL(url);
|
||||
}
|
||||
mainWindow.hide();
|
||||
flowchart_window.show();
|
||||
const { windowManager } = require("node-window-manager");
|
||||
const window = windowManager.getActiveWindow();
|
||||
// Prints the currently focused window bounds.
|
||||
console.log(window.getBounds());
|
||||
@ -103,12 +109,14 @@ function beginInvoke(msg) {
|
||||
let width = parseInt(size.width)
|
||||
let height = parseInt(size.height * 0.6)
|
||||
window.setBounds({ x: 0, y: size.height * 0.4, height:height, width:width });
|
||||
|
||||
flowchart_window.show();
|
||||
} else if (msg.type == 2) {
|
||||
//keyboard
|
||||
const robot = require("@jitsi/robotjs");
|
||||
//TODO 实现全选并删除功能,目前没有
|
||||
keyInfo = msg.message.keyboardStr.split("BS}")[1];
|
||||
robot.keyTap("a", "control");
|
||||
robot.keyTap("backspace");
|
||||
robot.typeString(keyInfo);
|
||||
robot.keyTap("shift");
|
||||
robot.keyTap("shift");
|
||||
@ -125,8 +133,18 @@ function beginInvoke(msg) {
|
||||
}
|
||||
} else if (msg.type == 5){
|
||||
var child = require('child_process').execFile;
|
||||
var parameters = [msg.message.id, server_address];
|
||||
|
||||
// 参数顺序: 1. task id 2. server address 3. saved_file_name 4. "remote" or "local" 5. user_data_folder
|
||||
// var parameters = [msg.message.id, server_address];
|
||||
let parameters = [];
|
||||
console.log(msg.message)
|
||||
if(msg.message.user_data_folder == null || msg.message.user_data_folder == undefined || msg.message.user_data_folder == ""){
|
||||
parameters = ["--id", msg.message.id, "--server_address", server_address];
|
||||
} else {
|
||||
let user_data_folder_path = __dirname.indexOf("resources")>=0 && __dirname.indexOf("app")>=0? path.join(__dirname, "../../..", msg.message.user_data_folder): path.join(__dirname, msg.message.user_data_folder);
|
||||
parameters = ["--id", msg.message.id, "--server_address", server_address, "--user_data_folder", user_data_folder_path];
|
||||
config.user_data_folder = msg.message.user_data_folder;
|
||||
fs.writeFileSync(path.join(task_server.getDir(), "config.json"), JSON.stringify(config));
|
||||
}
|
||||
// child('Chrome/easyspider_executestage.exe', parameters, function(err,stdout, stderr) {
|
||||
// console.log(stdout);
|
||||
// });
|
||||
@ -139,12 +157,11 @@ function beginInvoke(msg) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const WebSocket = require('ws');
|
||||
let socket_window = null;
|
||||
let socket_start = null;
|
||||
let socket_flowchart = null;
|
||||
var wss = new WebSocket.Server({ port: 8084 });
|
||||
var wss = new WebSocket.Server({ port: websocket_port });
|
||||
wss.on('connection', function (ws) {
|
||||
ws.on('message', function (message, isBinary) {
|
||||
let msg = JSON.parse(message.toString());
|
||||
@ -177,7 +194,7 @@ const {windowManager} = require("node-window-manager");
|
||||
|
||||
console.log(process.platform);
|
||||
|
||||
async function runBrowser(lang="en") {
|
||||
async function runBrowser(lang="en", user_data_folder='') {
|
||||
const serviceBuilder = new ServiceBuilder(driverPath);
|
||||
let options = new chrome.Options();
|
||||
language = lang;
|
||||
@ -187,22 +204,34 @@ async function runBrowser(lang="en") {
|
||||
options.addExtensions(path.join(__dirname, "EasySpider_zh.crx"));
|
||||
}
|
||||
options.setChromeBinaryPath(chromeBinaryPath);
|
||||
if(user_data_folder != ""){
|
||||
let dir = __dirname.indexOf("resources")>=0 && __dirname.indexOf("app")>=0? path.join(__dirname, "../../..", user_data_folder): path.join(__dirname, user_data_folder);
|
||||
options.addArguments("--user-data-dir=" + dir);
|
||||
config.user_data_folder = user_data_folder;
|
||||
fs.writeFileSync(path.join(task_server.getDir(), "config.json"), JSON.stringify(config));
|
||||
}
|
||||
driver = new Builder()
|
||||
.forBrowser('chrome')
|
||||
.setChromeOptions(options)
|
||||
.setChromeService(serviceBuilder)
|
||||
.build();
|
||||
const cdpConnection = await driver.createCDPConnection("page");
|
||||
let stealth_path = path.join(__dirname, "stealth.min.js");
|
||||
let stealth = fs.readFileSync(stealth_path, 'utf8');
|
||||
await cdpConnection.execute('Page.addScriptToEvaluateOnNewDocument', {
|
||||
source: stealth,
|
||||
});
|
||||
try {
|
||||
await driver.get(server_address + "/taskList.html?backEndAddressServiceWrapper=" + server_address + "&lang=" + lang);
|
||||
await driver.get(server_address + "/taskGrid/taskList.html?wsport="+websocket_port+"&backEndAddressServiceWrapper=" + server_address + "&lang=" + lang);
|
||||
} finally {
|
||||
// await driver.quit(); // 退出浏览器
|
||||
}
|
||||
}
|
||||
|
||||
function handleOpenBrowser(event, lang="en") {
|
||||
function handleOpenBrowser(event, lang="en", user_data_folder= "") {
|
||||
const webContents = event.sender;
|
||||
const win = BrowserWindow.fromWebContents(webContents);
|
||||
runBrowser(lang);
|
||||
runBrowser(lang, user_data_folder);
|
||||
let size = screen.getPrimaryDisplay().workAreaSize;
|
||||
let width = parseInt(size.width);
|
||||
let height = parseInt(size.height * 0.6);
|
||||
@ -216,15 +245,16 @@ function handleOpenBrowser(event, lang="en") {
|
||||
let url = "";
|
||||
let id = -1;
|
||||
if (lang == "en") {
|
||||
url = server_address + `/FlowChart.html?id=${id}&backEndAddressServiceWrapper=` + server_address;
|
||||
url = server_address + `/taskGrid/FlowChart.html?id=${id}&wsport=${websocket_port}&backEndAddressServiceWrapper=` + server_address;
|
||||
}else if(lang == "zh") {
|
||||
url = server_address + `/FlowChart_CN.html?id=${id}&backEndAddressServiceWrapper=` + server_address;
|
||||
url = server_address + `/taskGrid/FlowChart_CN.html?id=${id}&wsport=${websocket_port}&backEndAddressServiceWrapper=` + server_address;
|
||||
}
|
||||
// and load the index.html of the app.
|
||||
flowchart_window.loadURL(url);
|
||||
flowchart_window.hide();
|
||||
flowchart_window.on('close', function (event) {
|
||||
mainWindow.show();
|
||||
driver.quit();
|
||||
});
|
||||
}
|
||||
|
||||
@ -233,9 +263,9 @@ function handleOpenInvoke(event, lang="en"){
|
||||
let url = "";
|
||||
language = lang;
|
||||
if (lang == "en") {
|
||||
url = server_address + `/taskList.html?type=1&backEndAddressServiceWrapper=` + server_address;
|
||||
url = server_address + `/taskGrid/taskList.html?type=1&wsport=${websocket_port}&backEndAddressServiceWrapper=` + server_address;
|
||||
}else if(lang == "zh") {
|
||||
url = server_address + `/taskList.html?type=1&backEndAddressServiceWrapper=` + server_address + "&lang=zh";
|
||||
url = server_address + `/taskGrid/taskList.html?type=1&wsport=${websocket_port}&backEndAddressServiceWrapper=` + server_address + "&lang=zh";
|
||||
}
|
||||
// and load the index.html of the app.
|
||||
window.loadURL(url);
|
||||
|
483
ElectronJS/mime.json
Normal file
483
ElectronJS/mime.json
Normal file
@ -0,0 +1,483 @@
|
||||
{
|
||||
".323":"text/h323" ,
|
||||
".3gp":"video/3gpp" ,
|
||||
".aab":"application/x-authoware-bin" ,
|
||||
".aam":"application/x-authoware-map" ,
|
||||
".aas":"application/x-authoware-seg" ,
|
||||
".acx":"application/internet-property-stream" ,
|
||||
".ai":"application/postscript" ,
|
||||
".aif":"audio/x-aiff" ,
|
||||
".aifc":"audio/x-aiff" ,
|
||||
".aiff":"audio/x-aiff" ,
|
||||
".als":"audio/X-Alpha5" ,
|
||||
".amc":"application/x-mpeg" ,
|
||||
".ani":"application/octet-stream" ,
|
||||
".apk":"application/vnd.android.package-archive" ,
|
||||
".asc":"text/plain" ,
|
||||
".asd":"application/astound" ,
|
||||
".asf":"video/x-ms-asf" ,
|
||||
".asn":"application/astound" ,
|
||||
".asp":"application/x-asap" ,
|
||||
".asr":"video/x-ms-asf" ,
|
||||
".asx":"video/x-ms-asf" ,
|
||||
".au":"audio/basic" ,
|
||||
".avb":"application/octet-stream" ,
|
||||
".avi":"video/x-msvideo" ,
|
||||
".awb":"audio/amr-wb" ,
|
||||
".axs":"application/olescript" ,
|
||||
".bas":"text/plain" ,
|
||||
".bcpio":"application/x-bcpio" ,
|
||||
".bin ":"application/octet-stream" ,
|
||||
".bld":"application/bld" ,
|
||||
".bld2":"application/bld2" ,
|
||||
".bmp":"image/bmp" ,
|
||||
".bpk":"application/octet-stream" ,
|
||||
".bz2":"application/x-bzip2" ,
|
||||
".c":"text/plain" ,
|
||||
".cal":"image/x-cals" ,
|
||||
".cat":"application/vnd.ms-pkiseccat" ,
|
||||
".ccn":"application/x-cnc" ,
|
||||
".cco":"application/x-cocoa" ,
|
||||
".cdf":"application/x-cdf" ,
|
||||
".cer":"application/x-x509-ca-cert" ,
|
||||
".cgi":"magnus-internal/cgi" ,
|
||||
".chat":"application/x-chat" ,
|
||||
".class":"application/octet-stream" ,
|
||||
".clp":"application/x-msclip" ,
|
||||
".cmx":"image/x-cmx" ,
|
||||
".co":"application/x-cult3d-object" ,
|
||||
".cod":"image/cis-cod" ,
|
||||
".conf":"text/plain" ,
|
||||
".cpio":"application/x-cpio" ,
|
||||
".cpp":"text/plain" ,
|
||||
".cpt":"application/mac-compactpro" ,
|
||||
".crd":"application/x-mscardfile" ,
|
||||
".crl":"application/pkix-crl" ,
|
||||
".crt":"application/x-x509-ca-cert" ,
|
||||
".csh":"application/x-csh" ,
|
||||
".csm":"chemical/x-csml" ,
|
||||
".csml":"chemical/x-csml" ,
|
||||
".css":"text/css" ,
|
||||
".cur":"application/octet-stream" ,
|
||||
".dcm":"x-lml/x-evm" ,
|
||||
".dcr":"application/x-director" ,
|
||||
".dcx":"image/x-dcx" ,
|
||||
".der":"application/x-x509-ca-cert" ,
|
||||
".dhtml":"text/html" ,
|
||||
".dir":"application/x-director" ,
|
||||
".dll":"application/x-msdownload" ,
|
||||
".dmg":"application/octet-stream" ,
|
||||
".dms":"application/octet-stream" ,
|
||||
".doc":"application/msword" ,
|
||||
".docx":"application/vnd.openxmlformats-officedocument.wordprocessingml.document" ,
|
||||
".dot":"application/msword" ,
|
||||
".dvi":"application/x-dvi" ,
|
||||
".dwf":"drawing/x-dwf" ,
|
||||
".dwg":"application/x-autocad" ,
|
||||
".dxf":"application/x-autocad" ,
|
||||
".dxr":"application/x-director" ,
|
||||
".ebk":"application/x-expandedbook" ,
|
||||
".emb":"chemical/x-embl-dl-nucleotide" ,
|
||||
".embl":"chemical/x-embl-dl-nucleotide" ,
|
||||
".eps":"application/postscript" ,
|
||||
".epub":"application/epub+zip" ,
|
||||
".eri":"image/x-eri" ,
|
||||
".es":"audio/echospeech" ,
|
||||
".esl":"audio/echospeech" ,
|
||||
".etc":"application/x-earthtime" ,
|
||||
".etx":"text/x-setext" ,
|
||||
".evm":"x-lml/x-evm" ,
|
||||
".evy":"application/envoy" ,
|
||||
".exe":"application/octet-stream" ,
|
||||
".fh4":"image/x-freehand" ,
|
||||
".fh5":"image/x-freehand" ,
|
||||
".fhc":"image/x-freehand" ,
|
||||
".fif":"application/fractals" ,
|
||||
".flr":"x-world/x-vrml" ,
|
||||
".flv":"flv-application/octet-stream" ,
|
||||
".fm":"application/x-maker" ,
|
||||
".fpx":"image/x-fpx" ,
|
||||
".fvi":"video/isivideo" ,
|
||||
".gau":"chemical/x-gaussian-input" ,
|
||||
".gca":"application/x-gca-compressed" ,
|
||||
".gdb":"x-lml/x-gdb" ,
|
||||
".gif":"image/gif" ,
|
||||
".gps":"application/x-gps" ,
|
||||
".gtar":"application/x-gtar" ,
|
||||
".gz":"application/x-gzip" ,
|
||||
".h":"text/plain" ,
|
||||
".hdf":"application/x-hdf" ,
|
||||
".hdm":"text/x-hdml" ,
|
||||
".hdml":"text/x-hdml" ,
|
||||
".hlp":"application/winhlp" ,
|
||||
".hqx":"application/mac-binhex40" ,
|
||||
".hta":"application/hta" ,
|
||||
".htc":"text/x-component" ,
|
||||
".htm":"text/html" ,
|
||||
".html":"text/html" ,
|
||||
".hts":"text/html" ,
|
||||
".htt":"text/webviewhtml" ,
|
||||
".ice":"x-conference/x-cooltalk" ,
|
||||
".ico":"image/x-icon" ,
|
||||
".ief":"image/ief" ,
|
||||
".ifm":"image/gif" ,
|
||||
".ifs":"image/ifs" ,
|
||||
".iii":"application/x-iphone" ,
|
||||
".imy":"audio/melody" ,
|
||||
".ins":"application/x-internet-signup" ,
|
||||
".ips":"application/x-ipscript" ,
|
||||
".ipx":"application/x-ipix" ,
|
||||
".isp":"application/x-internet-signup" ,
|
||||
".it":"audio/x-mod" ,
|
||||
".itz":"audio/x-mod" ,
|
||||
".ivr":"i-world/i-vrml" ,
|
||||
".j2k":"image/j2k" ,
|
||||
".jad":"text/vnd.sun.j2me.app-descriptor" ,
|
||||
".jam":"application/x-jam" ,
|
||||
".jar":"application/java-archive" ,
|
||||
".java":"text/plain" ,
|
||||
".jfif":"image/pipeg" ,
|
||||
".jnlp":"application/x-java-jnlp-file" ,
|
||||
".jpe":"image/jpeg" ,
|
||||
".jpeg":"image/jpeg" ,
|
||||
".jpg":"image/jpeg" ,
|
||||
".jpz":"image/jpeg" ,
|
||||
".js":"application/x-javascript" ,
|
||||
".jwc":"application/jwc" ,
|
||||
".kjx":"application/x-kjx" ,
|
||||
".lak":"x-lml/x-lak" ,
|
||||
".latex":"application/x-latex" ,
|
||||
".lcc":"application/fastman" ,
|
||||
".lcl":"application/x-digitalloca" ,
|
||||
".lcr":"application/x-digitalloca" ,
|
||||
".lgh":"application/lgh" ,
|
||||
".lha":"application/octet-stream" ,
|
||||
".lml":"x-lml/x-lml" ,
|
||||
".lmlpack":"x-lml/x-lmlpack" ,
|
||||
".log":"text/plain" ,
|
||||
".lsf":"video/x-la-asf" ,
|
||||
".lsx":"video/x-la-asf" ,
|
||||
".lzh":"application/octet-stream" ,
|
||||
".m13":"application/x-msmediaview" ,
|
||||
".m14":"application/x-msmediaview" ,
|
||||
".m15":"audio/x-mod" ,
|
||||
".m3u":"audio/x-mpegurl" ,
|
||||
".m3url":"audio/x-mpegurl" ,
|
||||
".m4a":"audio/mp4a-latm" ,
|
||||
".m4b":"audio/mp4a-latm" ,
|
||||
".m4p":"audio/mp4a-latm" ,
|
||||
".m4u":"video/vnd.mpegurl" ,
|
||||
".m4v":"video/x-m4v" ,
|
||||
".ma1":"audio/ma1" ,
|
||||
".ma2":"audio/ma2" ,
|
||||
".ma3":"audio/ma3" ,
|
||||
".ma5":"audio/ma5" ,
|
||||
".man":"application/x-troff-man" ,
|
||||
".map":"magnus-internal/imagemap" ,
|
||||
".mbd":"application/mbedlet" ,
|
||||
".mct":"application/x-mascot" ,
|
||||
".mdb":"application/x-msaccess" ,
|
||||
".mdz":"audio/x-mod" ,
|
||||
".me":"application/x-troff-me" ,
|
||||
".mel":"text/x-vmel" ,
|
||||
".mht":"message/rfc822" ,
|
||||
".mhtml":"message/rfc822" ,
|
||||
".mi":"application/x-mif" ,
|
||||
".mid":"audio/mid" ,
|
||||
".midi":"audio/midi" ,
|
||||
".mif":"application/x-mif" ,
|
||||
".mil":"image/x-cals" ,
|
||||
".mio":"audio/x-mio" ,
|
||||
".mmf":"application/x-skt-lbs" ,
|
||||
".mng":"video/x-mng" ,
|
||||
".mny":"application/x-msmoney" ,
|
||||
".moc":"application/x-mocha" ,
|
||||
".mocha":"application/x-mocha" ,
|
||||
".mod":"audio/x-mod" ,
|
||||
".mof":"application/x-yumekara" ,
|
||||
".mol":"chemical/x-mdl-molfile" ,
|
||||
".mop":"chemical/x-mopac-input" ,
|
||||
".mov":"video/quicktime" ,
|
||||
".movie":"video/x-sgi-movie" ,
|
||||
".mp2":"video/mpeg" ,
|
||||
".mp3":"audio/mpeg" ,
|
||||
".mp4":"video/mp4" ,
|
||||
".mpa":"video/mpeg" ,
|
||||
".mpc":"application/vnd.mpohun.certificate" ,
|
||||
".mpe":"video/mpeg" ,
|
||||
".mpeg":"video/mpeg" ,
|
||||
".mpg":"video/mpeg" ,
|
||||
".mpg4":"video/mp4" ,
|
||||
".mpga":"audio/mpeg" ,
|
||||
".mpn":"application/vnd.mophun.application" ,
|
||||
".mpp":"application/vnd.ms-project" ,
|
||||
".mps":"application/x-mapserver" ,
|
||||
".mpv2":"video/mpeg" ,
|
||||
".mrl":"text/x-mrml" ,
|
||||
".mrm":"application/x-mrm" ,
|
||||
".ms":"application/x-troff-ms" ,
|
||||
".msg":"application/vnd.ms-outlook" ,
|
||||
".mts":"application/metastream" ,
|
||||
".mtx":"application/metastream" ,
|
||||
".mtz":"application/metastream" ,
|
||||
".mvb":"application/x-msmediaview" ,
|
||||
".mzv":"application/metastream" ,
|
||||
".nar":"application/zip" ,
|
||||
".nbmp":"image/nbmp" ,
|
||||
".nc":"application/x-netcdf" ,
|
||||
".ndb":"x-lml/x-ndb" ,
|
||||
".ndwn":"application/ndwn" ,
|
||||
".nif":"application/x-nif" ,
|
||||
".nmz":"application/x-scream" ,
|
||||
".nokia-op-logo":"image/vnd.nok-oplogo-color" ,
|
||||
".npx":"application/x-netfpx" ,
|
||||
".nsnd":"audio/nsnd" ,
|
||||
".nva":"application/x-neva1" ,
|
||||
".nws":"message/rfc822" ,
|
||||
".oda":"application/oda" ,
|
||||
".ogg":"audio/ogg" ,
|
||||
".oom":"application/x-AtlasMate-Plugin" ,
|
||||
".p10":"application/pkcs10" ,
|
||||
".p12":"application/x-pkcs12" ,
|
||||
".p7b":"application/x-pkcs7-certificates" ,
|
||||
".p7c":"application/x-pkcs7-mime" ,
|
||||
".p7m":"application/x-pkcs7-mime" ,
|
||||
".p7r":"application/x-pkcs7-certreqresp" ,
|
||||
".p7s":"application/x-pkcs7-signature" ,
|
||||
".pac":"audio/x-pac" ,
|
||||
".pae":"audio/x-epac" ,
|
||||
".pan":"application/x-pan" ,
|
||||
".pbm":"image/x-portable-bitmap" ,
|
||||
".pcx":"image/x-pcx" ,
|
||||
".pda":"image/x-pda" ,
|
||||
".pdb":"chemical/x-pdb" ,
|
||||
".pdf":"application/pdf" ,
|
||||
".pfr":"application/font-tdpfr" ,
|
||||
".pfx":"application/x-pkcs12" ,
|
||||
".pgm":"image/x-portable-graymap" ,
|
||||
".pict":"image/x-pict" ,
|
||||
".pko":"application/ynd.ms-pkipko" ,
|
||||
".pm":"application/x-perl" ,
|
||||
".pma":"application/x-perfmon" ,
|
||||
".pmc":"application/x-perfmon" ,
|
||||
".pmd":"application/x-pmd" ,
|
||||
".pml":"application/x-perfmon" ,
|
||||
".pmr":"application/x-perfmon" ,
|
||||
".pmw":"application/x-perfmon" ,
|
||||
".png":"image/png" ,
|
||||
".pnm":"image/x-portable-anymap" ,
|
||||
".pnz":"image/png" ,
|
||||
".pot,":"application/vnd.ms-powerpoint" ,
|
||||
".ppm":"image/x-portable-pixmap" ,
|
||||
".pps":"application/vnd.ms-powerpoint" ,
|
||||
".ppt":"application/vnd.ms-powerpoint" ,
|
||||
".pptx":"application/vnd.openxmlformats-officedocument.presentationml.presentation" ,
|
||||
".pqf":"application/x-cprplayer" ,
|
||||
".pqi":"application/cprplayer" ,
|
||||
".prc":"application/x-prc" ,
|
||||
".prf":"application/pics-rules" ,
|
||||
".prop":"text/plain" ,
|
||||
".proxy":"application/x-ns-proxy-autoconfig" ,
|
||||
".ps":"application/postscript" ,
|
||||
".ptlk":"application/listenup" ,
|
||||
".pub":"application/x-mspublisher" ,
|
||||
".pvx":"video/x-pv-pvx" ,
|
||||
".qcp":"audio/vnd.qcelp" ,
|
||||
".qt":"video/quicktime" ,
|
||||
".qti":"image/x-quicktime" ,
|
||||
".qtif":"image/x-quicktime" ,
|
||||
".r3t":"text/vnd.rn-realtext3d" ,
|
||||
".ra":"audio/x-pn-realaudio" ,
|
||||
".ram":"audio/x-pn-realaudio" ,
|
||||
".rar":"application/octet-stream" ,
|
||||
".ras":"image/x-cmu-raster" ,
|
||||
".rc":"text/plain" ,
|
||||
".rdf":"application/rdf+xml" ,
|
||||
".rf":"image/vnd.rn-realflash" ,
|
||||
".rgb":"image/x-rgb" ,
|
||||
".rlf":"application/x-richlink" ,
|
||||
".rm":"audio/x-pn-realaudio" ,
|
||||
".rmf":"audio/x-rmf" ,
|
||||
".rmi":"audio/mid" ,
|
||||
".rmm":"audio/x-pn-realaudio" ,
|
||||
".rmvb":"audio/x-pn-realaudio" ,
|
||||
".rnx":"application/vnd.rn-realplayer" ,
|
||||
".roff":"application/x-troff" ,
|
||||
".rp":"image/vnd.rn-realpix" ,
|
||||
".rpm":"audio/x-pn-realaudio-plugin" ,
|
||||
".rt":"text/vnd.rn-realtext" ,
|
||||
".rte":"x-lml/x-gps" ,
|
||||
".rtf":"application/rtf" ,
|
||||
".rtg":"application/metastream" ,
|
||||
".rtx":"text/richtext" ,
|
||||
".rv":"video/vnd.rn-realvideo" ,
|
||||
".rwc":"application/x-rogerwilco" ,
|
||||
".s3m":"audio/x-mod" ,
|
||||
".s3z":"audio/x-mod" ,
|
||||
".sca":"application/x-supercard" ,
|
||||
".scd":"application/x-msschedule" ,
|
||||
".sct":"text/scriptlet" ,
|
||||
".sdf":"application/e-score" ,
|
||||
".sea":"application/x-stuffit" ,
|
||||
".setpay":"application/set-payment-initiation" ,
|
||||
".setreg":"application/set-registration-initiation" ,
|
||||
".sgm":"text/x-sgml" ,
|
||||
".sgml":"text/x-sgml" ,
|
||||
".sh":"application/x-sh" ,
|
||||
".shar":"application/x-shar" ,
|
||||
".shtml":"magnus-internal/parsed-html" ,
|
||||
".shw":"application/presentations" ,
|
||||
".si6":"image/si6" ,
|
||||
".si7":"image/vnd.stiwap.sis" ,
|
||||
".si9":"image/vnd.lgtwap.sis" ,
|
||||
".sis":"application/vnd.symbian.install" ,
|
||||
".sit":"application/x-stuffit" ,
|
||||
".skd":"application/x-Koan" ,
|
||||
".skm":"application/x-Koan" ,
|
||||
".skp":"application/x-Koan" ,
|
||||
".skt":"application/x-Koan" ,
|
||||
".slc":"application/x-salsa" ,
|
||||
".smd":"audio/x-smd" ,
|
||||
".smi":"application/smil" ,
|
||||
".smil":"application/smil" ,
|
||||
".smp":"application/studiom" ,
|
||||
".smz":"audio/x-smd" ,
|
||||
".snd":"audio/basic" ,
|
||||
".spc":"application/x-pkcs7-certificates" ,
|
||||
".spl":"application/futuresplash" ,
|
||||
".spr":"application/x-sprite" ,
|
||||
".sprite":"application/x-sprite" ,
|
||||
".sdp":"application/sdp" ,
|
||||
".spt":"application/x-spt" ,
|
||||
".src":"application/x-wais-source" ,
|
||||
".sst":"application/vnd.ms-pkicertstore" ,
|
||||
".stk":"application/hyperstudio" ,
|
||||
".stl":"application/vnd.ms-pkistl" ,
|
||||
".stm":"text/html" ,
|
||||
".svg":"image/svg+xml" ,
|
||||
".sv4cpio":"application/x-sv4cpio" ,
|
||||
".sv4crc":"application/x-sv4crc" ,
|
||||
".svf":"image/vnd" ,
|
||||
".svh":"image/svh" ,
|
||||
".svr":"x-world/x-svr" ,
|
||||
".swf":"application/x-shockwave-flash" ,
|
||||
".swfl":"application/x-shockwave-flash" ,
|
||||
".t":"application/x-troff" ,
|
||||
".tad":"application/octet-stream" ,
|
||||
".talk":"text/x-speech" ,
|
||||
".tar":"application/x-tar" ,
|
||||
".taz":"application/x-tar" ,
|
||||
".tbp":"application/x-timbuktu" ,
|
||||
".tbt":"application/x-timbuktu" ,
|
||||
".tcl":"application/x-tcl" ,
|
||||
".tex":"application/x-tex" ,
|
||||
".texi":"application/x-texinfo" ,
|
||||
".texinfo":"application/x-texinfo" ,
|
||||
".tgz":"application/x-compressed" ,
|
||||
".thm":"application/vnd.eri.thm" ,
|
||||
".tif":"image/tiff" ,
|
||||
".tiff":"image/tiff" ,
|
||||
".tki":"application/x-tkined" ,
|
||||
".tkined":"application/x-tkined" ,
|
||||
".toc":"application/toc" ,
|
||||
".toy":"image/toy" ,
|
||||
".tr":"application/x-troff" ,
|
||||
".trk":"x-lml/x-gps" ,
|
||||
".trm":"application/x-msterminal" ,
|
||||
".tsi":"audio/tsplayer" ,
|
||||
".tsp":"application/dsptype" ,
|
||||
".tsv":"text/tab-separated-values" ,
|
||||
".ttf":"application/octet-stream" ,
|
||||
".ttz":"application/t-time" ,
|
||||
".txt":"text/plain" ,
|
||||
".uls":"text/iuls" ,
|
||||
".ult":"audio/x-mod" ,
|
||||
".ustar":"application/x-ustar" ,
|
||||
".uu":"application/x-uuencode" ,
|
||||
".uue":"application/x-uuencode" ,
|
||||
".vcd":"application/x-cdlink" ,
|
||||
".vcf":"text/x-vcard" ,
|
||||
".vdo":"video/vdo" ,
|
||||
".vib":"audio/vib" ,
|
||||
".viv":"video/vivo" ,
|
||||
".vivo":"video/vivo" ,
|
||||
".vmd":"application/vocaltec-media-desc" ,
|
||||
".vmf":"application/vocaltec-media-file" ,
|
||||
".vmi":"application/x-dreamcast-vms-info" ,
|
||||
".vms":"application/x-dreamcast-vms" ,
|
||||
".vox":"audio/voxware" ,
|
||||
".vqe":"audio/x-twinvq-plugin" ,
|
||||
".vqf":"audio/x-twinvq" ,
|
||||
".vql":"audio/x-twinvq" ,
|
||||
".vre":"x-world/x-vream" ,
|
||||
".vrml":"x-world/x-vrml" ,
|
||||
".vrt":"x-world/x-vrt" ,
|
||||
".vrw":"x-world/x-vream" ,
|
||||
".vts":"workbook/formulaone" ,
|
||||
".wav":"audio/x-wav" ,
|
||||
".wax":"audio/x-ms-wax" ,
|
||||
".wbmp":"image/vnd.wap.wbmp" ,
|
||||
".wcm":"application/vnd.ms-works" ,
|
||||
".wdb":"application/vnd.ms-works" ,
|
||||
".web":"application/vnd.xara" ,
|
||||
".wi":"image/wavelet" ,
|
||||
".wis":"application/x-InstallShield" ,
|
||||
".wks":"application/vnd.ms-works" ,
|
||||
".wm":"video/x-ms-wm" ,
|
||||
".wma":"audio/x-ms-wma" ,
|
||||
".wmd":"application/x-ms-wmd" ,
|
||||
".wmf":"application/x-msmetafile" ,
|
||||
".wml":"text/vnd.wap.wml" ,
|
||||
".wmlc":"application/vnd.wap.wmlc" ,
|
||||
".wmls":"text/vnd.wap.wmlscript" ,
|
||||
".wmlsc":"application/vnd.wap.wmlscriptc" ,
|
||||
".wmlscript":"text/vnd.wap.wmlscript" ,
|
||||
".wmv":"audio/x-ms-wmv" ,
|
||||
".wmx":"video/x-ms-wmx" ,
|
||||
".wmz":"application/x-ms-wmz" ,
|
||||
".wpng":"image/x-up-wpng" ,
|
||||
".wps":"application/vnd.ms-works" ,
|
||||
".wpt":"x-lml/x-gps" ,
|
||||
".wri":"application/x-mswrite" ,
|
||||
".wrl":"x-world/x-vrml" ,
|
||||
".wrz":"x-world/x-vrml" ,
|
||||
".ws":"text/vnd.wap.wmlscript" ,
|
||||
".wsc":"application/vnd.wap.wmlscriptc" ,
|
||||
".wv":"video/wavelet" ,
|
||||
".wvx":"video/x-ms-wvx" ,
|
||||
".wxl":"application/x-wxl" ,
|
||||
".x-gzip":"application/x-gzip" ,
|
||||
".xaf":"x-world/x-vrml" ,
|
||||
".xar":"application/vnd.xara" ,
|
||||
".xbm":"image/x-xbitmap" ,
|
||||
".xdm":"application/x-xdma" ,
|
||||
".xdma":"application/x-xdma" ,
|
||||
".xdw":"application/vnd.fujixerox.docuworks" ,
|
||||
".xht":"application/xhtml+xml" ,
|
||||
".xhtm":"application/xhtml+xml" ,
|
||||
".xhtml":"application/xhtml+xml" ,
|
||||
".xla":"application/vnd.ms-excel" ,
|
||||
".xlc":"application/vnd.ms-excel" ,
|
||||
".xll":"application/x-excel" ,
|
||||
".xlm":"application/vnd.ms-excel" ,
|
||||
".xls":"application/vnd.ms-excel" ,
|
||||
".xlsx":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" ,
|
||||
".xlt":"application/vnd.ms-excel" ,
|
||||
".xlw":"application/vnd.ms-excel" ,
|
||||
".xm":"audio/x-mod" ,
|
||||
".xml":"application/xml",
|
||||
".xmz":"audio/x-mod" ,
|
||||
".xof":"x-world/x-vrml" ,
|
||||
".xpi":"application/x-xpinstall" ,
|
||||
".xpm":"image/x-xpixmap" ,
|
||||
".xsit":"text/xml" ,
|
||||
".xsl":"text/xml" ,
|
||||
".xul":"text/xul" ,
|
||||
".xwd":"image/x-xwindowdump" ,
|
||||
".xyz":"chemical/x-pdb" ,
|
||||
".yz1":"application/x-yz1" ,
|
||||
".z":"application/x-compress" ,
|
||||
".zac":"application/x-zaurus-zac" ,
|
||||
".zip":"application/zip" ,
|
||||
".json":"application/json"
|
||||
}
|
@ -1,2 +0,0 @@
|
||||
rmdir /s C:\Users\q9823\AppData\Local\Temp\electron-packager
|
||||
npm run package
|
@ -50,7 +50,7 @@
|
||||
"appCopyright": "Naibo Wang(naibowang@foxmail.com)",
|
||||
"win32metadata": {
|
||||
"ProductName": "EasySpider",
|
||||
"CompanyName": "浙江大学",
|
||||
"CompanyName": "王乃博 (浙江大学)",
|
||||
"FileDescription": "EasySpider"
|
||||
}
|
||||
},
|
||||
|
24
ElectronJS/package_win64.cmd
Normal file
24
ElectronJS/package_win64.cmd
Normal file
@ -0,0 +1,24 @@
|
||||
@echo off
|
||||
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
|
||||
if '%errorlevel%' NEQ '0' (
|
||||
goto UACPrompt
|
||||
) else ( goto gotAdmin )
|
||||
:UACPrompt
|
||||
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
|
||||
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
|
||||
"%temp%\getadmin.vbs"
|
||||
exit /B
|
||||
:gotAdmin
|
||||
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
|
||||
pushd "%CD%"
|
||||
CD /D "%~dp0"
|
||||
|
||||
rmdir /s /q C:\Users\q9823\AppData\Local\Temp\electron-packager
|
||||
rmdir /s /q out
|
||||
npm run package
|
||||
move out\EasySpider-win32-x64 out\EasySpider
|
||||
rmdir /s /q out\EasySpider\resources\app\chrome_win32
|
||||
rmdir /s /q out\EasySpider\resources\app\Data
|
||||
rmdir /s /q out\EasySpider\resources\app\.idea
|
||||
rmdir/s /q out\EasySpider\resources\app\tasks
|
||||
rmdir /s /q out\EasySpider\resources\app\execution_instances
|
@ -13,39 +13,97 @@ function travel(dir,callback){
|
||||
}
|
||||
})
|
||||
}
|
||||
function compare(p){ //这是比较函数
|
||||
return function(m,n){
|
||||
var a = m[p];
|
||||
var b = n[p];
|
||||
return b - a; //降序
|
||||
}
|
||||
}
|
||||
function getDir(){
|
||||
if(__dirname.indexOf("app") >= 0 && __dirname.indexOf("resources") >= 0){
|
||||
return path.join(__dirname,"../../..");
|
||||
} else{
|
||||
return __dirname;
|
||||
}
|
||||
}
|
||||
|
||||
exports.getDir = getDir;
|
||||
FileMimes = JSON.parse(fs.readFileSync(path.join(__dirname,'mime.json')).toString());
|
||||
exports.start = function(port = 8074) {
|
||||
http.createServer(function(req, res) {
|
||||
let body = "";
|
||||
res.setHeader("Access-Control-Allow-Origin", "*"); // 设置可访问的源
|
||||
res.writeHead(200, { 'Content-Type': 'application/json' });
|
||||
// 解析参数
|
||||
const pathName = url.parse(req.url).pathname;
|
||||
if(pathName.indexOf(".") < 0) { //如果没有后缀名, 则为后台请求
|
||||
res.writeHead(200, { 'Content-Type': 'application/json' });
|
||||
}
|
||||
// else if(pathName.indexOf("index.html") >= 0) {
|
||||
// fs.readFile(path.join(__dirname,"src", pathName), async (err, data) => {
|
||||
// if (err) {
|
||||
// res.writeHead(404, { 'Content-Type': 'text/html;charset="utf-8"' })
|
||||
// res.end(err.message)
|
||||
// return;
|
||||
// }
|
||||
// if (!err) {
|
||||
// // 3. 针对不同的文件返回不同的内容头
|
||||
// let extname = path.extname(pathName);
|
||||
// let mime = FileMimes[extname]
|
||||
// res.writeHead(200, { 'Content-Type': mime + ';charset="utf-8"' })
|
||||
// res.end(data);
|
||||
// return;
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
else { //如果有后缀名, 则为前端请求
|
||||
// console.log(path.join(__dirname,"src/taskGrid", pathName));
|
||||
fs.readFile(path.join(__dirname,"src", pathName), async (err, data) => {
|
||||
if (err) {
|
||||
res.writeHead(404, { 'Content-Type': 'text/html;charset="utf-8"' })
|
||||
res.end(err.message)
|
||||
return;
|
||||
}
|
||||
if (!err) {
|
||||
// 3. 针对不同的文件返回不同的内容头
|
||||
let extname = path.extname(pathName);
|
||||
let mime = FileMimes[extname]
|
||||
res.writeHead(200, { 'Content-Type': mime + ';charset="utf-8"' })
|
||||
res.end(data);
|
||||
return;
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
req.on('data', function(chunk) {
|
||||
body += chunk;
|
||||
});
|
||||
req.on('end', function() {
|
||||
// 解析参数
|
||||
const pathName = url.parse(req.url).pathname;
|
||||
// 设置响应头部信息及编码
|
||||
if (pathName == "/queryTasks") { //查询所有服务信息,只包括id和服务名称
|
||||
output = [];
|
||||
travel(path.join(__dirname, "tasks"),function(pathname){
|
||||
travel(path.join(getDir(), "tasks"),function(pathname){
|
||||
const data = fs.readFileSync(pathname, 'utf8');
|
||||
let stat = fs.statSync(pathname, 'utf8');
|
||||
// parse JSON string to JSON object
|
||||
const task = JSON.parse(data);
|
||||
let item = {
|
||||
"id": task.id,
|
||||
"name": task.name,
|
||||
"url": task.url,
|
||||
"mtime": stat.mtime,
|
||||
}
|
||||
if(item.id!= -2) {
|
||||
output.push(item);
|
||||
}
|
||||
});
|
||||
output.sort(compare("mtime"));
|
||||
res.write(JSON.stringify(output));
|
||||
res.end();
|
||||
} else if (pathName == "/queryExecutionInstances") { //查询所有服务信息,只包括id和服务名称
|
||||
output = [];
|
||||
travel(path.join(__dirname, "execution_instances"),function(pathname){
|
||||
travel(path.join(getDir(), "execution_instances"),function(pathname){
|
||||
const data = fs.readFileSync(pathname, 'utf8');
|
||||
// parse JSON string to JSON object
|
||||
const task = JSON.parse(data);
|
||||
@ -64,7 +122,7 @@ exports.start = function(port = 8074) {
|
||||
var params = url.parse(req.url, true).query;
|
||||
try {
|
||||
var tid = parseInt(params.id);
|
||||
const data = fs.readFileSync(path.join(__dirname, `tasks/${tid}.json`), 'utf8');
|
||||
const data = fs.readFileSync(path.join(getDir(), `tasks/${tid}.json`), 'utf8');
|
||||
// parse JSON string to JSON object
|
||||
res.write(data);
|
||||
res.end();
|
||||
@ -76,7 +134,7 @@ exports.start = function(port = 8074) {
|
||||
var params = url.parse(req.url, true).query;
|
||||
try {
|
||||
var tid = parseInt(params.id);
|
||||
const data = fs.readFileSync(path.join(__dirname, `execution_instances/${tid}.json`), 'utf8');
|
||||
const data = fs.readFileSync(path.join(getDir(), `execution_instances/${tid}.json`), 'utf8');
|
||||
// parse JSON string to JSON object
|
||||
res.write(data);
|
||||
res.end();
|
||||
@ -91,12 +149,12 @@ exports.start = function(port = 8074) {
|
||||
var params = url.parse(req.url, true).query;
|
||||
try {
|
||||
let tid = parseInt(params.id);
|
||||
let data = fs.readFileSync(path.join(__dirname, `tasks/${tid}.json`), 'utf8');
|
||||
let data = fs.readFileSync(path.join(getDir(), `tasks/${tid}.json`), 'utf8');
|
||||
data = JSON.parse(data);
|
||||
data.id = -2;
|
||||
data = JSON.stringify(data);
|
||||
// write JSON string to a file
|
||||
fs.writeFile(path.join(__dirname, `tasks/${tid}.json`), data, (err) => {
|
||||
fs.writeFile(path.join(getDir(), `tasks/${tid}.json`), data, (err) => {
|
||||
if (err) {
|
||||
throw err;
|
||||
}
|
||||
@ -113,7 +171,7 @@ exports.start = function(port = 8074) {
|
||||
let id = data["id"];
|
||||
if (data["id"] == -1) {
|
||||
file_names = [];
|
||||
fs.readdirSync(path.join(__dirname, "tasks")).forEach((file)=>{
|
||||
fs.readdirSync(path.join(getDir(), "tasks")).forEach((file)=>{
|
||||
try{
|
||||
file_names.push(parseInt(file.split(".")[0]));
|
||||
} catch (error) {
|
||||
@ -130,14 +188,14 @@ exports.start = function(port = 8074) {
|
||||
}
|
||||
data = JSON.stringify(data);
|
||||
// write JSON string to a file
|
||||
fs.writeFile(path.join(__dirname, `tasks/${id}.json`), data, (err) => {});
|
||||
fs.writeFile(path.join(getDir(), `tasks/${id}.json`), data, (err) => {});
|
||||
res.write(id.toString(), 'utf8');
|
||||
res.end();
|
||||
} else if(pathName == "/invokeTask"){
|
||||
body = querystring.parse(body);
|
||||
let data = JSON.parse(body.paras);
|
||||
let id = body.id;
|
||||
let task = fs.readFileSync(path.join(__dirname, `tasks/${id}.json`), 'utf8');
|
||||
let task = fs.readFileSync(path.join(getDir(), `tasks/${id}.json`), 'utf8');
|
||||
task = JSON.parse(task);
|
||||
try{
|
||||
task["links"] = data["urlList_0"];
|
||||
@ -163,7 +221,7 @@ exports.start = function(port = 8074) {
|
||||
}
|
||||
}
|
||||
let file_names = [];
|
||||
fs.readdirSync(path.join(__dirname, "execution_instances")).forEach((file)=>{
|
||||
fs.readdirSync(path.join(getDir(), "execution_instances")).forEach((file)=>{
|
||||
try{
|
||||
file_names.push(parseInt(file.split(".")[0]));
|
||||
} catch (error) {
|
||||
@ -176,9 +234,23 @@ exports.start = function(port = 8074) {
|
||||
}
|
||||
task["id"] = eid;
|
||||
task = JSON.stringify(task);
|
||||
fs.writeFile(path.join(__dirname, `execution_instances/${eid}.json`), task, (err) => {});
|
||||
fs.writeFile(path.join(getDir(), `execution_instances/${eid}.json`), task, (err) => {});
|
||||
res.write(eid.toString(), 'utf8');
|
||||
res.end();
|
||||
} else if(pathName == "/getConfig"){
|
||||
let config = fs.readFileSync(path.join(getDir(), `config.json`), 'utf8');
|
||||
config = JSON.parse(config);
|
||||
res.write(JSON.stringify(config));
|
||||
res.end();
|
||||
} else if(pathName == "/setUserDataFolder"){
|
||||
let config = fs.readFileSync(path.join(getDir(), `config.json`), 'utf8');
|
||||
config = JSON.parse(config);
|
||||
body = querystring.parse(body);
|
||||
config["user_data_folder"] = body["user_data_folder"];
|
||||
config = JSON.stringify(config);
|
||||
fs.writeFile(path.join(getDir(), `config.json`), config, (err) => {});
|
||||
res.write(JSON.stringify({ "success": "User data folder has been set successfully." }));
|
||||
res.end();
|
||||
}
|
||||
});
|
||||
}).listen(port);
|
||||
|
@ -27,7 +27,7 @@
|
||||
|
||||
</body>
|
||||
<script>
|
||||
document.write("<script src='http://127.0.0.1/baozhuangscript.js'><\/script>");
|
||||
document.write("<script src='http://127.0.0.1/baozhuangscript.ts'><\/script>");
|
||||
</script>
|
||||
<!-- <script>
|
||||
//获取xpath
|
||||
|
@ -2,75 +2,183 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<script src="js/jquery-3.4.1.min.js"></script>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport"
|
||||
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<script src="js/vue.global.js"></script>
|
||||
<link rel="stylesheet" href="bootstrap/css/bootstrap.css">
|
||||
</link>
|
||||
<title>EasySpider: NoCode Visual Web Crawler</title>
|
||||
<script src="js/jquery-3.4.1.min.js"></script>
|
||||
<meta charset="UTF-8">
|
||||
<meta content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"
|
||||
name="viewport">
|
||||
<meta content="ie=edge" http-equiv="X-UA-Compatible">
|
||||
<script src="js/vue.global.js"></script>
|
||||
<link href="bootstrap/css/bootstrap.css" rel="stylesheet">
|
||||
</link>
|
||||
<title>EasySpider: NoCode Visual Web Crawler</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="app">
|
||||
|
||||
<div v-if="init" style="padding: 10px; text-align: center;vertical-align: middle;">
|
||||
<p style="margin-top: 20px">选择语言/Select Language</p>
|
||||
<div style="padding: 10px; text-align: center;vertical-align: middle;" v-if="init">
|
||||
<h5 style="margin-top: 20px">选择语言/Select Language</h5>
|
||||
|
||||
<p><a style="margin-top: 15px; width: 300px;height:60px;padding-top:12px;" @click="changeLang('zh')" class="btn btn-outline-primary btn-lg">中文版</a></p>
|
||||
<p><a @click="changeLang('zh')" class="btn btn-outline-primary btn-lg"
|
||||
style="margin-top: 15px; width: 300px;height:60px;padding-top:12px;">中文版</a></p>
|
||||
|
||||
<p><a style="margin-top: 15px; width: 300px;height:60px;padding-top:12px;" @click="changeLang('en')" class="btn btn-outline-primary btn-lg">English</a></p>
|
||||
</div>
|
||||
|
||||
<div v-else style="padding: 10px; text-align: center;vertical-align: middle;">
|
||||
<div v-if="lang=='en'">
|
||||
<p style="margin-top: 20px">Hint: Click Button below to start.</p>
|
||||
|
||||
<p><a style="margin-top: 15px; width: 300px;height:60px;padding-top:12px;color:white" @click="startDesign('en')"
|
||||
class="btn btn-primary btn-lg">Design Task</a></p>
|
||||
|
||||
<p><a style="margin-top: 15px; width: 300px;height:60px;padding-top:12px;color:white" @click="startInvoke('en')" @click
|
||||
class="btn btn-primary btn-lg">View/Manage/Invoke Tasks</a></p>
|
||||
<p><a @click="changeLang('en')" class="btn btn-outline-primary btn-lg"
|
||||
style="margin-top: 15px; width: 300px;height:60px;padding-top:12px;">English</a></p>
|
||||
</div>
|
||||
<div v-else-if="lang=='zh'">
|
||||
<p style="margin-top: 20px">提示:点击下方按钮开始使用。</p>
|
||||
|
||||
<p><a style="margin-top: 15px; width: 300px;height:60px;padding-top:12px;color:white" @click="startDesign('zh')"
|
||||
class="btn btn-primary btn-lg">设计任务</a></p>
|
||||
<div style="padding: 10px; text-align: center;vertical-align: middle;" v-else>
|
||||
<div v-if="lang=='en'">
|
||||
<div v-if="step == 0">
|
||||
<p style="margin-top: 20px">Hint: Click Button below to start.</p>
|
||||
|
||||
<p><a style="margin-top: 15px; width: 300px;height:60px;padding-top:12px;color:white" @click="startInvoke('zh')" @click
|
||||
class="btn btn-primary btn-lg">查看/管理/执行任务</a></p>
|
||||
<p><a @click="step = 1"
|
||||
class="btn btn-primary btn-lg"
|
||||
style="margin-top: 15px; width: 300px;height:60px;padding-top:12px;color:white">Design Task</a>
|
||||
</p>
|
||||
|
||||
<p><a @click="startInvoke('en')"
|
||||
@click class="btn btn-primary btn-lg"
|
||||
style="margin-top: 15px; width: 300px;height:60px;padding-top:12px;color:white">View/Manage/Invoke
|
||||
Tasks</a></p>
|
||||
</div>
|
||||
<div v-else-if="step == 1">
|
||||
<h4 style="margin-top: 20px">Please select design mode</h4>
|
||||
<p style="margin-top: 20px; text-align: justify; width:310px; margin-left: 18%">
|
||||
Clean Mode: Start with a clean browser with no cookie/user data</p>
|
||||
<p style="text-align: justify; width:310px; margin-left: 18%">
|
||||
Data Mode: Start with a browser that stores user data such as website login information and cookies.</p>
|
||||
<p><a @click="startDesign('en')"
|
||||
class="btn btn-primary btn-lg"
|
||||
style="margin-top: 15px; width: 300px;height:60px;padding-top:12px;color:white">Start Clean Mode</a>
|
||||
</p>
|
||||
|
||||
<p><a @click="step = 2" @click
|
||||
class="btn btn-primary btn-lg"
|
||||
style="margin-top: 15px; width: 300px;height:60px;padding-top:12px;color:white">Start Data Mode</a>
|
||||
</p>
|
||||
|
||||
<a @click="step = 0" class="btn btn-outline-primary btn-lg"style="margin-top: 10px; width: 300px;height:45px;padding-top:5px">Go to Home Page</a>
|
||||
|
||||
</div>
|
||||
<div v-else-if="step == 2">
|
||||
<h4 style="margin-top: 20px">Specify user data folder</h4>
|
||||
<div style="margin: 0 auto; width:90%">
|
||||
<p style="margin-top: 20px; text-align: justify">
|
||||
Please specify the directory of user data below. Once set, the browser will load cookies and other contents such as user login information from this directory. The browser will load data from this directory every time it is designed and executed, as long as the directory remains the same. </p>
|
||||
<p style="text-align: justify">For example, if the <b>./user_data</b> folder is set and you log in at <b>ebay.com</b> during the design process, then the previous login status will still be retained when you specify the <b>./user_data</b> folder again for the next design or task execution when you open <b>ebay.com</b>.</p>
|
||||
<p style="text-align: justify">If there are multiple configurations, different directories can be set for each configuration. Each directory will be treated as a separate configuration set, and if a directory does not exist, it will be created automatically.</p>
|
||||
<p><textarea class="form-control" style="min-height: 50px;"
|
||||
v-model="user_data_folder"></textarea>
|
||||
</p>
|
||||
</div>
|
||||
<p><a @click="startDesign('en', true)"
|
||||
class="btn btn-primary btn-lg"
|
||||
style="margin-top: 15px; width: 300px;height:60px;padding-top:12px;color:white">Start Design</a></p>
|
||||
<p>
|
||||
<a @click="step = 0" class="btn btn-outline-primary btn-lg"style="margin-top: 10px; width: 300px;height:45px;padding-top:5px">Go to Home Page</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else-if="lang=='zh'">
|
||||
<div v-if="step == 0">
|
||||
<p style="margin-top: 20px">提示:点击下方按钮开始使用。</p>
|
||||
|
||||
<p><a @click="step = 1" class="btn btn-primary btn-lg"
|
||||
style="margin-top: 15px; width: 300px;height:60px;padding-top:12px;color:white">设计任务</a></p>
|
||||
|
||||
<p><a @click="startInvoke('zh')"
|
||||
@click class="btn btn-primary btn-lg"
|
||||
style="margin-top: 15px; width: 300px;height:60px;padding-top:12px;color:white">查看/管理/执行任务</a>
|
||||
</p>
|
||||
</div>
|
||||
<div v-else-if="step == 1">
|
||||
<h4 style="margin-top: 20px">请选择设计模式</h4>
|
||||
<p style="margin-top: 20px; text-align: left; width:310px; margin-left: 18%">
|
||||
纯净版浏览器:无任何用户信息的浏览器。</p>
|
||||
<p style="text-align: left; width:310px; margin-left: 18%">
|
||||
带用户信息的浏览器:保存有用户数据,如网站的登录信息,cookie的浏览器。</p>
|
||||
<p><a @click="startDesign('zh')"
|
||||
class="btn btn-primary btn-lg"
|
||||
style="margin-top: 15px; width: 300px;height:60px;padding-top:12px;color:white">使用纯净版浏览器设计</a>
|
||||
</p>
|
||||
|
||||
<p><a @click="step = 2" class="btn btn-primary btn-lg"
|
||||
style="margin-top: 15px; width: 300px;height:60px;padding-top:12px;color:white">使用带用户信息浏览器设计</a>
|
||||
</p>
|
||||
<p>
|
||||
<a @click="step = 0" class="btn btn-outline-primary btn-lg"style="margin-top: 10px; width: 300px;height:45px;padding-top:5px">返回首页</a>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div v-else-if="step == 2">
|
||||
<h4 style="margin-top: 20px">指定用户信息目录</h4>
|
||||
<div style="margin: 0 auto; width:90%">
|
||||
<p style="margin-top: 20px; text-align: left">
|
||||
请在下方指定用户信息目录。设置后,浏览器将加载目录里的cookie,如用户的登录信息等内容,目录不变的情况下,每次设计和执行时浏览器都会加载此目录里的数据。</p>
|
||||
<p style="margin-top: 10px; text-align: left">例如:设置了./user_data文件夹,并在设计过程中登录了知乎网站,则下次再次设计或者执行任务时指定./user_data文件夹,打开知乎网站页面会仍然保留之前的登录状态。</p>
|
||||
<p style="margin-top: 10px; text-align: left">如果有多套配置,可以设置不同的目录,每个目录为一套,如果目录不存在将会被自动创建。</p>
|
||||
<p><textarea class="form-control" style="min-height: 50px;"
|
||||
v-model="user_data_folder"></textarea>
|
||||
</p>
|
||||
</div>
|
||||
<p><a @click="startDesign('zh', true)"
|
||||
class="btn btn-primary btn-lg"
|
||||
style="margin-top: 15px; width: 300px;height:60px;padding-top:12px;color:white">开始设计</a></p>
|
||||
<p>
|
||||
<a @click="step = 0" class="btn btn-outline-primary btn-lg"style="margin-top: 10px; width: 300px;height:45px;padding-top:5px">返回首页</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- You can also require other files to run in this process -->
|
||||
<script src="js/renderer.js"></script>
|
||||
<script>
|
||||
const { createApp } = Vue;
|
||||
|
||||
createApp({
|
||||
data() {
|
||||
return {
|
||||
init: true,
|
||||
lang: 'zh',
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
changeLang(lang='zh') {
|
||||
this.init = false;
|
||||
this.lang = lang;
|
||||
},
|
||||
startDesign(lang){
|
||||
window.electronAPI.startDesign(lang);
|
||||
},
|
||||
startInvoke(lang){
|
||||
window.electronAPI.startInvoke(lang);
|
||||
}
|
||||
<script>
|
||||
const {createApp} = Vue;
|
||||
|
||||
function getUrlParam(name) {
|
||||
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
|
||||
var r = window.location.search.substr(1).match(reg); //匹配目标参数
|
||||
if (r != null) return unescape(r[2]);
|
||||
return "";
|
||||
}
|
||||
}).mount('#app');
|
||||
|
||||
createApp({
|
||||
data() {
|
||||
return {
|
||||
init: true,
|
||||
lang: 'zh',
|
||||
user_data_folder: getUrlParam("user_data_folder"),
|
||||
step: 0,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
changeLang(lang = 'zh') {
|
||||
this.init = false;
|
||||
this.lang = lang;
|
||||
},
|
||||
startDesign(lang, with_data = false) {
|
||||
if (with_data) {
|
||||
console.log(this.user_data_folder)
|
||||
if (this.user_data_folder == null || this.user_data_folder == "") {
|
||||
if (lang == 'zh') {
|
||||
alert("请指定用户信息目录");
|
||||
} else {
|
||||
alert("Please specify the user information directory");
|
||||
}
|
||||
return;
|
||||
}
|
||||
window.electronAPI.startDesign(lang, this.user_data_folder);
|
||||
} else {
|
||||
window.electronAPI.startDesign(lang);
|
||||
}
|
||||
},
|
||||
startInvoke(lang) {
|
||||
window.electronAPI.startInvoke(lang);
|
||||
}
|
||||
}
|
||||
}).mount('#app');
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
@ -8,6 +8,6 @@
|
||||
const { contextBridge, ipcRenderer } = require('electron');
|
||||
|
||||
contextBridge.exposeInMainWorld('electronAPI', {
|
||||
startDesign: (lang="en") => ipcRenderer.send('start-design', lang),
|
||||
startDesign: (lang="en", user_data_folder = '') => ipcRenderer.send('start-design', lang, user_data_folder),
|
||||
startInvoke: (lang="en") => ipcRenderer.send('start-invoke', lang),
|
||||
})
|
@ -1,16 +0,0 @@
|
||||
/**
|
||||
* This file is loaded via the <script> tag in the index.html file and will
|
||||
* be executed in the renderer process for that window. No Node.js APIs are
|
||||
* available in this process because `nodeIntegration` is turned off and
|
||||
* `contextIsolation` is turned on. Use the contextBridge API in `preload.js`
|
||||
* to expose Node.js functionality from the main process.
|
||||
*/
|
||||
const designButton = document.getElementById('btnDesign')
|
||||
designButton.addEventListener('click', () => {
|
||||
window.electronAPI.startDesign();
|
||||
});
|
||||
|
||||
const invokeButton = document.getElementById('btnInvoke')
|
||||
invokeButton.addEventListener('click', () => {
|
||||
window.electronAPI.startInvoke();
|
||||
});
|
@ -6,7 +6,7 @@
|
||||
|
||||
div.node {
|
||||
height: 45px;
|
||||
width: 120px;
|
||||
width: 150px;
|
||||
border-radius: 7px;
|
||||
border: skyblue solid;
|
||||
background: rgb(73, 156, 189);
|
||||
|
@ -299,17 +299,17 @@
|
||||
gotoHome: function () {
|
||||
let url = "";
|
||||
if (getUrlParam("lang") == "zh") {
|
||||
url = "taskList.html?lang=zh&type="+getUrlParam("type")+"&backEndAddressServiceWrapper=" + this.backEndAddressServiceWrapper
|
||||
url = "taskList.html?lang=zh&type="+getUrlParam("type")+"&wsport="+getUrlParam("wsport")+"&backEndAddressServiceWrapper=" + this.backEndAddressServiceWrapper
|
||||
} else {
|
||||
url = "taskList.html?lang=en&type="+getUrlParam("type")+"&backEndAddressServiceWrapper=" + this.backEndAddressServiceWrapper
|
||||
url = "taskList.html?lang=en&type="+getUrlParam("type")+"&wsport="+getUrlParam("wsport")+"&backEndAddressServiceWrapper=" + this.backEndAddressServiceWrapper
|
||||
}
|
||||
window.location.href = url;
|
||||
}, gotoInfo: function () {
|
||||
let url = "";
|
||||
if (getUrlParam("lang") == "zh") {
|
||||
url = "taskInfo.html?id="+getUrlParam("id")+"&lang=zh&type="+getUrlParam("type")+"&backEndAddressServiceWrapper=" + this.backEndAddressServiceWrapper
|
||||
url = "taskInfo.html?id="+getUrlParam("id")+"&lang=zh&type="+getUrlParam("type")+"&wsport="+getUrlParam("wsport")+"&backEndAddressServiceWrapper=" + this.backEndAddressServiceWrapper
|
||||
} else {
|
||||
url = "taskInfo.html?id="+getUrlParam("id")+"&lang=en&type="+getUrlParam("type")+"&backEndAddressServiceWrapper=" + this.backEndAddressServiceWrapper
|
||||
url = "taskInfo.html?id="+getUrlParam("id")+"&lang=en&type="+getUrlParam("type")+"&wsport="+getUrlParam("wsport")+"&backEndAddressServiceWrapper=" + this.backEndAddressServiceWrapper
|
||||
}
|
||||
window.location.href = url;
|
||||
},
|
||||
|
@ -296,17 +296,17 @@
|
||||
gotoHome: function () {
|
||||
let url = "";
|
||||
if (getUrlParam("lang") == "zh") {
|
||||
url = "taskList.html?lang=zh&type="+getUrlParam("type")+"&backEndAddressServiceWrapper=" + this.backEndAddressServiceWrapper
|
||||
url = "taskList.html?lang=zh&type="+getUrlParam("type")+"&wsport="+getUrlParam("wsport")+"&backEndAddressServiceWrapper=" + this.backEndAddressServiceWrapper
|
||||
} else {
|
||||
url = "taskList.html?lang=en&type="+getUrlParam("type")+"&backEndAddressServiceWrapper=" + this.backEndAddressServiceWrapper
|
||||
url = "taskList.html?lang=en&type="+getUrlParam("type")+"&wsport="+getUrlParam("wsport")+"&backEndAddressServiceWrapper=" + this.backEndAddressServiceWrapper
|
||||
}
|
||||
window.location.href = url;
|
||||
}, gotoInfo: function () {
|
||||
let url = "";
|
||||
if (getUrlParam("lang") == "zh") {
|
||||
url = "taskInfo.html?id="+getUrlParam("id")+"&lang=zh&type="+getUrlParam("type")+"&backEndAddressServiceWrapper=" + this.backEndAddressServiceWrapper
|
||||
url = "taskInfo.html?id="+getUrlParam("id")+"&lang=zh&type="+getUrlParam("type")+"&wsport="+getUrlParam("wsport")+"&backEndAddressServiceWrapper=" + this.backEndAddressServiceWrapper
|
||||
} else {
|
||||
url = "taskInfo.html?id="+getUrlParam("id")+"&lang=en&type="+getUrlParam("type")+"&backEndAddressServiceWrapper=" + this.backEndAddressServiceWrapper
|
||||
url = "taskInfo.html?id="+getUrlParam("id")+"&lang=en&type="+getUrlParam("type")+"&wsport="+getUrlParam("wsport")+"&backEndAddressServiceWrapper=" + this.backEndAddressServiceWrapper
|
||||
}
|
||||
window.location.href = url;
|
||||
},
|
||||
|
@ -27,7 +27,7 @@
|
||||
|
||||
</body>
|
||||
<script>
|
||||
document.write("<script src='http://127.0.0.1/baozhuangscript.js'><\/script>");
|
||||
document.write("<script src='http://127.0.0.1/baozhuangscript.ts'><\/script>");
|
||||
</script>
|
||||
<!-- <script>
|
||||
//获取xpath
|
||||
|
@ -73,9 +73,16 @@
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="form-group" style="margin-top: 10px">
|
||||
<label>{{"User Data Folder (If you want to load the cookie data from your local browser, please set this folder path, and then cilck the 'Run with (Data Mode)' button to run the task):~用户本地浏览器数据目录(如果需要使用本地的登录信息和cookie,请设置此目录,并点击下方“执行(带用户信息模式)”按钮开始执行任务):" | lang}}</label>
|
||||
<input type="text" class="form-control" v-model="user_data_folder"></input>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<button class="btn btn-primary" v-on:click="localExecuteInstant">{{"Directly Run Locally~本地直接执行" |
|
||||
<button class="btn btn-primary" v-on:click="localExecuteInstant(false)">{{"Directly Run Locally (Clean Mode)~本地直接执行(纯净模式)" |
|
||||
lang}}
|
||||
</button>
|
||||
<button class="btn btn-primary" v-on:click="localExecuteInstant(true)">{{"Directly Run Locally (Data Mode)~本地直接执行(带用户信息模式)" |
|
||||
lang}}
|
||||
</button>
|
||||
<!-- <button style="margin-left: 5px;" v-on:click="remoteExcuteInstant" class="btn btn-primary">Directly Run Remotely</button> -->
|
||||
@ -85,9 +92,12 @@
|
||||
<p></p>
|
||||
<!-- <p>提示:点击下方按钮获得任务ID,然后根据此ID进行服务执行;也可自己POST调用接口得到ID,具体参照POST调用文档。</p> -->
|
||||
<p>{{"Hint: Click the following button to get the Execution ID (EID) of current running task.~提示:点击下方按钮获得任务执行ID,然后根据此执行ID运行任务。" | lang}}</p>
|
||||
<a class="btn btn-primary" href="javascript:void(0)" v-on:click="invokeTask">{{"Get Execution ID~获得任务执行ID" |
|
||||
lang}}</a>
|
||||
<button class="btn btn-primary" style="margin-left: 8px;" v-on:click="localExecute">{{"Run Locally~本地执行"
|
||||
<button class="btn btn-primary" href="javascript:void(0)" v-on:click="invokeTask">{{"Get Execution ID~获得任务执行ID" |
|
||||
lang}}</button>
|
||||
<button class="btn btn-primary" style="margin-left: 8px;" v-on:click="localExecute(false)">{{"Run Locally (Clean Mode)~本地执行(纯净模式)"
|
||||
| lang}}
|
||||
</button>
|
||||
<button class="btn btn-primary" style="margin-left: 8px;" v-on:click="localExecute(true)">{{"Run Locally (Data Mode)~本地执行(带用户信息模式)"
|
||||
| lang}}
|
||||
</button>
|
||||
<!-- <button v-on:click="remoteExcute" style="margin-left: 8px;" class="btn btn-primary">Run remotely</button></div> -->
|
||||
@ -99,6 +109,12 @@
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
<style>
|
||||
button{
|
||||
margin-top: 5px;
|
||||
}
|
||||
</style>
|
||||
<script src="global.js"></script>
|
||||
<script>
|
||||
var sId = getUrlParam('id');
|
||||
@ -108,23 +124,29 @@
|
||||
task: {},
|
||||
show: false, //是否渲染
|
||||
ID: "",
|
||||
user_data_folder:"",
|
||||
with_user_data: true,
|
||||
backEndAddressServiceWrapper: getUrlParam("backEndAddressServiceWrapper"),
|
||||
},
|
||||
}, mounted() {
|
||||
$.get(this.backEndAddressServiceWrapper + "/getConfig", function (result) {
|
||||
app.$data.user_data_folder = result.user_data_folder;
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
gotoHome: function () {
|
||||
let url = "";
|
||||
if (getUrlParam("lang") == "zh") {
|
||||
url = "taskList.html?lang=zh&type="+getUrlParam("type")+"&backEndAddressServiceWrapper=" + app.$data.backEndAddressServiceWrapper
|
||||
url = "taskList.html?lang=zh&type="+getUrlParam("type")+"&wsport="+getUrlParam("wsport")+"&backEndAddressServiceWrapper=" + app.$data.backEndAddressServiceWrapper
|
||||
} else {
|
||||
url = "taskList.html?lang=en&type="+getUrlParam("type")+"&backEndAddressServiceWrapper=" + app.$data.backEndAddressServiceWrapper
|
||||
url = "taskList.html?lang=en&type="+getUrlParam("type")+"&wsport="+getUrlParam("wsport")+"&backEndAddressServiceWrapper=" + app.$data.backEndAddressServiceWrapper
|
||||
}
|
||||
window.location.href = url;
|
||||
}, gotoInfo: function () {
|
||||
let url = "";
|
||||
if (getUrlParam("lang") == "zh") {
|
||||
url = "taskInfo.html?id="+getUrlParam("id")+"&lang=zh&type="+getUrlParam("type")+"&backEndAddressServiceWrapper=" + app.$data.backEndAddressServiceWrapper
|
||||
url = "taskInfo.html?id="+getUrlParam("id")+"&lang=zh&type="+getUrlParam("type")+"&wsport="+getUrlParam("wsport")+"&backEndAddressServiceWrapper=" + app.$data.backEndAddressServiceWrapper
|
||||
} else {
|
||||
url = "taskInfo.html?id="+getUrlParam("id")+"&lang=en&type="+getUrlParam("type")+"&backEndAddressServiceWrapper=" + app.$data.backEndAddressServiceWrapper
|
||||
url = "taskInfo.html?id="+getUrlParam("id")+"&lang=en&type="+getUrlParam("type")+"&wsport="+getUrlParam("wsport")+"&backEndAddressServiceWrapper=" + app.$data.backEndAddressServiceWrapper
|
||||
}
|
||||
window.location.href = url;
|
||||
}, invokeTask: function () {
|
||||
@ -148,7 +170,7 @@
|
||||
});
|
||||
}
|
||||
},
|
||||
localExecute: function () {
|
||||
localExecute: function (with_user_data=false) {
|
||||
if (this.ID == "") {
|
||||
if (getUrlParam("lang") == "en" || getUrlParam("lang") == "") {
|
||||
alert("Please get EID first!");
|
||||
@ -157,6 +179,7 @@
|
||||
}
|
||||
return;
|
||||
}
|
||||
this.with_user_data = with_user_data;
|
||||
let text = "";
|
||||
if (getUrlParam("lang") == "en" || getUrlParam("lang") == "") {
|
||||
text = "Are you sure to run this task locally?";
|
||||
@ -168,6 +191,7 @@
|
||||
type: 5, //消息类型,调用执行程序
|
||||
message: {
|
||||
"id": app.$data.ID,
|
||||
"user_data_folder": app.$data.with_user_data ? app.$data.user_data_folder : "",
|
||||
}
|
||||
};
|
||||
ws.send(JSON.stringify(message));
|
||||
@ -176,13 +200,14 @@
|
||||
remoteExecute: function () {
|
||||
|
||||
},
|
||||
localExecuteInstant: function () {
|
||||
localExecuteInstant: function (with_user_data=false) {
|
||||
let text = "";
|
||||
if (getUrlParam("lang") == "en" || getUrlParam("lang") == "") {
|
||||
text = "Are you sure to run this task locally now?";
|
||||
} else {
|
||||
text = "确定要立即在本地运行此任务吗?";
|
||||
}
|
||||
this.with_user_data = with_user_data;
|
||||
if (confirm(text)) {
|
||||
var para = {};
|
||||
var t = $('#form').serializeArray();
|
||||
@ -197,6 +222,7 @@
|
||||
type: 5, //消息类型,调用执行程序
|
||||
message: {
|
||||
"id": result,
|
||||
"user_data_folder": app.$data.with_user_data ? app.$data.user_data_folder : "",
|
||||
}
|
||||
};
|
||||
ws.send(JSON.stringify(message));
|
||||
@ -211,7 +237,7 @@
|
||||
app.$data.task = result;
|
||||
app.$data.show = true;
|
||||
});
|
||||
ws = new WebSocket("ws://localhost:8084");
|
||||
ws = new WebSocket("ws://localhost:"+getUrlParam("wsport"));
|
||||
ws.onopen = function () {
|
||||
// Web Socket 已连接上,使用 send() 方法发送数据
|
||||
console.log("Connected");
|
||||
|
@ -8,7 +8,7 @@ exampleMsg = { //示例消息
|
||||
}
|
||||
}
|
||||
console.log(JSON.stringify(exampleMsg));
|
||||
ws = new WebSocket("ws://localhost:8084");
|
||||
ws = new WebSocket("ws://localhost:"+getUrlParam("wsport"));
|
||||
ws.onopen = function() {
|
||||
// Web Socket 已连接上,使用 send() 方法发送数据
|
||||
console.log("已连接");
|
||||
@ -206,7 +206,7 @@ var backEndAddressServiceWrapper = getUrlParam("backEndAddressServiceWrapper");
|
||||
function saveService(type) {
|
||||
var serviceId = $("#serviceId").val();
|
||||
var text = "Confirm to save this task?";
|
||||
if (type == 1) { //服务另存为
|
||||
if (type == 1) { //任务另存为
|
||||
serviceId = -1;
|
||||
text = "Confirm to save as another task in the system?";
|
||||
}
|
||||
@ -315,7 +315,7 @@ function saveService(type) {
|
||||
"outputParameters": outputParameters,
|
||||
"graph": nodeList, //图结构要存储下来
|
||||
};
|
||||
$.post(backEndAddressServiceWrapper + "/backEnd/manageService", { paras: JSON.stringify(serviceInfo) }, function(result) { $("#serviceId").val(parseInt(result)) });
|
||||
$.post(backEndAddressServiceWrapper + "/manageTask", { paras: JSON.stringify(serviceInfo) }, function(result) { $("#serviceId").val(parseInt(result)) });
|
||||
// alert("保存成功!");
|
||||
$('#myModal').modal('hide');
|
||||
$("#tip").slideDown(); //提示框
|
||||
@ -326,19 +326,19 @@ function saveService(type) {
|
||||
}
|
||||
}
|
||||
|
||||
//点击保存服务按钮时的处理
|
||||
//点击保存任务按钮时的处理
|
||||
$("#saveButton").mousedown(function() {
|
||||
saveService(0);
|
||||
});
|
||||
//点击另存为服务按钮时的处理
|
||||
//点击另存为任务按钮时的处理
|
||||
$("#saveAsButton").mousedown(function() {
|
||||
saveService(1);
|
||||
});
|
||||
|
||||
|
||||
if (sId != null && sId != -1) //加载服务
|
||||
if (sId != null && sId != -1) //加载任务
|
||||
{
|
||||
$.get(backEndAddressServiceWrapper + "/backEnd/queryService?id=" + sId, function(result) {
|
||||
$.get(backEndAddressServiceWrapper + "/queryTask?id=" + sId, function(result) {
|
||||
nodeList = result["graph"];
|
||||
app.$data.list.nl = nodeList;
|
||||
$("#serviceName").val(result["name"]);
|
||||
@ -348,5 +348,5 @@ if (sId != null && sId != -1) //加载服务
|
||||
refresh();
|
||||
});
|
||||
} else {
|
||||
refresh(); //新增服务
|
||||
refresh(); //新增任务
|
||||
}
|
@ -8,7 +8,7 @@ exampleMsg = { //示例消息
|
||||
}
|
||||
}
|
||||
console.log(JSON.stringify(exampleMsg));
|
||||
ws = new WebSocket("ws://localhost:8084");
|
||||
ws = new WebSocket("ws://localhost:"+getUrlParam("wsport"));
|
||||
ws.onopen = function() {
|
||||
// Web Socket 已连接上,使用 send() 方法发送数据
|
||||
console.log("已连接");
|
||||
@ -235,7 +235,7 @@ function saveService(type) {
|
||||
value: nodeList[i]["parameters"]["links"],
|
||||
desc: "要采集的网址列表,多行以\\n分开",
|
||||
type: "string",
|
||||
exampleValue: "https://www.jd.com"
|
||||
exampleValue: nodeList[i]["parameters"]["links"]
|
||||
});
|
||||
links = nodeList[i]["parameters"]["links"];
|
||||
}
|
||||
@ -256,17 +256,29 @@ function saveService(type) {
|
||||
}
|
||||
} else if (nodeList[i]["option"] == 8) //循环操作
|
||||
{
|
||||
if (parseInt(nodeList[i]["parameters"]["loopType"]) > 2) //循环中的循环输入文本或循环输入网址
|
||||
if (parseInt(nodeList[i]["parameters"]["loopType"]) > 2) { //循环中的循环输入文本或循环输入网址
|
||||
inputParameters.push({
|
||||
id: inputIndex,
|
||||
name: "loopText_" + inputIndex++,
|
||||
nodeId: i,
|
||||
nodeName: nodeList[i]["title"],
|
||||
desc: "要输入的文本/网址,多行以\\n分开",
|
||||
type: "string",
|
||||
exampleValue: nodeList[i]["parameters"]["textList"],
|
||||
value: nodeList[i]["parameters"]["textList"],
|
||||
});
|
||||
id: inputIndex,
|
||||
name: "loopText_" + inputIndex++,
|
||||
nodeId: i,
|
||||
nodeName: nodeList[i]["title"],
|
||||
desc: "要输入的文本/网址,多行以\\n分开",
|
||||
type: "string",
|
||||
exampleValue: nodeList[i]["parameters"]["textList"],
|
||||
value: nodeList[i]["parameters"]["textList"],
|
||||
});
|
||||
} else if (parseInt(nodeList[i]["parameters"]["loopType"]) == 0) {
|
||||
inputParameters.push({
|
||||
id: inputIndex,
|
||||
name: "loopTimes_" + nodeList[i]["title"] + "_" + inputIndex++,
|
||||
nodeId: i,
|
||||
nodeName: nodeList[i]["title"],
|
||||
desc: "循环" + nodeList[i]["title"] + "执行的次数(0代表无限循环)",
|
||||
type: "int",
|
||||
exampleValue: nodeList[i]["parameters"]["exitCount"],
|
||||
value: nodeList[i]["parameters"]["exitCount"],
|
||||
});
|
||||
}
|
||||
} else if (nodeList[i]["option"] == 3) //提取数据操作
|
||||
{
|
||||
for (let j = 0; j < nodeList[i]["parameters"]["paras"].length; j++) {
|
||||
|
@ -25,10 +25,14 @@
|
||||
<h4 style="text-align: center;">{{"New Task~新任务" | lang}}</h4>
|
||||
<div class="form-group">
|
||||
<label>{{"Please Input URL (http or https):~请输入网页URL(以http或https开头):" | lang}} </label>
|
||||
<textarea class="form-control" id="links" placeholder="links" style="min-height: 200px;">{{"https://www.ebay.com~https://www.jd.com" | lang}}</textarea>
|
||||
<textarea class="form-control" id="links" placeholder="links" style="min-height: 100px;">{{"https://www.ebay.com~https://www.jd.com" | lang}}</textarea>
|
||||
</div>
|
||||
|
||||
<button type="submit" id="send" class="btn btn-primary">{{"Start Design~开始设计" | lang}}</button>
|
||||
<!-- <div class="form-group" style="margin-top: 10px">-->
|
||||
<!-- <label>{{"User Data Folder (If you want to load the cookie data from your local browser, please set this folder path, and then cilck the 'Start Design with cookie data from local browser' button to start design the task):~用户本地浏览器数据目录(如果需要使用本地的登录信息和cookie,请设置此目录,并点击下方“带本地数据开始设计”按钮开始设计任务):" | lang}}</label>-->
|
||||
<!-- <textarea class="form-control" id="user-data-folder" style="min-height: 50px;">{{user_data_folder}}</textarea>-->
|
||||
<!-- <button type="submit" id="sendWithCookie" style="margin-top: 10px" class="btn btn-primary">{{"Start Design with cookie data from local browser~带本地数据开始设计" | lang}}</button>-->
|
||||
<!-- </div>-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -41,6 +45,7 @@
|
||||
el: '#newTask',
|
||||
data: {
|
||||
backEndAddressServiceWrapper: getUrlParam("backEndAddressServiceWrapper"),
|
||||
user_data_folder: "",
|
||||
},
|
||||
methods: {
|
||||
gotoHome: function () {
|
||||
@ -55,7 +60,7 @@
|
||||
}
|
||||
});
|
||||
|
||||
ws = new WebSocket("ws://localhost:8084");
|
||||
ws = new WebSocket("ws://localhost:"+getUrlParam("wsport"));
|
||||
ws.onopen = function() {
|
||||
// Web Socket 已连接上,使用 send() 方法发送数据
|
||||
console.log("已连接");
|
||||
@ -102,4 +107,5 @@
|
||||
window.location.href = $("#links").val().split("\n")[0]; //跳转链接
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user