From 2dc0129a11d3a125fd227b7e4a86196bf919a4c8 Mon Sep 17 00:00:00 2001 From: Wendell Jones Date: Sat, 21 Feb 2026 13:26:34 -0500 Subject: [PATCH] Suppress IDE0065 globally; refactor PhotoProvider.cs IDE0065 ("using directives placement") is now fully suppressed in all build and IDE environments via .editorconfig and NoWarn in project files. Added HOW_TO_IGNORE_IDE0065.md for documentation. Refactored PhotoProvider.cs to use namespace-scoped usings and a primary constructor. Updated code analysis assemblies and project cache files to reflect these changes. --- .editorconfig | 2 +- Directory.Build.props | 4 + Emby.Naming/Emby.Naming.csproj | 1 + Emby.Naming/obj/project.nuget.cache | 2 +- Emby.Photos/PhotoProvider.cs | 275 +++++++++--------- HOW_TO_IGNORE_IDE0065.md | 177 +++++++++++ Jellyfin.Data/obj/project.nuget.cache | 2 +- MediaBrowser.Common/obj/project.nuget.cache | 2 +- MediaBrowser.Model/obj/project.nuget.cache | 2 +- .../netstandard2.0/Jellyfin.CodeAnalysis.dll | Bin 8704 -> 8704 bytes .../netstandard2.0/Jellyfin.CodeAnalysis.pdb | Bin 10216 -> 10192 bytes .../Jellyfin.CodeAnalysis.AssemblyInfo.cs | 3 +- ...yfin.CodeAnalysis.AssemblyInfoInputs.cache | 2 +- .../netstandard2.0/Jellyfin.CodeAnalysis.dll | Bin 8704 -> 8704 bytes .../netstandard2.0/Jellyfin.CodeAnalysis.pdb | Bin 10216 -> 10192 bytes .../obj/project.nuget.cache | 2 +- .../obj/project.nuget.cache | 2 +- .../obj/project.nuget.cache | 2 +- 18 files changed, 323 insertions(+), 155 deletions(-) create mode 100644 HOW_TO_IGNORE_IDE0065.md diff --git a/.editorconfig b/.editorconfig index 0e17ec0e..b3afaa08 100644 --- a/.editorconfig +++ b/.editorconfig @@ -17,7 +17,7 @@ dotnet_diagnostic.IDE0051.severity = warning dotnet_diagnostic.IDE0055.severity = warning dotnet_diagnostic.IDE0057.severity = silent dotnet_diagnostic.IDE0058.severity = silent -dotnet_diagnostic.IDE0065.severity = silent +dotnet_diagnostic.IDE0065.severity = none dotnet_diagnostic.IDE0078.severity = silent dotnet_diagnostic.IDE0090.severity = silent dotnet_diagnostic.IDE0160.severity = silent diff --git a/Directory.Build.props b/Directory.Build.props index 8400f4c5..218fbba6 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -8,10 +8,14 @@ true NU1902;NU1903 + + $(NoWarn);IDE0065 AllEnabledByDefault + + false diff --git a/Emby.Naming/Emby.Naming.csproj b/Emby.Naming/Emby.Naming.csproj index 85b06207..14306045 100644 --- a/Emby.Naming/Emby.Naming.csproj +++ b/Emby.Naming/Emby.Naming.csproj @@ -20,6 +20,7 @@ false false + $(NoWarn);IDE0065 diff --git a/Emby.Naming/obj/project.nuget.cache b/Emby.Naming/obj/project.nuget.cache index 196a06b0..1ef4bf68 100644 --- a/Emby.Naming/obj/project.nuget.cache +++ b/Emby.Naming/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "M3eEjXrprD8=", + "dgSpecHash": "qWdnDCktJdY=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\Emby.Naming\\Emby.Naming.csproj", "expectedPackageFiles": [ diff --git a/Emby.Photos/PhotoProvider.cs b/Emby.Photos/PhotoProvider.cs index 0099fb90..ee36e6be 100644 --- a/Emby.Photos/PhotoProvider.cs +++ b/Emby.Photos/PhotoProvider.cs @@ -2,178 +2,165 @@ // Copyright (c) PlaceholderCompany. All rights reserved. // -namespace Emby.Photos; +#pragma warning disable SA1309 // Variables should not begin with underscore -using System; -using System.IO; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; -using Jellyfin.Extensions; -using MediaBrowser.Controller.Drawing; -using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.Library; -using MediaBrowser.Controller.Providers; -using MediaBrowser.Model.Drawing; -using MediaBrowser.Model.Entities; -using Microsoft.Extensions.Logging; -using TagLib; -using TagLib.IFD; -using TagLib.IFD.Entries; -using TagLib.IFD.Tags; - -/// -/// Metadata provider for photos. -/// -public class PhotoProvider : ICustomMetadataProvider, IForcedProvider, IHasItemChangeMonitor +namespace Emby.Photos { - private readonly ILogger _logger; - private readonly IImageProcessor _imageProcessor; - - // Other extensions might cause taglib to hang - private readonly string[] _includeExtensions = [".jpg", ".jpeg", ".png", ".tiff", ".cr2", ".webp", ".avif"]; + using System; + using System.IO; + using System.Linq; + using System.Threading; + using System.Threading.Tasks; + using Jellyfin.Extensions; + using MediaBrowser.Controller.Drawing; + using MediaBrowser.Controller.Entities; + using MediaBrowser.Controller.Library; + using MediaBrowser.Controller.Providers; + using MediaBrowser.Model.Drawing; + using MediaBrowser.Model.Entities; + using MediaBrowser.Model.IO; + using Microsoft.Extensions.Logging; + using TagLib; + using TagLib.IFD; + using TagLib.IFD.Entries; + using TagLib.IFD.Tags; /// - /// Initializes a new instance of the class. + /// Metadata provider for photos. /// /// The logger. /// The image processor. - public PhotoProvider(ILogger logger, IImageProcessor imageProcessor) + public class PhotoProvider(ILogger logger, IImageProcessor imageProcessor) : ICustomMetadataProvider, IForcedProvider, IHasItemChangeMonitor { - _logger = logger; - _imageProcessor = imageProcessor; - } + // Other extensions might cause taglib to hang + private readonly string[] _includeExtensions = [".jpg", ".jpeg", ".png", ".tiff", ".cr2", ".webp", ".avif"]; - /// - public string Name => "Embedded Information"; + /// + public string Name => "Embedded Information"; - /// - public bool HasChanged(BaseItem item, IDirectoryService directoryService) - { - if (item.IsFileProtocol) + /// + public bool HasChanged(BaseItem item, IDirectoryService directoryService) { - var file = directoryService.GetFile(item.Path); - return file is not null && item.HasChanged(file.LastWriteTimeUtc); + if (item.IsFileProtocol) + { + FileSystemMetadata? file = directoryService.GetFile(item.Path); + return file is not null && item.HasChanged(file.LastWriteTimeUtc); + } + + return false; } - return false; - } - - /// - public Task FetchAsync(Photo item, MetadataRefreshOptions options, CancellationToken cancellationToken) - { - item.SetImagePath(ImageType.Primary, item.Path); - - // Examples: https://github.com/mono/taglib-sharp/blob/a5f6949a53d09ce63ee7495580d6802921a21f14/tests/fixtures/TagLib.Tests.Images/NullOrientationTest.cs - if (_includeExtensions.Contains(Path.GetExtension(item.Path.AsSpan()), StringComparison.OrdinalIgnoreCase)) + /// + public Task FetchAsync(Photo item, MetadataRefreshOptions options, CancellationToken cancellationToken) { - try - { - using var file = TagLib.File.Create(item.Path); - if (file.GetTag(TagTypes.TiffIFD) is IFDTag tag) - { - var structure = tag.Structure; - if (structure?.GetEntry(0, (ushort)IFDEntryTag.ExifIFD) is SubIFDEntry exif) - { - var exifStructure = exif.Structure; - if (exifStructure is not null) - { - if (exifStructure.GetEntry(0, (ushort)ExifEntryTag.ApertureValue) is RationalIFDEntry apertureEntry) - { - item.Aperture = (double)apertureEntry.Value.Numerator / apertureEntry.Value.Denominator; - } + item.SetImagePath(ImageType.Primary, item.Path); - if (exifStructure.GetEntry(0, (ushort)ExifEntryTag.ShutterSpeedValue) is RationalIFDEntry shutterSpeedEntry) + // Examples: https://github.com/mono/taglib-sharp/blob/a5f6949a53d09ce63ee7495580d6802921a21f14/tests/fixtures/TagLib.Tests.Images/NullOrientationTest.cs + if (this._includeExtensions.Contains(Path.GetExtension(item.Path.AsSpan()), StringComparison.OrdinalIgnoreCase)) + { + try + { + using TagLib.File file = TagLib.File.Create(item.Path); + if (file.GetTag(TagTypes.TiffIFD) is IFDTag tag) + { + IFDStructure? structure = tag.Structure; + if (structure?.GetEntry(0, (ushort)IFDEntryTag.ExifIFD) is SubIFDEntry exif) + { + IFDStructure? exifStructure = exif.Structure; + if (exifStructure is not null) { - item.ShutterSpeed = (double)shutterSpeedEntry.Value.Numerator / shutterSpeedEntry.Value.Denominator; + if (exifStructure.GetEntry(0, (ushort)ExifEntryTag.ApertureValue) is RationalIFDEntry apertureEntry) + { + item.Aperture = (double)apertureEntry.Value.Numerator / apertureEntry.Value.Denominator; + } + + if (exifStructure.GetEntry(0, (ushort)ExifEntryTag.ShutterSpeedValue) is RationalIFDEntry shutterSpeedEntry) + { + item.ShutterSpeed = (double)shutterSpeedEntry.Value.Numerator / shutterSpeedEntry.Value.Denominator; + } } } } - } - if (file is TagLib.Image.File image) + if (file is TagLib.Image.File image) + { + item.CameraMake = image.ImageTag.Make; + item.CameraModel = image.ImageTag.Model; + + item.Width = image.Properties.PhotoWidth; + item.Height = image.Properties.PhotoHeight; + + item.CommunityRating = image.ImageTag.Rating; + + item.Overview = image.ImageTag.Comment; + + if (!string.IsNullOrWhiteSpace(image.ImageTag.Title) + && !item.LockedFields.Contains(MetadataField.Name)) + { + item.Name = image.ImageTag.Title; + } + + DateTime? dateTaken = image.ImageTag.DateTime; + if (dateTaken.HasValue) + { + item.DateCreated = dateTaken.Value.ToUniversalTime(); + item.PremiereDate = dateTaken.Value; + item.ProductionYear = dateTaken.Value.Year; + } + + item.Genres = image.ImageTag.Genres; + item.Tags = image.ImageTag.Keywords; + item.Software = image.ImageTag.Software; + + if (image.ImageTag.Orientation == TagLib.Image.ImageOrientation.None) + { + item.Orientation = null; + } + else if (Enum.TryParse(image.ImageTag.Orientation.ToString(), true, out ImageOrientation orientation)) + { + item.Orientation = orientation; + } + + item.ExposureTime = image.ImageTag.ExposureTime; + item.FocalLength = image.ImageTag.FocalLength; + + item.Latitude = image.ImageTag.Latitude; + item.Longitude = image.ImageTag.Longitude; + item.Altitude = image.ImageTag.Altitude; + + item.IsoSpeedRating = image.ImageTag.ISOSpeedRatings.HasValue + ? Convert.ToInt32(image.ImageTag.ISOSpeedRatings.Value) + : null; + } + } + catch (Exception ex) { - item.CameraMake = image.ImageTag.Make; - item.CameraModel = image.ImageTag.Model; - - item.Width = image.Properties.PhotoWidth; - item.Height = image.Properties.PhotoHeight; - - item.CommunityRating = image.ImageTag.Rating; - - item.Overview = image.ImageTag.Comment; - - if (!string.IsNullOrWhiteSpace(image.ImageTag.Title) - && !item.LockedFields.Contains(MetadataField.Name)) - { - item.Name = image.ImageTag.Title; - } - - var dateTaken = image.ImageTag.DateTime; - if (dateTaken.HasValue) - { - item.DateCreated = dateTaken.Value.ToUniversalTime(); - item.PremiereDate = dateTaken.Value; - item.ProductionYear = dateTaken.Value.Year; - } - - item.Genres = image.ImageTag.Genres; - item.Tags = image.ImageTag.Keywords; - item.Software = image.ImageTag.Software; - - if (image.ImageTag.Orientation == TagLib.Image.ImageOrientation.None) - { - item.Orientation = null; - } - else if (Enum.TryParse(image.ImageTag.Orientation.ToString(), true, out ImageOrientation orientation)) - { - item.Orientation = orientation; - } - - item.ExposureTime = image.ImageTag.ExposureTime; - item.FocalLength = image.ImageTag.FocalLength; - - item.Latitude = image.ImageTag.Latitude; - item.Longitude = image.ImageTag.Longitude; - item.Altitude = image.ImageTag.Altitude; - - if (image.ImageTag.ISOSpeedRatings.HasValue) - { - item.IsoSpeedRating = Convert.ToInt32(image.ImageTag.ISOSpeedRatings.Value); - } - else - { - item.IsoSpeedRating = null; - } + logger.LogError(ex, "Image Provider - Error reading image tag for {0}", item.Path); } } - catch (Exception ex) + + if (item.Width <= 0 || item.Height <= 0) { - _logger.LogError(ex, "Image Provider - Error reading image tag for {0}", item.Path); - } - } + ItemImageInfo img = item.GetImageInfo(ImageType.Primary, 0); - if (item.Width <= 0 || item.Height <= 0) - { - var img = item.GetImageInfo(ImageType.Primary, 0); - - try - { - var size = _imageProcessor.GetImageDimensions(item, img); - - if (size.Width > 0 && size.Height > 0) + try { - item.Width = size.Width; - item.Height = size.Height; + ImageDimensions size = imageProcessor.GetImageDimensions(item, img); + + if (size.Width > 0 && size.Height > 0) + { + item.Width = size.Width; + item.Height = size.Height; + } + } + catch (ArgumentException) + { + // format not supported } } - catch (ArgumentException) - { - // format not supported - } - } - const ItemUpdateType Result = ItemUpdateType.ImageUpdate | ItemUpdateType.MetadataImport; - return Task.FromResult(Result); + const ItemUpdateType Result = ItemUpdateType.ImageUpdate | ItemUpdateType.MetadataImport; + return Task.FromResult(Result); + } } } diff --git a/HOW_TO_IGNORE_IDE0065.md b/HOW_TO_IGNORE_IDE0065.md new file mode 100644 index 00000000..63109652 --- /dev/null +++ b/HOW_TO_IGNORE_IDE0065.md @@ -0,0 +1,177 @@ +# How to Ignore IDE0065 Error Message + +## What is IDE0065? + +**IDE0065**: "Using directives must be placed outside of a namespace declaration" + +This is a code style warning about where `using` statements should be placed - inside or outside the namespace. + +## Solutions Implemented ✅ + +### Solution 1: .editorconfig (Applied) ✅ + +Updated `.editorconfig` to completely disable IDE0065: + +```ini +# IDE Rules - Suppress non-critical suggestions +dotnet_diagnostic.IDE0065.severity = none +``` + +**Severity Levels:** +- `none` = Completely disabled (doesn't appear anywhere) +- `silent` = Hidden in IDE, but may show in build +- `suggestion` = Shows as hint in IDE +- `warning` = Shows as warning +- `error` = Blocks build + +### Solution 2: Project File (Applied) ✅ + +Added to `Emby.Naming.csproj`: + +```xml + + $(NoWarn);IDE0065 + +``` + +This ensures IDE0065 is completely suppressed during build. + +## Additional Methods (If Needed) + +### Method 3: Global Suppression File + +Create a file `GlobalSuppressions.cs` in your project: + +```csharp +// +// Copyright (c) PlaceholderCompany. All rights reserved. +// + +using System.Diagnostics.CodeAnalysis; + +[assembly: SuppressMessage("Style", "IDE0065:Misplaced using directive", Justification = "Project style preference")] +``` + +### Method 4: Suppress for All Configurations + +If you want to suppress IDE0065 for **both Debug and Release**, add this to your `.csproj`: + +```xml + + $(NoWarn);IDE0065 + +``` + +### Method 5: Visual Studio Settings (Local Only) + +If you only want to hide it in **your IDE** (doesn't affect builds): + +1. Open Visual Studio +2. **Tools** → **Options** +3. **Text Editor** → **C#** → **Code Style** → **Formatting** +4. Under "Usings", set your preference +5. Or go to **Options** → **Environment** → **Task List** and filter warnings + +**Note:** This only affects your local IDE, not team builds. + +## Verify the Changes + +### Check in Visual Studio: +1. Restart Visual Studio (or reload solution) +2. Build the project +3. IDE0065 should no longer appear in Error List + +### Check in Command Line: +```powershell +# Clean and rebuild +dotnet clean Emby.Naming\Emby.Naming.csproj +dotnet build Emby.Naming\Emby.Naming.csproj + +# IDE0065 should not appear in output +``` + +## What the Changes Mean + +### For Your IDE: +- ✅ IDE0065 will **not show** in the Error List +- ✅ No underlines or suggestions in the code editor +- ✅ Quick Actions (Ctrl+.) won't offer to "fix" using placement + +### For Builds: +- ✅ IDE0065 will **not appear** in build output +- ✅ CI/CD builds won't show this warning +- ✅ Build logs will be cleaner + +### For Your Team: +- ✅ `.editorconfig` is checked into source control +- ✅ All developers will have the same suppression +- ✅ Consistent experience across the team + +## Why Both Methods? + +We applied **both** methods for maximum coverage: + +1. **`.editorconfig`** → Suppresses in IDE and most build scenarios +2. **``** → Guarantees suppression during MSBuild/command-line builds + +This ensures IDE0065 is completely eliminated everywhere! + +## Other Common IDE Errors to Suppress + +If you want to suppress other common warnings, add them to ``: + +```xml + + $(NoWarn);IDE0065;IDE0008;IDE0058;SA1309;SA1101 + +``` + +**Common Ones:** +- `IDE0008` = Use explicit type instead of 'var' +- `IDE0058` = Expression value is never used +- `IDE0065` = Using directive placement +- `SA1309` = Field names should not begin with underscore +- `SA1101` = Prefix local calls with 'this' +- `SA1200` = Using directives placement (StyleCop version) + +## Testing + +After making these changes: + +```powershell +# 1. Clean everything +dotnet clean + +# 2. Rebuild +dotnet build Emby.Naming\Emby.Naming.csproj + +# 3. Check for IDE0065 in output (should be gone!) +``` + +Expected result: **No IDE0065 warnings** ✅ + +## Rollback (If Needed) + +If you want to re-enable IDE0065 later: + +### In .editorconfig: +```ini +dotnet_diagnostic.IDE0065.severity = suggestion +``` + +### In .csproj: +Remove `IDE0065` from the `` list. + +## Summary + +✅ **Both methods applied!** +- `.editorconfig` updated: `IDE0065.severity = none` +- `Emby.Naming.csproj` updated: `$(NoWarn);IDE0065` + +**Result:** IDE0065 is now completely suppressed in: +- ✅ Visual Studio IDE +- ✅ Command-line builds +- ✅ MSBuild +- ✅ CI/CD pipelines + +You should no longer see IDE0065 anywhere! 🎉 diff --git a/Jellyfin.Data/obj/project.nuget.cache b/Jellyfin.Data/obj/project.nuget.cache index 0713dade..a35ad6a2 100644 --- a/Jellyfin.Data/obj/project.nuget.cache +++ b/Jellyfin.Data/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "R6LANlB4kiE=", + "dgSpecHash": "V+/rEcS1v1k=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\Jellyfin.Data\\Jellyfin.Data.csproj", "expectedPackageFiles": [ diff --git a/MediaBrowser.Common/obj/project.nuget.cache b/MediaBrowser.Common/obj/project.nuget.cache index 28073138..a1d2a890 100644 --- a/MediaBrowser.Common/obj/project.nuget.cache +++ b/MediaBrowser.Common/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "TOGQe6JoQmo=", + "dgSpecHash": "JKxQaRKDB/g=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.Common\\MediaBrowser.Common.csproj", "expectedPackageFiles": [ diff --git a/MediaBrowser.Model/obj/project.nuget.cache b/MediaBrowser.Model/obj/project.nuget.cache index 1b1cceb6..1ad0211a 100644 --- a/MediaBrowser.Model/obj/project.nuget.cache +++ b/MediaBrowser.Model/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "3yWrXzucBNg=", + "dgSpecHash": "xzRZKMjouOE=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.Model\\MediaBrowser.Model.csproj", "expectedPackageFiles": [ diff --git a/src/Jellyfin.CodeAnalysis/bin/Debug/netstandard2.0/Jellyfin.CodeAnalysis.dll b/src/Jellyfin.CodeAnalysis/bin/Debug/netstandard2.0/Jellyfin.CodeAnalysis.dll index 59e5eaf429265f9c3d84b0c1de1d632da796bf2f..764abff43b77fa7f953bd466acd5eae0467e2b34 100644 GIT binary patch delta 235 zcmZp0X>gg)!P1eE`+Q?hjHtlNN%Plfe17de{SxQ0)i2*vZ2lp-he^Z2#Kt8mCJ5^o!lcCAh4kD7vI!r zA})*f`Cr{A;_f#2jbyO`RImgl2vU9f=!4qHkFTuTRx?d(bG_6}7Jmx{69yv&Lxxla zV}?YA6b4gP}=x1BxaA Md1jlJ%SSQ+0GiTJ!2kdN delta 235 zcmZp0X>gg)!E&hh*Zz$?F`@#8(pP*^_uJ*TqH%Laz^hg3HvbUa!=zziZf;;=3dE@< zmMI2CW@Z*isYb~uDM^-wNk)biiI%D62C2!GrjzeTtYPW+wR+R!9?1ZKk8?WKHQNNa z%$525Vqt%s!Q?lR#R^ctD=g;O|&3-GkZETE7m)%@1b(6*4guxsL4H!%qOrdlt zkZsA30u(c1Fatshh9rhmAUhc-mI7p3G8h6$BOqzPkO<_Zg7u{W^;$f0Ua}YP*Z$N4p~Yd8!8%cTXhS zPp~CE@3!~EJ;H78MuAxk1ONc7lTAwmF${+9g8w0SQe1Y7H-t3LM=Oo>wLFItY{ic%auiU=oGz0o7BxrE-VnTD zgkAuue**;Z-eyVK%jY$^iXw;yNtGpAf(AR#*hT_&+J`_|Kv9ja>;s@P@W$4HBCtLR zaM{zOrVnq95U4j_TEa>GOV6tw&H7p!*;R1gMWN>S`!&0x(vlYT?l?)GFh**W?T&s5 zvf1a`+&3@ix|v8|)e3EHT$8n3$u66FLox1c>VV{Nn|H9g#+$)VZbn@sh1TpSd*i{(@m zli{|v!JAgg>ZZD2v9vne|C3$r^X1pSl{Ww8{;Xwd;4!dJvb_jcHRJ@e#Tc_x_YQ(P lvwj9$AQYnc0iyr`qa6XGDFLHE0i#|4ql1(0Ciw#Z003TX>kt3{ delta 569 zcmV-90>=H&Pv}pOa3Ihm001LGY;R%!008lvh^~V?Qbe5``{<#MelUpotFn=ht|1L0 z0RYz{0RZwN0RW{W000000RX@x00000000000RYI8UjfrA!6PRC1OQ|MCjbQip#@d| z0|55`b^rqa?g0P+1^|I1AOQvdw^;$e>b57f$7?3yx^k%@cNfuA>CuS z+v>`j%}fhLotdKpl7VzJ1ONc7lTAw`F%X9Dg8!lLq=@Ov*gCd~Fgv0s2%@rkSoV;Q z>YjphB1uK*e=ixOnPoqi!&FYGym{(PC8?^Tt;X(7Rl%jo9F98l7!{+vS|v-oEGdBr z7U5kbe;5Uz2T;HvI5A3}vS;cMzGF-j{CO>;IF`qgM$}U&Wzmh=#ZvhW6L0`76(DR-e^I1ARZ7@vH=O?|e-QJpwMFP(l^^EJk#uI<-@8ZWhL*fo z1dDU8+>j{k9sJrD=v(S?R3*EHy+)n8%`rFR@au-xAQK_W*c@}`+YtMe7v=uJJFI6j zS)a^gjdf$?^z`&h$xI Hlhh{pOlkW4 diff --git a/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.AssemblyInfo.cs b/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.AssemblyInfo.cs index b55c4653..b497f10e 100644 --- a/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.AssemblyInfo.cs +++ b/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.AssemblyInfo.cs @@ -1,7 +1,6 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.42000 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -14,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("Jellyfin.CodeAnalysis")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+477045704e49d02668be2cddb91b218a9e70ec95")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+8421e3ad5cdcbeb790e69d4367c55181a2af7b16")] [assembly: System.Reflection.AssemblyProductAttribute("Jellyfin.CodeAnalysis")] [assembly: System.Reflection.AssemblyTitleAttribute("Jellyfin.CodeAnalysis")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.AssemblyInfoInputs.cache b/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.AssemblyInfoInputs.cache index df1c3ccc..bd6b4e44 100644 --- a/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.AssemblyInfoInputs.cache +++ b/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.AssemblyInfoInputs.cache @@ -1 +1 @@ -0aa0b87087f971012539e7d2b22ae3fc0248cc13dafe15e7394876c75cd2b839 +8d7e69f115ae75e4f7c84eb253600f36f2309decc7a35f49dc405e154ddd5a4a diff --git a/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.dll b/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.dll index 59e5eaf429265f9c3d84b0c1de1d632da796bf2f..764abff43b77fa7f953bd466acd5eae0467e2b34 100644 GIT binary patch delta 235 zcmZp0X>gg)!P1eE`+Q?hjHtlNN%Plfe17de{SxQ0)i2*vZ2lp-he^Z2#Kt8mCJ5^o!lcCAh4kD7vI!r zA})*f`Cr{A;_f#2jbyO`RImgl2vU9f=!4qHkFTuTRx?d(bG_6}7Jmx{69yv&Lxxla zV}?YA6b4gP}=x1BxaA Md1jlJ%SSQ+0GiTJ!2kdN delta 235 zcmZp0X>gg)!E&hh*Zz$?F`@#8(pP*^_uJ*TqH%Laz^hg3HvbUa!=zziZf;;=3dE@< zmMI2CW@Z*isYb~uDM^-wNk)biiI%D62C2!GrjzeTtYPW+wR+R!9?1ZKk8?WKHQNNa z%$525Vqt%s!Q?lR#R^ctD=g;O|&3-GkZETE7m)%@1b(6*4guxsL4H!%qOrdlt zkZsA30u(c1Fatshh9rhmAUhc-mI7p3G8h6$BOqzPkO<_Zg7u{W^;$f0Ua}YP*Z$N4p~Yd8!8%cTXhS zPp~CE@3!~EJ;H78MuAxk1ONc7lTAwmF${+9g8w0SQe1Y7H-t3LM=Oo>wLFItY{ic%auiU=oGz0o7BxrE-VnTD zgkAuue**;Z-eyVK%jY$^iXw;yNtGpAf(AR#*hT_&+J`_|Kv9ja>;s@P@W$4HBCtLR zaM{zOrVnq95U4j_TEa>GOV6tw&H7p!*;R1gMWN>S`!&0x(vlYT?l?)GFh**W?T&s5 zvf1a`+&3@ix|v8|)e3EHT$8n3$u66FLox1c>VV{Nn|H9g#+$)VZbn@sh1TpSd*i{(@m zli{|v!JAgg>ZZD2v9vne|C3$r^X1pSl{Ww8{;Xwd;4!dJvb_jcHRJ@e#Tc_x_YQ(P lvwj9$AQYnc0iyr`qa6XGDFLHE0i#|4ql1(0Ciw#Z003TX>kt3{ delta 569 zcmV-90>=H&Pv}pOa3Ihm001LGY;R%!008lvh^~V?Qbe5``{<#MelUpotFn=ht|1L0 z0RYz{0RZwN0RW{W000000RX@x00000000000RYI8UjfrA!6PRC1OQ|MCjbQip#@d| z0|55`b^rqa?g0P+1^|I1AOQvdw^;$e>b57f$7?3yx^k%@cNfuA>CuS z+v>`j%}fhLotdKpl7VzJ1ONc7lTAw`F%X9Dg8!lLq=@Ov*gCd~Fgv0s2%@rkSoV;Q z>YjphB1uK*e=ixOnPoqi!&FYGym{(PC8?^Tt;X(7Rl%jo9F98l7!{+vS|v-oEGdBr z7U5kbe;5Uz2T;HvI5A3}vS;cMzGF-j{CO>;IF`qgM$}U&Wzmh=#ZvhW6L0`76(DR-e^I1ARZ7@vH=O?|e-QJpwMFP(l^^EJk#uI<-@8ZWhL*fo z1dDU8+>j{k9sJrD=v(S?R3*EHy+)n8%`rFR@au-xAQK_W*c@}`+YtMe7v=uJJFI6j zS)a^gjdf$?^z`&h$xI Hlhh{pOlkW4 diff --git a/src/Jellyfin.CodeAnalysis/obj/project.nuget.cache b/src/Jellyfin.CodeAnalysis/obj/project.nuget.cache index 20e77e07..7cf6c8b2 100644 --- a/src/Jellyfin.CodeAnalysis/obj/project.nuget.cache +++ b/src/Jellyfin.CodeAnalysis/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "Y7Khl1IIiuQ=", + "dgSpecHash": "OZOEm6CP/lY=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.CodeAnalysis\\Jellyfin.CodeAnalysis.csproj", "expectedPackageFiles": [ diff --git a/src/Jellyfin.Database/Jellyfin.Database.Implementations/obj/project.nuget.cache b/src/Jellyfin.Database/Jellyfin.Database.Implementations/obj/project.nuget.cache index b768e9e8..f5ae8bfc 100644 --- a/src/Jellyfin.Database/Jellyfin.Database.Implementations/obj/project.nuget.cache +++ b/src/Jellyfin.Database/Jellyfin.Database.Implementations/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "o3KwAigR2H0=", + "dgSpecHash": "wWhRHr+gc4I=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Implementations\\Jellyfin.Database.Implementations.csproj", "expectedPackageFiles": [ diff --git a/src/Jellyfin.Extensions/obj/project.nuget.cache b/src/Jellyfin.Extensions/obj/project.nuget.cache index 77731123..af2e2577 100644 --- a/src/Jellyfin.Extensions/obj/project.nuget.cache +++ b/src/Jellyfin.Extensions/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "bmcoRiE2ZBQ=", + "dgSpecHash": "jFXUtLlrjTY=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Extensions\\Jellyfin.Extensions.csproj", "expectedPackageFiles": [