mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 11:14:23 +00:00
Move SabreTools.Filter to SabreTools.Core.Filter
This commit is contained in:
@@ -3,7 +3,7 @@ using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using SabreTools.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Filter
|
||||
namespace SabreTools.Core.Filter
|
||||
{
|
||||
public static class FieldManipulator
|
||||
{
|
||||
@@ -3,7 +3,7 @@ using System.Text.RegularExpressions;
|
||||
using SabreTools.Core.Tools;
|
||||
using SabreTools.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Filter
|
||||
namespace SabreTools.Core.Filter
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a single filtering object
|
||||
@@ -2,7 +2,7 @@
|
||||
using System.Linq;
|
||||
using SabreTools.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Filter
|
||||
namespace SabreTools.Core.Filter
|
||||
{
|
||||
public static class FilterParser
|
||||
{
|
||||
@@ -3,7 +3,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using SabreTools.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Filter
|
||||
namespace SabreTools.Core.Filter
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a set of filters that can be run against an object
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace SabreTools.Filter
|
||||
namespace SabreTools.Core.Filter
|
||||
{
|
||||
/// <summary>
|
||||
/// Determines what operation is being done
|
||||
@@ -5,7 +5,7 @@ using System.Xml.Serialization;
|
||||
using SabreTools.Models;
|
||||
using SabreTools.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Filter
|
||||
namespace SabreTools.Core.Filter
|
||||
{
|
||||
public static class TypeHelper
|
||||
{
|
||||
@@ -8,11 +8,11 @@ using System.Threading.Tasks;
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Core;
|
||||
using SabreTools.Core.Filter;
|
||||
using SabreTools.Core.Tools;
|
||||
using SabreTools.DatFiles.Formats;
|
||||
using SabreTools.DatItems;
|
||||
using SabreTools.DatItems.Formats;
|
||||
using SabreTools.Filter;
|
||||
using SabreTools.Hashing;
|
||||
using SabreTools.Logging;
|
||||
using SabreTools.Serialization.Interfaces;
|
||||
|
||||
@@ -4,9 +4,9 @@ using System.IO;
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Core;
|
||||
using SabreTools.Core.Filter;
|
||||
using SabreTools.Core.Tools;
|
||||
using SabreTools.DatFiles.Formats;
|
||||
using SabreTools.Filter;
|
||||
|
||||
namespace SabreTools.DatFiles
|
||||
{
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using SabreTools.Core;
|
||||
using SabreTools.Core.Filter;
|
||||
using SabreTools.Core.Tools;
|
||||
using SabreTools.DatItems;
|
||||
using SabreTools.DatItems.Formats;
|
||||
using SabreTools.Filter;
|
||||
using SabreTools.Logging;
|
||||
|
||||
namespace SabreTools.DatFiles
|
||||
|
||||
@@ -5,10 +5,10 @@ using System.Reflection;
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Core;
|
||||
using SabreTools.Core.Filter;
|
||||
using SabreTools.Core.Tools;
|
||||
using SabreTools.DatItems.Formats;
|
||||
using SabreTools.FileTypes;
|
||||
using SabreTools.Filter;
|
||||
using SabreTools.Hashing;
|
||||
using SabreTools.Logging;
|
||||
using SabreTools.Matching;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Core;
|
||||
using SabreTools.Filter;
|
||||
using SabreTools.Core.Filter;
|
||||
|
||||
namespace SabreTools.DatItems
|
||||
{
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\SabreTools.Core\SabreTools.Core.csproj" />
|
||||
<ProjectReference Include="..\SabreTools.FileTypes\SabreTools.FileTypes.csproj" />
|
||||
<ProjectReference Include="..\SabreTools.Filter\SabreTools.Filter.csproj" />
|
||||
<ProjectReference Include="..\SabreTools.Logging\SabreTools.Logging.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
# SabreTools.Filter
|
||||
|
||||
This library contains classes and helpers revolving around filtering and field manipulation. These methods are centered around the internal models that are defined in `SabreTools.Models`. Most of these methods also involve reflection, so it is unlikely that this will be a candidate for NativeAOT.
|
||||
@@ -1,31 +0,0 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- Assembly Properties -->
|
||||
<TargetFrameworks>net20;net35;net40;net452;net462;net472;net48;netcoreapp3.1;net5.0;net6.0;net7.0;net8.0</TargetFrameworks>
|
||||
<RuntimeIdentifiers>win-x86;win-x64;win-arm64;linux-x64;linux-arm64;osx-x64</RuntimeIdentifiers>
|
||||
<CheckEolTargetFramework>false</CheckEolTargetFramework>
|
||||
<IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
|
||||
<LangVersion>latest</LangVersion>
|
||||
<Nullable>enable</Nullable>
|
||||
<SuppressTfmSupportBuildWarnings>true</SuppressTfmSupportBuildWarnings>
|
||||
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
||||
<Version>1.1.2</Version>
|
||||
|
||||
<!-- Package Properties -->
|
||||
<Authors>Matt Nadareski</Authors>
|
||||
<Copyright>Copyright (c)2016-2024 Matt Nadareski</Copyright>
|
||||
<PackageProjectUrl>https://github.com/SabreTools/</PackageProjectUrl>
|
||||
<RepositoryUrl>https://github.com/SabreTools/SabreTools</RepositoryUrl>
|
||||
<RepositoryType>git</RepositoryType>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\SabreTools.Core\SabreTools.Core.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="SabreTools.Models" Version="1.4.0" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using SabreTools.Core.Filter;
|
||||
using SabreTools.DatFiles;
|
||||
using SabreTools.DatItems;
|
||||
using SabreTools.Logging;
|
||||
@@ -68,7 +69,7 @@ namespace SabreTools.Filtering
|
||||
string fieldString = inputTrimmed.Split(':')[0].ToLowerInvariant().Trim('"', ' ', '\t');
|
||||
string fileString = inputTrimmed.Substring(fieldString.Length + 1).Trim('"', ' ', '\t');
|
||||
|
||||
item.FieldName = SabreTools.Filter.FilterParser.ParseFilterId(fieldString);
|
||||
item.FieldName = FilterParser.ParseFilterId(fieldString);
|
||||
if (item.PopulateFromFile(fileString))
|
||||
Items.Add(item);
|
||||
}
|
||||
|
||||
@@ -4,11 +4,11 @@ using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
#endif
|
||||
using SabreTools.Core;
|
||||
using SabreTools.Core.Filter;
|
||||
using SabreTools.Core.Tools;
|
||||
using SabreTools.DatFiles;
|
||||
using SabreTools.DatItems;
|
||||
using SabreTools.DatItems.Formats;
|
||||
using SabreTools.Filter;
|
||||
using SabreTools.Logging;
|
||||
|
||||
namespace SabreTools.Filtering
|
||||
|
||||
@@ -24,7 +24,6 @@
|
||||
<ProjectReference Include="..\SabreTools.Core\SabreTools.Core.csproj" />
|
||||
<ProjectReference Include="..\SabreTools.DatFiles\SabreTools.DatFiles.csproj" />
|
||||
<ProjectReference Include="..\SabreTools.DatItems\SabreTools.DatItems.csproj" />
|
||||
<ProjectReference Include="..\SabreTools.Filter\SabreTools.Filter.csproj" />
|
||||
<ProjectReference Include="..\SabreTools.Logging\SabreTools.Logging.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using SabreTools.Core.Filter;
|
||||
using SabreTools.DatItems;
|
||||
using SabreTools.DatItems.Formats;
|
||||
using SabreTools.Filter;
|
||||
using Xunit;
|
||||
|
||||
namespace SabreTools.Test.Filter
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using System;
|
||||
using SabreTools.Filter;
|
||||
using SabreTools.Core.Filter;
|
||||
using Xunit;
|
||||
|
||||
namespace SabreTools.Test.Filter
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 16
|
||||
VisualStudioVersion = 16.0.30128.74
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.9.34607.119
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SabreTools.DatFiles", "SabreTools.DatFiles\SabreTools.DatFiles.csproj", "{CA54EDF8-100F-46E7-933C-0E081C7FCBD3}"
|
||||
EndProject
|
||||
@@ -18,23 +18,21 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SabreTools.Core", "SabreTools.Core\SabreTools.Core.csproj", "{66E2FB10-77C0-4589-9DCD-3CA48702C18A}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.Help", "SabreTools.Help\SabreTools.Help.csproj", "{55364167-844F-4B58-8280-F5327FA3D8E7}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SabreTools.Help", "SabreTools.Help\SabreTools.Help.csproj", "{55364167-844F-4B58-8280-F5327FA3D8E7}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.Logging", "SabreTools.Logging\SabreTools.Logging.csproj", "{3D54D896-19F0-4723-B1E3-E40FAFE5A078}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SabreTools.Logging", "SabreTools.Logging\SabreTools.Logging.csproj", "{3D54D896-19F0-4723-B1E3-E40FAFE5A078}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.Filtering", "SabreTools.Filtering\SabreTools.Filtering.csproj", "{35129634-0F13-416A-8D4D-35B71DFECFFD}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SabreTools.Filtering", "SabreTools.Filtering\SabreTools.Filtering.csproj", "{35129634-0F13-416A-8D4D-35B71DFECFFD}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.FileTypes", "SabreTools.FileTypes\SabreTools.FileTypes.csproj", "{0B36F39B-69CB-4E8A-B251-D063CB08B247}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SabreTools.FileTypes", "SabreTools.FileTypes\SabreTools.FileTypes.csproj", "{0B36F39B-69CB-4E8A-B251-D063CB08B247}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.DatItems", "SabreTools.DatItems\SabreTools.DatItems.csproj", "{90ADE461-33B1-4E0D-925F-C99913665F0C}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SabreTools.DatItems", "SabreTools.DatItems\SabreTools.DatItems.csproj", "{90ADE461-33B1-4E0D-925F-C99913665F0C}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.DatTools", "SabreTools.DatTools\SabreTools.DatTools.csproj", "{E0D12252-BBF3-4E3C-B2E2-79FA49EE31E5}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SabreTools.DatTools", "SabreTools.DatTools\SabreTools.DatTools.csproj", "{E0D12252-BBF3-4E3C-B2E2-79FA49EE31E5}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.Reports", "SabreTools.Reports\SabreTools.Reports.csproj", "{8B3F0606-0C2F-4004-9CB6-4F1F2497DCE4}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SabreTools.Reports", "SabreTools.Reports\SabreTools.Reports.csproj", "{8B3F0606-0C2F-4004-9CB6-4F1F2497DCE4}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.Test", "SabreTools.Test\SabreTools.Test.csproj", "{5B4E67D5-F4DA-4750-8FE2-04D08E343791}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.Filter", "SabreTools.Filter\SabreTools.Filter.csproj", "{2A7A27A9-5FB9-4F6D-88F3-67120668A029}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SabreTools.Test", "SabreTools.Test\SabreTools.Test.csproj", "{5B4E67D5-F4DA-4750-8FE2-04D08E343791}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
@@ -140,14 +138,6 @@ Global
|
||||
{5B4E67D5-F4DA-4750-8FE2-04D08E343791}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{5B4E67D5-F4DA-4750-8FE2-04D08E343791}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{5B4E67D5-F4DA-4750-8FE2-04D08E343791}.Release|x64.Build.0 = Release|Any CPU
|
||||
{2A7A27A9-5FB9-4F6D-88F3-67120668A029}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{2A7A27A9-5FB9-4F6D-88F3-67120668A029}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{2A7A27A9-5FB9-4F6D-88F3-67120668A029}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{2A7A27A9-5FB9-4F6D-88F3-67120668A029}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{2A7A27A9-5FB9-4F6D-88F3-67120668A029}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{2A7A27A9-5FB9-4F6D-88F3-67120668A029}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{2A7A27A9-5FB9-4F6D-88F3-67120668A029}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{2A7A27A9-5FB9-4F6D-88F3-67120668A029}.Release|x64.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
@@ -3,6 +3,7 @@ using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using Microsoft.Data.Sqlite;
|
||||
using SabreTools.Core;
|
||||
using SabreTools.Core.Filter;
|
||||
using SabreTools.Core.Tools;
|
||||
using SabreTools.DatFiles;
|
||||
using SabreTools.DatTools;
|
||||
@@ -1783,7 +1784,7 @@ Some special strings that can be used:
|
||||
/// <summary>
|
||||
/// Preonfigured FilterRunner
|
||||
/// </summary>
|
||||
protected Filter.FilterRunner? FilterRunner { get; set; }
|
||||
protected FilterRunner? FilterRunner { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Pre-configured DatHeader
|
||||
@@ -2046,7 +2047,7 @@ Some special strings that can be used:
|
||||
List<string> updateFields = [];
|
||||
foreach (string fieldName in GetList(features, UpdateFieldListValue))
|
||||
{
|
||||
(string? itemType, string? key) = SabreTools.Filter.FilterParser.ParseFilterId(fieldName);
|
||||
(string? itemType, string? key) = FilterParser.ParseFilterId(fieldName);
|
||||
if (itemType == Models.Metadata.MetadataFile.MachineKey && key != null)
|
||||
updateFields.Add(key);
|
||||
}
|
||||
@@ -2062,7 +2063,7 @@ Some special strings that can be used:
|
||||
Dictionary<string, List<string>> updateFields = [];
|
||||
foreach (string fieldName in GetList(features, UpdateFieldListValue))
|
||||
{
|
||||
(string? itemType, string? key) = SabreTools.Filter.FilterParser.ParseFilterId(fieldName);
|
||||
(string? itemType, string? key) = FilterParser.ParseFilterId(fieldName);
|
||||
if (itemType != null && itemType != Models.Metadata.MetadataFile.HeaderKey && itemType != Models.Metadata.MetadataFile.MachineKey && key != null)
|
||||
{
|
||||
if (!updateFields.ContainsKey(itemType))
|
||||
@@ -2233,7 +2234,7 @@ Some special strings that can be used:
|
||||
/// <summary>
|
||||
/// Get FilterRunner from feature list
|
||||
/// </summary>
|
||||
private static Filter.FilterRunner GetFilterRunner(Dictionary<string, Feature?> features)
|
||||
private static FilterRunner GetFilterRunner(Dictionary<string, Feature?> features)
|
||||
{
|
||||
// Populate filters
|
||||
List<string> filterPairs = GetList(features, FilterListValue);
|
||||
@@ -2245,7 +2246,7 @@ Some special strings that can be used:
|
||||
// TODO: Support this use case somehow
|
||||
}
|
||||
|
||||
var filterRunner = new Filter.FilterRunner(filterPairs.ToArray());
|
||||
var filterRunner = new FilterRunner(filterPairs.ToArray());
|
||||
|
||||
return filterRunner;
|
||||
}
|
||||
|
||||
@@ -4,10 +4,10 @@ using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using SabreTools.Core;
|
||||
using SabreTools.Core.Filter;
|
||||
using SabreTools.Core.Tools;
|
||||
using SabreTools.DatFiles;
|
||||
using SabreTools.DatTools;
|
||||
using SabreTools.Filter;
|
||||
using SabreTools.Filtering;
|
||||
using SabreTools.Hashing;
|
||||
using SabreTools.Help;
|
||||
@@ -423,7 +423,7 @@ Reset the internal state: reset();";
|
||||
string filterString = $"{filterField}{(filterRemove == true ? "!" : string.Empty)}:{filterValue}";
|
||||
|
||||
// Create filter to run filters from
|
||||
var filter = new Filter.FilterRunner([filterString]);
|
||||
var filter = new FilterRunner([filterString]);
|
||||
|
||||
// Apply the filters blindly
|
||||
batchState.DatFile.ExecuteFilters(filter);
|
||||
|
||||
Reference in New Issue
Block a user