【重构】重构cfg记录tags处理

main
walon 2021-10-11 14:28:05 +08:00
parent 4876baabf7
commit dd5bae123f
9 changed files with 46 additions and 17 deletions

View File

@ -36,7 +36,7 @@
制作本地化映射表 制作本地化映射表
![pipeline](docs/images/examples/c_22.jpg) ![pipeline](images/examples/c_22.jpg)
映射到英语后的导出数据(只截取了部分数据)为 映射到英语后的导出数据(只截取了部分数据)为
```json ```json

View File

@ -690,9 +690,9 @@ namespace Luban.Job.Cfg.DataSources.Excel
{ {
foreach (var recordNamedRow in NamedRow.CreateMultiRowNamedRow(this._rowColumns, this._rootTitle, type)) foreach (var recordNamedRow in NamedRow.CreateMultiRowNamedRow(this._rowColumns, this._rootTitle, type))
{ {
bool isTest = DataUtil.IsTestTag(GetRowTag(recordNamedRow.Rows[0])); var tags = DataUtil.ParseTags(GetRowTag(recordNamedRow.Rows[0]));
var data = (DBean)ExcelNamedRowDataCreator.Ins.ReadExcel(recordNamedRow, type); var data = (DBean)ExcelNamedRowDataCreator.Ins.ReadExcel(recordNamedRow, type);
yield return new Record(data, RawUrl, isTest); yield return new Record(data, RawUrl, tags);
} }
} }
} }

View File

@ -27,7 +27,7 @@ namespace Luban.Job.Cfg.DataSources.Json
public override Record ReadOne(TBean type) public override Record ReadOne(TBean type)
{ {
bool isTest = false; List<string> tags;
if (_data.TryGetProperty(TAG_KEY, out var tagEle)) if (_data.TryGetProperty(TAG_KEY, out var tagEle))
{ {
var tagName = tagEle.GetString(); var tagName = tagEle.GetString();
@ -35,11 +35,15 @@ namespace Luban.Job.Cfg.DataSources.Json
{ {
return null; return null;
} }
isTest = DataUtil.IsTestTag(tagName); tags = DataUtil.ParseTags(tagName);
}
else
{
tags = null;
} }
var data = (DBean)type.Apply(JsonDataCreator.Ins, _data, (DefAssembly)type.Bean.AssemblyBase); var data = (DBean)type.Apply(JsonDataCreator.Ins, _data, (DefAssembly)type.Bean.AssemblyBase);
return new Record(data, RawUrl, isTest); return new Record(data, RawUrl, tags);
} }
} }
} }

View File

@ -53,8 +53,8 @@ namespace Luban.Job.Cfg.DataSources.Lua
return null; return null;
} }
var data = (DBean)type.Apply(LuaDataCreator.Ins, table, (DefAssembly)type.Bean.AssemblyBase); var data = (DBean)type.Apply(LuaDataCreator.Ins, table, (DefAssembly)type.Bean.AssemblyBase);
var isTest = DataUtil.IsTestTag(tagName); var tags = DataUtil.ParseTags(tagName);
return new Record(data, RawUrl, isTest); return new Record(data, RawUrl, tags);
} }
} }
} }

View File

@ -33,8 +33,8 @@ namespace Luban.Job.Cfg.DataSources.Xml
return null; return null;
} }
var data = (DBean)type.Apply(XmlDataCreator.Ins, _doc, (DefAssembly)type.Bean.AssemblyBase); var data = (DBean)type.Apply(XmlDataCreator.Ins, _doc, (DefAssembly)type.Bean.AssemblyBase);
bool isTest = DataUtil.IsTestTag(tagName); var tags = DataUtil.ParseTags(tagName);
return new Record(data, RawUrl, isTest); return new Record(data, RawUrl, tags);
} }
} }
} }

View File

@ -58,8 +58,8 @@ namespace Luban.Job.Cfg.DataSources.Yaml
return null; return null;
} }
var data = (DBean)type.Apply(YamlDataCreator.Ins, _root, (DefAssembly)type.Bean.AssemblyBase); var data = (DBean)type.Apply(YamlDataCreator.Ins, _root, (DefAssembly)type.Bean.AssemblyBase);
bool isTest = DataUtil.IsTestTag(tagName); var tags = DataUtil.ParseTags(tagName);
return new Record(data, RawUrl, isTest); return new Record(data, RawUrl, tags);
} }
} }
} }

View File

@ -1,4 +1,7 @@
namespace Luban.Job.Cfg.Datas using Luban.Job.Cfg.Utils;
using System.Collections.Generic;
namespace Luban.Job.Cfg.Datas
{ {
public class Record public class Record
{ {
@ -6,15 +9,17 @@
public string Source { get; } public string Source { get; }
public List<string> Tags { get; }
public int Index { get; set; } public int Index { get; set; }
public bool IsTest { get; } public bool IsTest => Tags != null && DataUtil.IsTestTag(Tags);
public Record(DBean data, string source, bool isTest) public Record(DBean data, string source, List<string> tags)
{ {
Data = data; Data = data;
Source = source; Source = source;
IsTest = isTest; Tags = tags;
} }
} }
} }

View File

@ -35,6 +35,9 @@ namespace Luban.Job.Cfg
[Option("export_test_data", Required = false, HelpText = "export test data")] [Option("export_test_data", Required = false, HelpText = "export test data")]
public bool ExportTestData { get; set; } = false; public bool ExportTestData { get; set; } = false;
[Option("export_tag_filter", Required = false, HelpText = "export tag filter")]
public string ExportTagFilter { get; set; } = "";
[Option('t', "l10n_timezone", Required = false, HelpText = "timezone")] [Option('t', "l10n_timezone", Required = false, HelpText = "timezone")]
public string TimeZone { get; set; } public string TimeZone { get; set; }

View File

@ -1,7 +1,9 @@
using Luban.Job.Cfg.Datas; using Luban.Job.Cfg.Datas;
using Luban.Job.Common.Types; using Luban.Job.Common.Types;
using System; using System;
using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq;
namespace Luban.Job.Cfg.Utils namespace Luban.Job.Cfg.Utils
{ {
@ -122,7 +124,7 @@ namespace Luban.Job.Cfg.Utils
); );
} }
public static bool IsTestTag(string tagName) private static bool IsTestTag(string tagName)
{ {
return !string.IsNullOrEmpty(tagName) && return !string.IsNullOrEmpty(tagName) &&
(tagName.Equals("test", System.StringComparison.OrdinalIgnoreCase) (tagName.Equals("test", System.StringComparison.OrdinalIgnoreCase)
@ -130,6 +132,21 @@ namespace Luban.Job.Cfg.Utils
); );
} }
public static bool IsTestTag(List<string> tagNames)
{
return tagNames.Any(IsTestTag);
}
public static List<string> ParseTags(string rawTagStr)
{
if (string.IsNullOrWhiteSpace(rawTagStr))
{
return null;
}
var tags = new List<string>(rawTagStr.Split(',').Select(t => t.Trim()).Where(t => !string.IsNullOrEmpty(t)));
return tags.Count > 0 ? tags : null;
}
//public static string Data2String(DType data) //public static string Data2String(DType data)
//{ //{
// var s = new StringBuilder(); // var s = new StringBuilder();