【重构】重构cfg记录tags处理
parent
4876baabf7
commit
dd5bae123f
|
|
@ -36,7 +36,7 @@
|
||||||
|
|
||||||
制作本地化映射表
|
制作本地化映射表
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
映射到英语后的导出数据(只截取了部分数据)为
|
映射到英语后的导出数据(只截取了部分数据)为
|
||||||
```json
|
```json
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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; }
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue