diff --git a/Hawk.ETL.Controls/DataViewers/AboutAuthor.xaml b/Hawk.ETL.Controls/DataViewers/AboutAuthor.xaml
index b3432ec..084941c 100644
--- a/Hawk.ETL.Controls/DataViewers/AboutAuthor.xaml
+++ b/Hawk.ETL.Controls/DataViewers/AboutAuthor.xaml
@@ -13,7 +13,7 @@
-
+
diff --git a/Hawk.ETL/Crawlers/JavaScriptAnalyzer.cs b/Hawk.ETL/Crawlers/JavaScriptAnalyzer.cs
index 4be1065..217f0b2 100644
--- a/Hawk.ETL/Crawlers/JavaScriptAnalyzer.cs
+++ b/Hawk.ETL/Crawlers/JavaScriptAnalyzer.cs
@@ -248,7 +248,7 @@ public static object Parse(string code)
private static object JsonSeriaize(string code)
{
dynamic js= JsonConvert.Import(code);
- if (js == "")
+ if (js.ToString() == "")
return code;
return _JsonSeriaize(js);
}
diff --git a/Hawk.ETL/Managements/DataProcessManager.cs b/Hawk.ETL/Managements/DataProcessManager.cs
index 2dbcdb6..26af141 100644
--- a/Hawk.ETL/Managements/DataProcessManager.cs
+++ b/Hawk.ETL/Managements/DataProcessManager.cs
@@ -139,6 +139,11 @@ public override bool Init()
window.Content = view;
window.ShowDialog();
});
+ var mainlink = new BindingAction("项目主页", d =>
+ {
+ var url = "https://github.com/ferventdesert/Hawk/wik";
+ System.Diagnostics.Process.Start(url);
+ });
var helplink = new BindingAction("使用文档", d =>
{
var url = "https://github.com/ferventdesert/Hawk/wiki";
@@ -167,6 +172,7 @@ public override bool Init()
MessageBox.Show("欢迎关注微信公众号“沙漠之鹰”,实在没时间给软件做UI了。。。","沙漠君欢迎你");
});
var pluginCommands = new BindingAction("帮助");
+ pluginCommands.ChildActions.Add(mainlink);
pluginCommands.ChildActions.Add(helplink);
pluginCommands.ChildActions.Add(aboutAuthor);
pluginCommands.ChildActions.Add(feedback);
diff --git a/Hawk.ETL/Plugins/Transformers/ResponseTF.cs b/Hawk.ETL/Plugins/Transformers/ResponseTF.cs
index 256a81a..8c8e78b 100644
--- a/Hawk.ETL/Plugins/Transformers/ResponseTF.cs
+++ b/Hawk.ETL/Plugins/Transformers/ResponseTF.cs
@@ -21,7 +21,7 @@ public class ResponseTF : TransformerBase
public ResponseTF()
{
- CrawlerSelector = "网页采集器";
+ // CrawlerSelector = "网页采集器";
}
[LocalizedDisplayName("爬虫选择")]
diff --git a/Hawk.ETL/Plugins/Transformers/TransformerBase.cs b/Hawk.ETL/Plugins/Transformers/TransformerBase.cs
index ad92063..dcf7d6d 100644
--- a/Hawk.ETL/Plugins/Transformers/TransformerBase.cs
+++ b/Hawk.ETL/Plugins/Transformers/TransformerBase.cs
@@ -13,16 +13,26 @@
namespace Hawk.ETL.Plugins.Transformers
{
-
public abstract class TransformerBase : PropertyChangeNotifier, IColumnDataTransformer
{
+ [Browsable(false)]
+ public int ETLIndex { get; set; }
+
+ #region Public Methods
+
+ public override string ToString()
+ {
+ return TypeName + " " + Column;
+ }
+
+ #endregion
+
#region Constants and Fields
#endregion
- [Browsable(false)]
- public int ETLIndex { get; set; }
#region Constructors and Destructors
+
protected bool IsExecute;
public void SetExecute(bool value)
@@ -31,22 +41,30 @@ public void SetExecute(bool value)
}
protected readonly IProcessManager processManager;
+
protected TransformerBase()
{
- this.OneOutput = true;
- this.Column = "";
- this.NewColumn = "";
- this.Enabled = true;
+ OneOutput = true;
+ Column = "";
+ NewColumn = "";
+ Enabled = true;
IsMultiYield = false;
processManager = MainDescription.MainFrm.PluginDictionary["模块管理"] as IProcessManager;
-
}
protected SmartCrawler GetCrawler(string name)
{
- var crawler =
- processManager.CurrentProcessCollections.FirstOrDefault(d => d.Name == name) as SmartCrawler;
+ var crawlers = processManager.CurrentProcessCollections.OfType().ToList();
+ if (string.IsNullOrEmpty(name))
+ {
+ if (crawlers.Count() == 1)
+ {
+ name = crawlers[0].Name;
+ }
+ }
+ var crawler =
+ crawlers.FirstOrDefault(d => d.Name == name);
if (crawler != null)
{
IsMultiYield = crawler?.IsMultiData == ListType.List;
@@ -56,7 +74,6 @@ protected SmartCrawler GetCrawler(string name)
var task = processManager.CurrentProject.Tasks.FirstOrDefault(d => d.Name == name);
if (task != null)
{
-
ControlExtended.UIInvoke(() => { task.Load(false); });
crawler =
processManager.CurrentProcessCollections.FirstOrDefault(d => d.Name == name) as
@@ -66,25 +83,21 @@ protected SmartCrawler GetCrawler(string name)
{
if (string.IsNullOrEmpty(name))
{
-
- XLogSys.Print.Error($"您没有填写“从爬虫转换”的“爬虫选择”。需要填写要调用的网页采集器的名称");
+ XLogSys.Print.Error($"您没有填写“从爬虫转换”的“爬虫选择”。需要填写要调用的网页采集器的名称");
}
else
{
-
- XLogSys.Print.Error($"没有找到名称为'{name}'的网页采集器,请检查“从爬虫转换”的“爬虫选择”是否填写错误");
+ XLogSys.Print.Error($"没有找到名称为'{name}'的网页采集器,请检查“从爬虫转换”的“爬虫选择”是否填写错误");
}
}
-
}
return crawler;
}
+
#endregion
#region Properties
-
-
[LocalizedCategory("1.基本选项"), PropertyOrder(1), DisplayName("输入列")]
[LocalizedDescription("本模块要处理的列的名称")]
public string Column { get; set; }
@@ -104,14 +117,13 @@ public string Description
}
-
[LocalizedCategory("1.基本选项")]
[PropertyOrder(2)]
[LocalizedDisplayName("输出列")]
[LocalizedDescription("结果要输出到的列的名称")]
public virtual string NewColumn { get; set; }
-
+
private bool _enabled;
[LocalizedCategory("1.基本选项")]
@@ -133,9 +145,7 @@ public bool Enabled
/// 是否在数据中必须包含列名
///
[Browsable(false)]
- public virtual bool OneOutput { get; set; }
-
-
+ public virtual bool OneOutput { get; set; }
[LocalizedCategory("1.基本选项")]
@@ -145,22 +155,13 @@ public string TypeName
{
get
{
- XFrmWorkAttribute item = AttributeHelper.GetCustomAttribute(this.GetType());
- return item == null ? this.GetType().ToString() : item.Name;
+ var item = AttributeHelper.GetCustomAttribute(GetType());
+ return item == null ? GetType().ToString() : item.Name;
}
}
#endregion
- #region Public Methods
-
- public override string ToString()
- {
- return this.TypeName + " " + this.Column;
- }
-
- #endregion
-
#region Implemented Interfaces
#region IColumnDataTransformer
@@ -174,28 +175,26 @@ public virtual object TransformData(IFreeDocument datas)
public virtual bool IsMultiYield { get; set; }
- protected void SetValue(IFreeDocument doc,object item)
+ protected void SetValue(IFreeDocument doc, object item)
{
- if(string.IsNullOrEmpty(NewColumn))
- doc.SetValue(Column,item);
+ if (string.IsNullOrEmpty(NewColumn))
+ doc.SetValue(Column, item);
else
- doc.SetValue(NewColumn,item);
+ doc.SetValue(NewColumn, item);
}
-
+
public virtual IEnumerable TransformManyData(IEnumerable datas)
{
yield break;
}
-
#endregion
#region IColumnProcess
public virtual void Finish()
{
-
}
public virtual bool Init(IEnumerable docus)
@@ -210,14 +209,13 @@ public virtual bool Init(IEnumerable docus)
public virtual void DictDeserialize(IDictionary docu, Scenario scenario = Scenario.Database)
{
this.UnsafeDictDeserialize(docu);
-
}
public virtual FreeDocument DictSerialize(Scenario scenario = Scenario.Database)
{
var dict = this.UnsafeDictSerialize();
- dict.Add("Type", this.GetType().Name);
- dict.Add("Group","Transformer");
+ dict.Add("Type", GetType().Name);
+ dict.Add("Group", "Transformer");
dict.Remove("ETLIndex");
return dict;
}