This commit is contained in:
2023-10-15 12:13:48 -07:00
parent cd5ab223c9
commit 37b7ad2a1f
102 changed files with 631 additions and 975 deletions

View File

@ -34,7 +34,6 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="MetadataExtractor" Version="2.8.0" />
<PackageReference Include="Serilog" Version="2.12.0" />
<PackageReference Include="System.Text.Json" Version="7.0.2" />
</ItemGroup>
<ItemGroup>

29
Metadata/Models/Avi.cs Normal file
View File

@ -0,0 +1,29 @@
using System.Text.Json;
using System.Text.Json.Serialization;
namespace View_by_Distance.Metadata.Models;
public record Avi(string? FramesPerSecond1,
string? SamplesPerSecond2,
string? Duration3,
string? VideoCodec4,
string? AudioCodec5,
string? Width6,
string? Height7,
string? Streams8,
string? DateTimeOriginal320)
{
public override string ToString()
{
string result = JsonSerializer.Serialize(this, AviSourceGenerationContext.Default.Avi);
return result;
}
}
[JsonSourceGenerationOptions(WriteIndented = true)]
[JsonSerializable(typeof(Avi))]
public partial class AviSourceGenerationContext : JsonSerializerContext
{
}

View File

@ -16,7 +16,6 @@ namespace View_by_Distance.Metadata.Models;
public class B_Metadata : IMetadata<MetadataExtractor.Directory>
{
private readonly Serilog.ILogger? _Log;
private readonly bool _PropertiesChangedForMetadata;
private readonly IPropertyConfiguration _PropertyConfiguration;
private readonly bool _ForceMetadataLastWriteTimeToCreationTime;
@ -26,7 +25,6 @@ public class B_Metadata : IMetadata<MetadataExtractor.Directory>
public B_Metadata(IPropertyConfiguration propertyConfiguration)
{
_PropertiesChangedForMetadata = false;
_Log = Serilog.Log.ForContext<B_Metadata>();
_PropertyConfiguration = propertyConfiguration;
_ForceMetadataLastWriteTimeToCreationTime = false;
_WriteIndentedJsonSerializerOptions = new JsonSerializerOptions { WriteIndented = true };
@ -35,7 +33,6 @@ public class B_Metadata : IMetadata<MetadataExtractor.Directory>
public B_Metadata(IPropertyConfiguration propertyConfiguration, bool forceMetadataLastWriteTimeToCreationTime, bool propertiesChangedForMetadata, string bResultsFullGroupDirectory)
{
_Log = Serilog.Log.ForContext<B_Metadata>();
_PropertyConfiguration = propertyConfiguration;
_PropertiesChangedForMetadata = propertiesChangedForMetadata;
_ForceMetadataLastWriteTimeToCreationTime = forceMetadataLastWriteTimeToCreationTime;

194
Metadata/Models/Exif.cs Normal file
View File

@ -0,0 +1,194 @@
using System.Text.Json;
using System.Text.Json.Serialization;
namespace View_by_Distance.Metadata.Models;
public record Exif(string? InteropIndex1,
string? Noise37389,
string? FocalPlaneXResolutionTiffEp37390,
string? FocalPlaneYResolutionTiffEp37391,
string? ImageNumber37393,
string? SecurityClassification37394,
string? ImageHistory37395,
string? SubjectLocationTiffEp37396,
string? ExposureIndexTiffEp37397,
string? SpatialFreqResponseTiffEp37388,
string? StandardIdTiffEp37398,
string? UserComment37510,
string? SubsecondTime37520,
string? SubsecondTimeOriginal37521,
string? SubsecondTimeDigitized37522,
string? WinTitle40091,
string? WinComment40092,
string? WinAuthor40093,
string? WinKeywords40094,
string? Makernote37500,
string? WinSubject40095,
string? FlashEnergyTiffEp37387,
string? Flash37385,
string? IsoSpeedLatitudeYYY34868,
string? IsoSpeedLatitudeZZZ34869,
string? ExifVersion36864,
string? DateTimeOriginal36867,
string? DateTimeDigitized36868,
string? TimeZone36880,
string? TimeZoneOriginal36881,
string? TimeZoneDigitized36882,
string? FocalLength37386,
string? ComponentsConfiguration37121,
string? ShutterSpeed37377,
string? Aperture37378,
string? BrightnessValue37379,
string? ExposureBias37380,
string? MaxAperture37381,
string? SubjectDistance37382,
string? MeteringMode37383,
string? WhiteBalance37384,
string? CompressedAverageBitsPerPixel37122,
string? IsoSpeed34867,
string? FlashpixVersion40960,
string? ExifImageWidth40962,
string? Sharpness41994,
string? DeviceSettingDescription41995,
string? SubjectDistanceRange41996,
string? ImageUniqueId42016,
string? CameraOwnerName42032,
string? BodySerialNumber42033,
string? LensSpecification42034,
string? LensMake42035,
string? Saturation41993,
string? LensModel42036,
string? GdalMetadata42112,
string? GdalNoData42113,
string? Gamma42240,
string? PrintImageMatchingInfo50341,
string? PanasonicTitle50898,
string? PanasonicTitle250899,
string? Padding59932,
string? Lens65002,
string? LensSerialNumber42037,
string? ColorSpace40961,
string? Contrast41992,
string? SceneCaptureType41990,
string? ExifImageHeight40963,
string? RelatedSoundFile40964,
string? FlashEnergy41483,
string? SpatialFreqResponse41484,
string? FocalPlaneXResolution41486,
string? FocalPlaneYResolution41487,
string? FocalPlaneResolutionUnit41488,
string? SubjectLocation41492,
string? GainControl41991,
string? ExposureIndex41493,
string? FileSource41728,
string? SceneType41729,
string? CfaPattern41730,
string? CustomRendered41985,
string? ExposureMode41986,
string? WhiteBalanceMode41987,
string? DigitalZoomRatio41988,
string? Film35MMEquivFocalLength41989,
string? SensingMethod41495,
string? RecommendedExposureIndex34866,
string? StandardOutputSensitivity34865,
string? SensitivityType34864,
string? YResolution283,
string? PlanarConfiguration284,
string? PageName285,
string? ResolutionUnit296,
string? PageNumber297,
string? TransferFunction301,
string? Software305,
string? DateTime306,
string? XResolution282,
string? Artist315,
string? Predictor317,
string? WhitePoint318,
string? PrimaryChromaticities319,
string? TileWidth322,
string? TileLength323,
string? TileOffsets324,
string? TileByteCounts325,
string? SubIfdOffset330,
string? HostComputer316,
string? ExtraSamples338,
string? MaxSampleValue281,
string? StripByteCounts279,
string? InteropVersion2,
string? NewSubfileType254,
string? SubfileType255,
string? ImageWidth256,
string? ImageHeight257,
string? BitsPerSample258,
string? Compression259,
string? PhotometricInterpretation262,
string? MinSampleValue280,
string? Thresholding263,
string? DocumentName269,
string? ImageDescription270,
string? Make271,
string? Model272,
string? StripOffsets273,
string? Orientation274,
string? SamplesPerPixel277,
string? RowsPerStrip278,
string? FillOrder266,
string? SampleFormat339,
string? TransferRange342,
string? JpegTables347,
string? FNumber33437,
string? PixelScale33550,
string? IptcNaa33723,
string? ModelTiePoint33922,
string? PhotoshopSettings34377,
string? InterColorProfile34675,
string? GeoTiffGeoKeys34735,
string? GeoTiffGeoDoubleParams34736,
string? ExposureTime33434,
string? GeoTiffGeoAsciiParams34737,
string? SpectralSensitivity34852,
string? IsoEquivalent34855,
string? OptoElectricConversionFunction34856,
string? Interlace34857,
string? TimeZoneOffsetTiffEp34858,
string? SelfTimerModeTiffEp34859,
string? TimeZoneOffset34858,
string? SelfTimerMode34859,
string? ExposureProgram34850,
string? Copyright33432,
string? BatteryLevel33423,
string? CfaPattern233422,
string? JpegProc512,
string? JpegRestartInterval515,
string? JpegLosslessPredictors517,
string? JpegPointTransforms518,
string? JpegQTables519,
string? JpegDcTables520,
string? JpegAcTables521,
string? YCbCrCoefficients529,
string? YCbCrSubsampling530,
string? YCbCrPositioning531,
string? ReferenceBlackWhite532,
string? StripRowCounts559,
string? ApplicationNotes700,
string? RelatedImageFileFormat4096,
string? RelatedImageWidth4097,
string? RelatedImageHeight4098,
string? Rating18246,
string? RatingPercent18249,
string? CfaRepeatPatternDim33421)
{
public override string ToString()
{
string result = JsonSerializer.Serialize(this, ExifSourceGenerationContext.Default.Exif);
return result;
}
}
[JsonSourceGenerationOptions(WriteIndented = true)]
[JsonSerializable(typeof(Exif))]
public partial class ExifSourceGenerationContext : JsonSerializerContext
{
}

View File

@ -0,0 +1,36 @@
using System.Text.Json;
using System.Text.Json.Serialization;
namespace View_by_Distance.Metadata.Models;
public record QuickTimeMovieHeader(string? Version1,
string? NextTrackId16,
string? CurrentTime15,
string? SelectionDuration14,
string? SelectionTime13,
string? PosterTime12,
string? PreviewDuration11,
string? PreviewTime10,
string? Matrix9,
string? PreferredVolume8,
string? PreferredRate7,
string? Duration6,
string? TimeScale5,
string? Modified4,
string? Created3,
string? Flags2)
{
public override string ToString()
{
string result = JsonSerializer.Serialize(this, QuickTimeMovieHeaderSourceGenerationContext.Default.QuickTimeMovieHeader);
return result;
}
}
[JsonSourceGenerationOptions(WriteIndented = true)]
[JsonSerializable(typeof(QuickTimeMovieHeader))]
public partial class QuickTimeMovieHeaderSourceGenerationContext : JsonSerializerContext
{
}

View File

@ -0,0 +1,33 @@
using System.Text.Json;
using System.Text.Json.Serialization;
namespace View_by_Distance.Metadata.Models;
public record QuickTimeTrackHeader(string? Version1,
string? Flags2,
string? Created3,
string? Modified4,
string? TrackId5,
string? Duration6,
string? Layer7,
string? AlternateGroup8,
string? Volume9,
string? Width10,
string? Height11,
string? Matrix12,
string? Rotation13)
{
public override string ToString()
{
string result = JsonSerializer.Serialize(this, QuickTimeTrackHeaderSourceGenerationContext.Default.QuickTimeTrackHeader);
return result;
}
}
[JsonSourceGenerationOptions(WriteIndented = true)]
[JsonSerializable(typeof(QuickTimeTrackHeader))]
public partial class QuickTimeTrackHeaderSourceGenerationContext : JsonSerializerContext
{
}

View File

@ -1,10 +0,0 @@
namespace View_by_Distance.Metadata.Models.Stateless;
internal static class SerilogExtensionMethods
{
internal static void Warn(this Serilog.ILogger log, string messageTemplate) => log.Warning(messageTemplate);
internal static void Info(this Serilog.ILogger log, string messageTemplate) => log.Information(messageTemplate);
}