diff --git a/SpaceWizards.RsiLib/DMI/Metadata/IMetadataParser.cs b/SpaceWizards.RsiLib/DMI/Metadata/IMetadataParser.cs deleted file mode 100644 index 7434ee0..0000000 --- a/SpaceWizards.RsiLib/DMI/Metadata/IMetadataParser.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System.Diagnostics.CodeAnalysis; - -namespace SpaceWizards.RsiLib.DMI.Metadata; - -public interface IMetadataParser -{ - bool TryGetFileMetadata( - string filePath, - [NotNullWhen(true)] out IMetadata? metadata, - [NotNullWhen(false)] out ParseError? error); -} \ No newline at end of file diff --git a/SpaceWizards.RsiLib/DMI/Metadata/MetadataParseErrorsExtensions.cs b/SpaceWizards.RsiLib/DMI/Metadata/MetadataParseErrorsExtensions.cs index 03de611..4b4c0b9 100644 --- a/SpaceWizards.RsiLib/DMI/Metadata/MetadataParseErrorsExtensions.cs +++ b/SpaceWizards.RsiLib/DMI/Metadata/MetadataParseErrorsExtensions.cs @@ -4,6 +4,6 @@ public static class MetadataParseErrorsExtensions { public static ParseError WithMessage(this MetadataErrors error, string message) { - return new(error, message); + return new ParseError(error, message); } -} \ No newline at end of file +} diff --git a/SpaceWizards.RsiLib/DMI/Metadata/MetadataParser.cs b/SpaceWizards.RsiLib/DMI/Metadata/MetadataParser.cs index 30e6fc2..1c076d7 100644 --- a/SpaceWizards.RsiLib/DMI/Metadata/MetadataParser.cs +++ b/SpaceWizards.RsiLib/DMI/Metadata/MetadataParser.cs @@ -1,17 +1,18 @@ using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; +using System.IO; using MetadataExtractor.Formats.Png; using static SpaceWizards.RsiLib.DMI.Metadata.MetadataErrors; namespace SpaceWizards.RsiLib.DMI.Metadata; -public class MetadataParser : IMetadataParser +public class MetadataParser { private const string Header = "BEGIN DMI"; - private bool TryGetFileDmiTag(string filePath, [NotNullWhen(true)] out RawMetadata? rawData) + private bool TryGetFileDmiTag(Stream stream, [NotNullWhen(true)] out RawMetadata? rawData) { - var data = PngMetadataReader.ReadMetadata(filePath); + var data = PngMetadataReader.ReadMetadata(stream); foreach (var datum in data) { @@ -32,21 +33,21 @@ private bool TryGetFileDmiTag(string filePath, [NotNullWhen(true)] out RawMetada } public bool TryGetFileMetadata( - string filePath, + Stream stream, [NotNullWhen(true)] out IMetadata? metadata, [NotNullWhen(false)] out ParseError? error) { - if (!TryGetFileDmiTag(filePath, out var raw)) + if (!TryGetFileDmiTag(stream, out var raw)) { metadata = null; - error = NoDmiTag.WithMessage($"No dmi tag found in file {filePath}"); + error = NoDmiTag.WithMessage("No dmi tag found"); return false; } if (!raw.Next() || !raw.TryVersion(out var version)) { metadata = null; - error = NoVersion.WithMessage($"No version found in file {filePath}"); + error = NoVersion.WithMessage("No version found"); return false; } @@ -64,4 +65,4 @@ public bool TryGetFileMetadata( error = null; return true; } -} \ No newline at end of file +}