mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Update packages
This commit is contained in:
@@ -24,6 +24,9 @@
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Support for old .NET versions -->
|
||||
<ItemGroup Condition="$(TargetFramework.StartsWith(`net2`))">
|
||||
<PackageReference Include="Net30.LinqBridge" Version="1.3.0" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="$(TargetFramework.StartsWith(`net2`)) OR $(TargetFramework.StartsWith(`net3`))">
|
||||
<PackageReference Include="MinValueTupleBridge" Version="0.2.1" />
|
||||
</ItemGroup>
|
||||
@@ -38,9 +41,9 @@
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
<PackageReference Include="SabreTools.Hashing" Version="1.4.0" />
|
||||
<PackageReference Include="SabreTools.IO" Version="1.5.0" />
|
||||
<PackageReference Include="SabreTools.Matching" Version="1.4.0" />
|
||||
<PackageReference Include="SabreTools.Models" Version="1.5.0" />
|
||||
<PackageReference Include="SabreTools.IO" Version="1.6.1" />
|
||||
<PackageReference Include="SabreTools.Matching" Version="1.5.0" />
|
||||
<PackageReference Include="SabreTools.Models" Version="1.5.5" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -3,7 +3,6 @@ using System.IO;
|
||||
using System.Linq;
|
||||
using SabreTools.Hashing;
|
||||
using SabreTools.IO.Extensions;
|
||||
using SabreTools.Matching;
|
||||
|
||||
namespace SabreTools.Core.Tools
|
||||
{
|
||||
@@ -18,11 +17,7 @@ namespace SabreTools.Core.Tools
|
||||
public static bool ConditionalHashEquals(byte[]? firstHash, byte[]? secondHash)
|
||||
{
|
||||
// If either hash is empty, we say they're equal for merging
|
||||
#if NET20
|
||||
if (Matching.Extensions.IsNullOrEmpty(firstHash) || Matching.Extensions.IsNullOrEmpty(secondHash))
|
||||
#else
|
||||
if (firstHash.IsNullOrEmpty() || secondHash.IsNullOrEmpty())
|
||||
#endif
|
||||
return true;
|
||||
|
||||
// If they're different sizes, they can't match
|
||||
@@ -58,7 +53,7 @@ namespace SabreTools.Core.Tools
|
||||
/// <returns>Subfolder path for the given hash</returns>
|
||||
public static string? GetDepotPath(byte[]? hash, int depth)
|
||||
{
|
||||
string? sha1 = ByteArrayExtensions.ByteArrayToString(hash);
|
||||
string? sha1 = hash.ToHexString();
|
||||
return GetDepotPath(sha1, depth);
|
||||
}
|
||||
|
||||
|
||||
@@ -28,10 +28,10 @@
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
<PackageReference Include="SabreTools.Hashing" Version="1.4.0" />
|
||||
<PackageReference Include="SabreTools.IO" Version="1.5.0" />
|
||||
<PackageReference Include="SabreTools.Matching" Version="1.4.0" />
|
||||
<PackageReference Include="SabreTools.Models" Version="1.5.0" />
|
||||
<PackageReference Include="SabreTools.Serialization" Version="1.7.0" />
|
||||
<PackageReference Include="SabreTools.IO" Version="1.6.1" />
|
||||
<PackageReference Include="SabreTools.Matching" Version="1.5.0" />
|
||||
<PackageReference Include="SabreTools.Models" Version="1.5.5" />
|
||||
<PackageReference Include="SabreTools.Serialization" Version="1.8.1" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -75,8 +75,8 @@ namespace SabreTools.DatItems.Formats
|
||||
public Disk(BaseFile baseFile) : base()
|
||||
{
|
||||
SetName(baseFile.Filename);
|
||||
SetFieldValue<string?>(Models.Metadata.Disk.MD5Key, ByteArrayExtensions.ByteArrayToString(baseFile.MD5));
|
||||
SetFieldValue<string?>(Models.Metadata.Disk.SHA1Key, ByteArrayExtensions.ByteArrayToString(baseFile.SHA1));
|
||||
SetFieldValue<string?>(Models.Metadata.Disk.MD5Key, baseFile.MD5.ToHexString());
|
||||
SetFieldValue<string?>(Models.Metadata.Disk.SHA1Key, baseFile.SHA1.ToHexString());
|
||||
|
||||
SetFieldValue<DupeType>(DatItem.DupeTypeKey, 0x00);
|
||||
}
|
||||
@@ -94,8 +94,8 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
Filename = this.GetName(),
|
||||
Parent = GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey),
|
||||
MD5 = ByteArrayExtensions.StringToByteArray(GetStringFieldValue(Models.Metadata.Disk.MD5Key)),
|
||||
SHA1 = ByteArrayExtensions.StringToByteArray(GetStringFieldValue(Models.Metadata.Disk.SHA1Key)),
|
||||
MD5 = GetStringFieldValue(Models.Metadata.Disk.MD5Key).FromHexString(),
|
||||
SHA1 = GetStringFieldValue(Models.Metadata.Disk.SHA1Key).FromHexString(),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@ using SabreTools.Core.Tools;
|
||||
using SabreTools.FileTypes;
|
||||
using SabreTools.Hashing;
|
||||
using SabreTools.IO.Extensions;
|
||||
using SabreTools.Matching;
|
||||
|
||||
// TODO: Add item mappings for all fields
|
||||
namespace SabreTools.DatItems.Formats
|
||||
@@ -54,8 +53,8 @@ namespace SabreTools.DatItems.Formats
|
||||
[JsonProperty("crc", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("crc")]
|
||||
public string? CRC
|
||||
{
|
||||
get { return ByteArrayExtensions.ByteArrayToString(_crc); }
|
||||
set { _crc = (value == "null" ? ZeroHash.CRC32Arr : ByteArrayExtensions.StringToByteArray(TextHelper.NormalizeCRC32(value))); }
|
||||
get { return _crc.ToHexString(); }
|
||||
set { _crc = (value == "null" ? ZeroHash.CRC32Arr : TextHelper.NormalizeCRC32(value).FromHexString()); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -64,8 +63,8 @@ namespace SabreTools.DatItems.Formats
|
||||
[JsonProperty("md5", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("md5")]
|
||||
public string? MD5
|
||||
{
|
||||
get { return ByteArrayExtensions.ByteArrayToString(_md5); }
|
||||
set { _md5 = ByteArrayExtensions.StringToByteArray(TextHelper.NormalizeMD5(value)); }
|
||||
get { return _md5.ToHexString(); }
|
||||
set { _md5 = TextHelper.NormalizeMD5(value).FromHexString(); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -74,8 +73,8 @@ namespace SabreTools.DatItems.Formats
|
||||
[JsonProperty("sha1", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("sha1")]
|
||||
public string? SHA1
|
||||
{
|
||||
get { return ByteArrayExtensions.ByteArrayToString(_sha1); }
|
||||
set { _sha1 = ByteArrayExtensions.StringToByteArray(TextHelper.NormalizeSHA1(value)); }
|
||||
get { return _sha1.ToHexString(); }
|
||||
set { _sha1 = TextHelper.NormalizeSHA1(value).FromHexString(); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -84,8 +83,8 @@ namespace SabreTools.DatItems.Formats
|
||||
[JsonProperty("sha256", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("sha256")]
|
||||
public string? SHA256
|
||||
{
|
||||
get { return ByteArrayExtensions.ByteArrayToString(_sha256); }
|
||||
set { _sha256 = ByteArrayExtensions.StringToByteArray(TextHelper.NormalizeSHA256(value)); }
|
||||
get { return _sha256.ToHexString(); }
|
||||
set { _sha256 = TextHelper.NormalizeSHA256(value).FromHexString(); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -228,19 +227,6 @@ namespace SabreTools.DatItems.Formats
|
||||
if (Size == null && other.Size != null)
|
||||
Size = other.Size;
|
||||
|
||||
#if NET20
|
||||
if (Matching.Extensions.IsNullOrEmpty(_crc) && !Matching.Extensions.IsNullOrEmpty(other._crc))
|
||||
_crc = other._crc;
|
||||
|
||||
if (Matching.Extensions.IsNullOrEmpty(_md5) && !Matching.Extensions.IsNullOrEmpty(other._md5))
|
||||
_md5 = other._md5;
|
||||
|
||||
if (Matching.Extensions.IsNullOrEmpty(_sha1) && !Matching.Extensions.IsNullOrEmpty(other._sha1))
|
||||
_sha1 = other._sha1;
|
||||
|
||||
if (Matching.Extensions.IsNullOrEmpty(_sha256) && !Matching.Extensions.IsNullOrEmpty(other._sha256))
|
||||
_sha256 = other._sha256;
|
||||
#else
|
||||
if (_crc.IsNullOrEmpty() && !other._crc.IsNullOrEmpty())
|
||||
_crc = other._crc;
|
||||
|
||||
@@ -252,7 +238,6 @@ namespace SabreTools.DatItems.Formats
|
||||
|
||||
if (_sha256.IsNullOrEmpty() && !other._sha256.IsNullOrEmpty())
|
||||
_sha256 = other._sha256;
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -261,18 +246,6 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <returns>String representing the suffix</returns>
|
||||
public string GetDuplicateSuffix()
|
||||
{
|
||||
#if NET20
|
||||
if (!Matching.Extensions.IsNullOrEmpty(_crc))
|
||||
return $"_{CRC}";
|
||||
else if (!Matching.Extensions.IsNullOrEmpty(_md5))
|
||||
return $"_{MD5}";
|
||||
else if (!Matching.Extensions.IsNullOrEmpty(_sha1))
|
||||
return $"_{SHA1}";
|
||||
else if (!Matching.Extensions.IsNullOrEmpty(_sha256))
|
||||
return $"_{SHA256}";
|
||||
else
|
||||
return "_1";
|
||||
#else
|
||||
if (!_crc.IsNullOrEmpty())
|
||||
return $"_{CRC}";
|
||||
else if (!_md5.IsNullOrEmpty())
|
||||
@@ -283,7 +256,6 @@ namespace SabreTools.DatItems.Formats
|
||||
return $"_{SHA256}";
|
||||
else
|
||||
return "_1";
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -292,17 +264,10 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <returns>True if any hash exists, false otherwise</returns>
|
||||
public bool HasHashes()
|
||||
{
|
||||
#if NET20
|
||||
return !Matching.Extensions.IsNullOrEmpty(_crc)
|
||||
|| !Matching.Extensions.IsNullOrEmpty(_md5)
|
||||
|| !Matching.Extensions.IsNullOrEmpty(_sha1)
|
||||
|| !Matching.Extensions.IsNullOrEmpty(_sha256);
|
||||
#else
|
||||
return !_crc.IsNullOrEmpty()
|
||||
|| !_md5.IsNullOrEmpty()
|
||||
|| !_sha1.IsNullOrEmpty()
|
||||
|| !_sha256.IsNullOrEmpty();
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -324,17 +289,10 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <returns>True if at least one hash is not mutually exclusive, false otherwise</returns>
|
||||
private bool HasCommonHash(File other)
|
||||
{
|
||||
#if NET20
|
||||
return !(Matching.Extensions.IsNullOrEmpty(_crc) ^ Matching.Extensions.IsNullOrEmpty(other._crc))
|
||||
|| !(Matching.Extensions.IsNullOrEmpty(_md5) ^ Matching.Extensions.IsNullOrEmpty(other._md5))
|
||||
|| !(Matching.Extensions.IsNullOrEmpty(_sha1) ^ Matching.Extensions.IsNullOrEmpty(other._sha1))
|
||||
|| !(Matching.Extensions.IsNullOrEmpty(_sha256) ^ Matching.Extensions.IsNullOrEmpty(other._sha256));
|
||||
#else
|
||||
return !(_crc.IsNullOrEmpty() ^ other._crc.IsNullOrEmpty())
|
||||
|| !(_md5.IsNullOrEmpty() ^ other._md5.IsNullOrEmpty())
|
||||
|| !(_sha1.IsNullOrEmpty() ^ other._sha1.IsNullOrEmpty())
|
||||
|| !(_sha256.IsNullOrEmpty() ^ other._sha256.IsNullOrEmpty());
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -37,9 +37,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Media(BaseFile baseFile) : base()
|
||||
{
|
||||
SetName(baseFile.Filename);
|
||||
SetFieldValue<string?>(Models.Metadata.Media.MD5Key, ByteArrayExtensions.ByteArrayToString(baseFile.MD5));
|
||||
SetFieldValue<string?>(Models.Metadata.Media.SHA1Key, ByteArrayExtensions.ByteArrayToString(baseFile.SHA1));
|
||||
SetFieldValue<string?>(Models.Metadata.Media.SHA256Key, ByteArrayExtensions.ByteArrayToString(baseFile.SHA256));
|
||||
SetFieldValue<string?>(Models.Metadata.Media.MD5Key, baseFile.MD5.ToHexString());
|
||||
SetFieldValue<string?>(Models.Metadata.Media.SHA1Key, baseFile.SHA1.ToHexString());
|
||||
SetFieldValue<string?>(Models.Metadata.Media.SHA256Key, baseFile.SHA256.ToHexString());
|
||||
SetFieldValue<string?>(Models.Metadata.Media.SpamSumKey, System.Text.Encoding.UTF8.GetString(baseFile.SpamSum ?? []));
|
||||
|
||||
SetFieldValue<DupeType>(DatItem.DupeTypeKey, 0x00);
|
||||
@@ -58,9 +58,9 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
Filename = this.GetName(),
|
||||
Parent = GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey),
|
||||
MD5 = ByteArrayExtensions.StringToByteArray(GetStringFieldValue(Models.Metadata.Media.MD5Key)),
|
||||
SHA1 = ByteArrayExtensions.StringToByteArray(GetStringFieldValue(Models.Metadata.Media.SHA1Key)),
|
||||
SHA256 = ByteArrayExtensions.StringToByteArray(GetStringFieldValue(Models.Metadata.Media.SHA256Key)),
|
||||
MD5 = GetStringFieldValue(Models.Metadata.Media.MD5Key).FromHexString(),
|
||||
SHA1 = GetStringFieldValue(Models.Metadata.Media.SHA1Key).FromHexString(),
|
||||
SHA256 = GetStringFieldValue(Models.Metadata.Media.SHA256Key).FromHexString(),
|
||||
SpamSum = System.Text.Encoding.UTF8.GetBytes(GetStringFieldValue(Models.Metadata.Media.SpamSumKey) ?? string.Empty),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -95,12 +95,12 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
SetName(baseFile.Filename);
|
||||
SetFieldValue<string?>(Models.Metadata.Rom.DateKey, baseFile.Date);
|
||||
SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, ByteArrayExtensions.ByteArrayToString(baseFile.CRC));
|
||||
SetFieldValue<string?>(Models.Metadata.Rom.MD5Key, ByteArrayExtensions.ByteArrayToString(baseFile.MD5));
|
||||
SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, ByteArrayExtensions.ByteArrayToString(baseFile.SHA1));
|
||||
SetFieldValue<string?>(Models.Metadata.Rom.SHA256Key, ByteArrayExtensions.ByteArrayToString(baseFile.SHA256));
|
||||
SetFieldValue<string?>(Models.Metadata.Rom.SHA384Key, ByteArrayExtensions.ByteArrayToString(baseFile.SHA384));
|
||||
SetFieldValue<string?>(Models.Metadata.Rom.SHA512Key, ByteArrayExtensions.ByteArrayToString(baseFile.SHA512));
|
||||
SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, baseFile.CRC.ToHexString());
|
||||
SetFieldValue<string?>(Models.Metadata.Rom.MD5Key, baseFile.MD5.ToHexString());
|
||||
SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, baseFile.SHA1.ToHexString());
|
||||
SetFieldValue<string?>(Models.Metadata.Rom.SHA256Key, baseFile.SHA256.ToHexString());
|
||||
SetFieldValue<string?>(Models.Metadata.Rom.SHA384Key, baseFile.SHA384.ToHexString());
|
||||
SetFieldValue<string?>(Models.Metadata.Rom.SHA512Key, baseFile.SHA512.ToHexString());
|
||||
SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, baseFile.Size.ToString());
|
||||
if (baseFile.SpamSum != null)
|
||||
SetFieldValue<string?>(Models.Metadata.Rom.SpamSumKey, System.Text.Encoding.UTF8.GetString(baseFile.SpamSum));
|
||||
@@ -129,12 +129,12 @@ namespace SabreTools.DatItems.Formats
|
||||
Parent = GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey),
|
||||
Date = GetStringFieldValue(Models.Metadata.Rom.DateKey),
|
||||
Size = NumberHelper.ConvertToInt64(GetStringFieldValue(Models.Metadata.Rom.SizeKey)),
|
||||
CRC = ByteArrayExtensions.StringToByteArray(GetStringFieldValue(Models.Metadata.Rom.CRCKey)),
|
||||
MD5 = ByteArrayExtensions.StringToByteArray(GetStringFieldValue(Models.Metadata.Rom.MD5Key)),
|
||||
SHA1 = ByteArrayExtensions.StringToByteArray(GetStringFieldValue(Models.Metadata.Rom.SHA1Key)),
|
||||
SHA256 = ByteArrayExtensions.StringToByteArray(GetStringFieldValue(Models.Metadata.Rom.SHA256Key)),
|
||||
SHA384 = ByteArrayExtensions.StringToByteArray(GetStringFieldValue(Models.Metadata.Rom.SHA384Key)),
|
||||
SHA512 = ByteArrayExtensions.StringToByteArray(GetStringFieldValue(Models.Metadata.Rom.SHA512Key)),
|
||||
CRC = GetStringFieldValue(Models.Metadata.Rom.CRCKey).FromHexString(),
|
||||
MD5 = GetStringFieldValue(Models.Metadata.Rom.MD5Key).FromHexString(),
|
||||
SHA1 = GetStringFieldValue(Models.Metadata.Rom.SHA1Key).FromHexString(),
|
||||
SHA256 = GetStringFieldValue(Models.Metadata.Rom.SHA256Key).FromHexString(),
|
||||
SHA384 = GetStringFieldValue(Models.Metadata.Rom.SHA384Key).FromHexString(),
|
||||
SHA512 = GetStringFieldValue(Models.Metadata.Rom.SHA512Key).FromHexString(),
|
||||
SpamSum = spamSum != null ? System.Text.Encoding.UTF8.GetBytes(spamSum) : null,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -27,9 +27,9 @@
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
<PackageReference Include="SabreTools.IO" Version="1.5.0" />
|
||||
<PackageReference Include="SabreTools.Matching" Version="1.4.0" />
|
||||
<PackageReference Include="SabreTools.Models" Version="1.5.0" />
|
||||
<PackageReference Include="SabreTools.IO" Version="1.6.1" />
|
||||
<PackageReference Include="SabreTools.Matching" Version="1.5.0" />
|
||||
<PackageReference Include="SabreTools.Models" Version="1.5.5" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -33,9 +33,9 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="SabreTools.IO" Version="1.5.0" />
|
||||
<PackageReference Include="SabreTools.Matching" Version="1.4.0" />
|
||||
<PackageReference Include="SabreTools.Skippers" Version="1.2.0" />
|
||||
<PackageReference Include="SabreTools.IO" Version="1.6.1" />
|
||||
<PackageReference Include="SabreTools.Matching" Version="1.5.0" />
|
||||
<PackageReference Include="SabreTools.Skippers" Version="1.3.0" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -97,11 +97,7 @@ namespace SabreTools.FileTypes.Aaru
|
||||
return false;
|
||||
|
||||
// If the bytes don't match, we don't have an AaruFormat
|
||||
#if NET20
|
||||
if (!Matching.Extensions.StartsWith(magicBytes, AaruFormatSignature))
|
||||
#else
|
||||
if (!magicBytes.StartsWith(AaruFormatSignature))
|
||||
#endif
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
||||
@@ -399,7 +399,7 @@ namespace SabreTools.FileTypes.Archives
|
||||
Size = extractedsize,
|
||||
CRC = headercrc,
|
||||
MD5 = headermd5,
|
||||
SHA1 = ByteArrayExtensions.StringToByteArray(Path.GetFileNameWithoutExtension(this.Filename)),
|
||||
SHA1 = Path.GetFileNameWithoutExtension(this.Filename).FromHexString(),
|
||||
|
||||
Parent = Path.GetFileNameWithoutExtension(this.Filename).ToLowerInvariant(),
|
||||
};
|
||||
|
||||
@@ -285,7 +285,7 @@ namespace SabreTools.FileTypes.Archives
|
||||
BaseFile baseFile = new()
|
||||
{
|
||||
Filename = Path.GetFileNameWithoutExtension(this.Filename).ToLowerInvariant(),
|
||||
SHA1 = ByteArrayExtensions.StringToByteArray(Path.GetFileNameWithoutExtension(this.Filename)),
|
||||
SHA1 = Path.GetFileNameWithoutExtension(this.Filename).FromHexString(),
|
||||
|
||||
Parent = Path.GetFileNameWithoutExtension(this.Filename).ToLowerInvariant(),
|
||||
};
|
||||
|
||||
@@ -191,44 +191,6 @@ namespace SabreTools.FileTypes
|
||||
#endif
|
||||
|
||||
// Now try to match it to a known signature
|
||||
#if NET20
|
||||
if (Matching.Extensions.StartsWith(magic, SevenZipSignature))
|
||||
{
|
||||
outFileType = FileType.SevenZipArchive;
|
||||
}
|
||||
else if (Matching.Extensions.StartsWith(magic, AaruFormatSignature))
|
||||
{
|
||||
outFileType = FileType.AaruFormat;
|
||||
}
|
||||
else if (Matching.Extensions.StartsWith(magic, CHDSignature))
|
||||
{
|
||||
outFileType = FileType.CHD;
|
||||
}
|
||||
else if (Matching.Extensions.StartsWith(magic, GzSignature))
|
||||
{
|
||||
outFileType = FileType.GZipArchive;
|
||||
}
|
||||
else if (Matching.Extensions.StartsWith(magic, RarSignature)
|
||||
|| Matching.Extensions.StartsWith(magic, RarFiveSignature))
|
||||
{
|
||||
outFileType = FileType.RarArchive;
|
||||
}
|
||||
else if (Matching.Extensions.StartsWith(magic, TarSignature)
|
||||
|| Matching.Extensions.StartsWith(magic, TarZeroSignature))
|
||||
{
|
||||
outFileType = FileType.TapeArchive;
|
||||
}
|
||||
else if (Matching.Extensions.StartsWith(magic, XZSignature))
|
||||
{
|
||||
outFileType = FileType.XZArchive;
|
||||
}
|
||||
else if (Matching.Extensions.StartsWith(magic, ZipSignature)
|
||||
|| Matching.Extensions.StartsWith(magic, ZipSignatureEmpty)
|
||||
|| Matching.Extensions.StartsWith(magic, ZipSignatureSpanned))
|
||||
{
|
||||
outFileType = FileType.ZipArchive;
|
||||
}
|
||||
#else
|
||||
if (magic.StartsWith(SevenZipSignature))
|
||||
{
|
||||
outFileType = FileType.SevenZipArchive;
|
||||
@@ -265,7 +227,6 @@ namespace SabreTools.FileTypes
|
||||
{
|
||||
outFileType = FileType.ZipArchive;
|
||||
}
|
||||
#endif
|
||||
|
||||
return outFileType;
|
||||
}
|
||||
@@ -365,13 +326,13 @@ namespace SabreTools.FileTypes
|
||||
var baseFile = new BaseFile()
|
||||
{
|
||||
Size = size,
|
||||
CRC = hashDict.ContainsKey(HashType.CRC32) ? ByteArrayExtensions.StringToByteArray(hashDict[HashType.CRC32]) : null,
|
||||
MD5 = hashDict.ContainsKey(HashType.MD5) ? ByteArrayExtensions.StringToByteArray(hashDict[HashType.MD5]) : null,
|
||||
SHA1 = hashDict.ContainsKey(HashType.SHA1) ? ByteArrayExtensions.StringToByteArray(hashDict[HashType.SHA1]) : null,
|
||||
SHA256 = hashDict.ContainsKey(HashType.SHA256) ? ByteArrayExtensions.StringToByteArray(hashDict[HashType.SHA256]) : null,
|
||||
SHA384 = hashDict.ContainsKey(HashType.SHA384) ? ByteArrayExtensions.StringToByteArray(hashDict[HashType.SHA384]) : null,
|
||||
SHA512 = hashDict.ContainsKey(HashType.SHA512) ? ByteArrayExtensions.StringToByteArray(hashDict[HashType.SHA512]) : null,
|
||||
SpamSum = hashDict.ContainsKey(HashType.SpamSum) ? ByteArrayExtensions.StringToByteArray(hashDict[HashType.SpamSum]) : null,
|
||||
CRC = hashDict.ContainsKey(HashType.CRC32) ? hashDict[HashType.CRC32].FromHexString() : null,
|
||||
MD5 = hashDict.ContainsKey(HashType.MD5) ? hashDict[HashType.MD5].FromHexString() : null,
|
||||
SHA1 = hashDict.ContainsKey(HashType.SHA1) ? hashDict[HashType.SHA1].FromHexString() : null,
|
||||
SHA256 = hashDict.ContainsKey(HashType.SHA256) ? hashDict[HashType.SHA256].FromHexString() : null,
|
||||
SHA384 = hashDict.ContainsKey(HashType.SHA384) ? hashDict[HashType.SHA384].FromHexString() : null,
|
||||
SHA512 = hashDict.ContainsKey(HashType.SHA512) ? hashDict[HashType.SHA512].FromHexString() : null,
|
||||
SpamSum = hashDict.ContainsKey(HashType.SpamSum) ? hashDict[HashType.SpamSum].FromHexString() : null,
|
||||
};
|
||||
|
||||
// Deal with the input stream
|
||||
|
||||
@@ -37,10 +37,10 @@
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="SabreTools.Hashing" Version="1.4.0" />
|
||||
<PackageReference Include="SabreTools.IO" Version="1.5.0" />
|
||||
<PackageReference Include="SabreTools.Matching" Version="1.4.0" />
|
||||
<PackageReference Include="SabreTools.Serialization" Version="1.7.0" />
|
||||
<PackageReference Include="SabreTools.Skippers" Version="1.2.0" />
|
||||
<PackageReference Include="SabreTools.IO" Version="1.6.1" />
|
||||
<PackageReference Include="SabreTools.Matching" Version="1.5.0" />
|
||||
<PackageReference Include="SabreTools.Serialization" Version="1.8.1" />
|
||||
<PackageReference Include="SabreTools.Skippers" Version="1.3.0" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -2,7 +2,8 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- Assembly Properties -->
|
||||
<TargetFrameworks>net20;net35;net40;net452;net462;net472;net48;netcoreapp3.1;net5.0;net6.0;net7.0;net8.0;net9.0</TargetFrameworks>
|
||||
<TargetFrameworks>
|
||||
net20;net35;net40;net452;net462;net472;net48;netcoreapp3.1;net5.0;net6.0;net7.0;net8.0;net9.0</TargetFrameworks>
|
||||
<CheckEolTargetFramework>false</CheckEolTargetFramework>
|
||||
<IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
|
||||
<LangVersion>latest</LangVersion>
|
||||
@@ -19,8 +20,13 @@
|
||||
<RepositoryType>git</RepositoryType>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Support for old .NET versions -->
|
||||
<ItemGroup Condition="$(TargetFramework.StartsWith(`net2`))">
|
||||
<PackageReference Include="Net30.LinqBridge" Version="1.3.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="SabreTools.IO" Version="1.5.0" />
|
||||
<PackageReference Include="SabreTools.IO" Version="1.6.1" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -30,9 +30,9 @@
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
|
||||
<PackageReference Include="SabreTools.Models" Version="1.5.0" />
|
||||
<PackageReference Include="SabreTools.Serialization" Version="1.7.0" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
|
||||
<PackageReference Include="SabreTools.Models" Version="1.5.5" />
|
||||
<PackageReference Include="SabreTools.Serialization" Version="1.8.1" />
|
||||
<PackageReference Include="xunit" Version="2.9.2" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
|
||||
@@ -58,7 +58,7 @@ namespace SabreTools.Features
|
||||
}
|
||||
|
||||
// Get only files from the inputs
|
||||
List<ParentablePath> files = PathTool.GetFilesOnly(Inputs, appendparent: true);
|
||||
List<ParentablePath> files = PathTool.GetFilesOnly(Inputs, appendParent: true);
|
||||
|
||||
// Loop over the input files
|
||||
foreach (ParentablePath file in files)
|
||||
|
||||
@@ -145,7 +145,7 @@ namespace SabreTools.Features
|
||||
}
|
||||
|
||||
// Ensure we only have files in the inputs
|
||||
List<ParentablePath> inputPaths = PathTool.GetFilesOnly(Inputs, appendparent: true);
|
||||
List<ParentablePath> inputPaths = PathTool.GetFilesOnly(Inputs, appendParent: true);
|
||||
List<ParentablePath> basePaths = PathTool.GetFilesOnly(GetList(features, BaseDatListValue));
|
||||
|
||||
// Ensure the output directory
|
||||
|
||||
Reference in New Issue
Block a user