Enforce NuGet warnings as errors; refactor field access

Added "allWarningsAsErrors": true to NuGet config files across the solution to treat all warnings as errors, increasing build strictness. Updated project cache hashes and assembly info files to reflect these changes. Refactored C# code to use explicit `this.` for field and property assignments, improving clarity. Note: some method signatures were incorrectly changed to use `this.` as a prefix, which is invalid C# syntax and must be corrected before compiling. Binary files updated due to build changes.
This commit is contained in:
2026-02-21 11:07:54 -05:00
parent 2b3a0c9746
commit 477045704e
141 changed files with 714 additions and 291 deletions
+3 -3
View File
@@ -24,7 +24,7 @@ namespace Emby.Naming.Audio
/// <param name="options">Naming options containing AlbumStackingPrefixes.</param>
public AlbumParser(NamingOptions options)
{
_options = options;
this._options = options;
}
[GeneratedRegex(@"[-\.\(\)\s]+")]
@@ -49,11 +49,11 @@ namespace Emby.Naming.Audio
// Normalize
// Remove whitespace
filename = CleanRegex().Replace(filename, " ");
this.filename = CleanRegex().Replace(filename, " ");
ReadOnlySpan<char> trimmedFilename = filename.AsSpan().TrimStart();
foreach (var prefix in _options.AlbumStackingPrefixes)
foreach (var prefix in this._options.AlbumStackingPrefixes)
{
if (!trimmedFilename.StartsWith(prefix, StringComparison.OrdinalIgnoreCase))
{
+7 -7
View File
@@ -20,10 +20,10 @@ namespace Emby.Naming.AudioBook
/// <param name="chapterNumber">Number of chapter this file represents.</param>
public AudioBookFileInfo(string path, string container, int? partNumber = default, int? chapterNumber = default)
{
Path = path;
Container = container;
PartNumber = partNumber;
ChapterNumber = chapterNumber;
this.Path = path;
this.Container = container;
this.PartNumber = partNumber;
this.ChapterNumber = chapterNumber;
}
/// <summary>
@@ -63,19 +63,19 @@ namespace Emby.Naming.AudioBook
return 1;
}
var chapterNumberComparison = Nullable.Compare(ChapterNumber, other.ChapterNumber);
var chapterNumberComparison = Nullable.Compare(this.ChapterNumber, other.ChapterNumber);
if (chapterNumberComparison != 0)
{
return chapterNumberComparison;
}
var partNumberComparison = Nullable.Compare(PartNumber, other.PartNumber);
var partNumberComparison = Nullable.Compare(this.PartNumber, other.PartNumber);
if (partNumberComparison != 0)
{
return partNumberComparison;
}
return string.Compare(Path, other.Path, StringComparison.Ordinal);
return string.Compare(this.Path, other.Path, StringComparison.Ordinal);
}
}
}
@@ -22,7 +22,7 @@ namespace Emby.Naming.AudioBook
/// <param name="options">Naming options containing AudioBookPartsExpressions.</param>
public AudioBookFilePathParser(NamingOptions options)
{
_options = options;
this._options = options;
}
/// <summary>
@@ -34,7 +34,7 @@ namespace Emby.Naming.AudioBook
{
AudioBookFilePathParserResult result = default;
var fileName = Path.GetFileNameWithoutExtension(path);
foreach (var expression in _options.AudioBookPartsExpressions)
foreach (var expression in this._options.AudioBookPartsExpressions)
{
var match = Regex.Match(fileName, expression, RegexOptions.IgnoreCase);
if (match.Success)
+5 -5
View File
@@ -21,11 +21,11 @@ namespace Emby.Naming.AudioBook
/// <param name="alternateVersions">Alternative version of files.</param>
public AudioBookInfo(string name, int? year, IReadOnlyList<AudioBookFileInfo> files, IReadOnlyList<AudioBookFileInfo> extras, IReadOnlyList<AudioBookFileInfo> alternateVersions)
{
Name = name;
Year = year;
Files = files;
Extras = extras;
AlternateVersions = alternateVersions;
this.Name = name;
this.Year = year;
this.Files = files;
this.Extras = extras;
this.AlternateVersions = alternateVersions;
}
/// <summary>
+11 -11
View File
@@ -26,8 +26,8 @@ namespace Emby.Naming.AudioBook
/// <param name="options">Naming options passed along to <see cref="AudioBookResolver"/> and <see cref="AudioBookNameParser"/>.</param>
public AudioBookListResolver(NamingOptions options)
{
_options = options;
_audioBookResolver = new AudioBookResolver(_options);
this._options = options;
this._audioBookResolver = new AudioBookResolver(this._options);
}
/// <summary>
@@ -39,7 +39,7 @@ namespace Emby.Naming.AudioBook
{
// File with empty fullname will be sorted out here.
var audiobookFileInfos = files
.Select(i => _audioBookResolver.Resolve(i.FullName))
.Select(i => this._audioBookResolver.Resolve(i.FullName))
.OfType<AudioBookFileInfo>();
var stackResult = StackResolver.ResolveAudioBooks(audiobookFileInfos);
@@ -47,13 +47,13 @@ namespace Emby.Naming.AudioBook
foreach (var stack in stackResult)
{
var stackFiles = stack.Files
.Select(i => _audioBookResolver.Resolve(i))
.Select(i => this._audioBookResolver.Resolve(i))
.OfType<AudioBookFileInfo>()
.ToList();
stackFiles.Sort();
var nameParserResult = new AudioBookNameParser(_options).Parse(stack.Name);
var nameParserResult = new AudioBookNameParser(this._options).Parse(stack.Name);
FindExtraAndAlternativeFiles(ref stackFiles, out var extras, out var alternativeVersions, nameParserResult);
@@ -70,8 +70,8 @@ namespace Emby.Naming.AudioBook
private void FindExtraAndAlternativeFiles(ref List<AudioBookFileInfo> stackFiles, out List<AudioBookFileInfo> extras, out List<AudioBookFileInfo> alternativeVersions, AudioBookNameParserResult nameParserResult)
{
extras = new List<AudioBookFileInfo>();
alternativeVersions = new List<AudioBookFileInfo>();
this.extras = new List<AudioBookFileInfo>();
this.alternativeVersions = new List<AudioBookFileInfo>();
var haveChaptersOrPages = stackFiles.Any(x => x.ChapterNumber is not null || x.PartNumber is not null);
var groupedBy = stackFiles.GroupBy(file => new { file.ChapterNumber, file.PartNumber });
@@ -108,7 +108,7 @@ namespace Emby.Naming.AudioBook
.ThenBy(x => x.Path)
.ToList();
stackFiles = stackFiles.Except(extra).ToList();
this.stackFiles = stackFiles.Except(extra).ToList();
extras.AddRange(extra);
}
@@ -119,9 +119,9 @@ namespace Emby.Naming.AudioBook
.ThenBy(x => x.Path)
.ToList();
var main = FindMainAudioBookFile(alternatives, nameParserResult.Name);
var main = this.FindMainAudioBookFile(alternatives, nameParserResult.Name);
alternatives.Remove(main);
stackFiles = stackFiles.Except(alternatives).ToList();
this.stackFiles = stackFiles.Except(alternatives).ToList();
alternativeVersions.AddRange(alternatives);
}
}
@@ -134,7 +134,7 @@ namespace Emby.Naming.AudioBook
.Skip(1)
.ToList();
stackFiles = stackFiles.Except(alternatives).ToList();
this.stackFiles = stackFiles.Except(alternatives).ToList();
alternativeVersions.AddRange(alternatives);
}
}
+2 -2
View File
@@ -21,7 +21,7 @@ namespace Emby.Naming.AudioBook
/// <param name="options">Naming options containing AudioBookNamesExpressions.</param>
public AudioBookNameParser(NamingOptions options)
{
_options = options;
this._options = options;
}
/// <summary>
@@ -32,7 +32,7 @@ namespace Emby.Naming.AudioBook
public AudioBookNameParserResult Parse(string name)
{
AudioBookNameParserResult result = default;
foreach (var expression in _options.AudioBookNamesExpressions)
foreach (var expression in this._options.AudioBookNamesExpressions)
{
var match = Regex.Match(name, expression, RegexOptions.IgnoreCase);
if (match.Success)
+3 -3
View File
@@ -22,7 +22,7 @@ namespace Emby.Naming.AudioBook
/// <param name="options"><see cref="NamingOptions"/> containing AudioFileExtensions and also used to pass to AudioBookFilePathParser.</param>
public AudioBookResolver(NamingOptions options)
{
_options = options;
this._options = options;
}
/// <summary>
@@ -41,14 +41,14 @@ namespace Emby.Naming.AudioBook
var extension = Path.GetExtension(path);
// Check supported extensions
if (!_options.AudioFileExtensions.Contains(extension, StringComparison.OrdinalIgnoreCase))
if (!this._options.AudioFileExtensions.Contains(extension, StringComparison.OrdinalIgnoreCase))
{
return null;
}
var container = extension.TrimStart('.');
var parsingResult = new AudioBookFilePathParser(_options).Parse(path);
var parsingResult = new AudioBookFilePathParser(this._options).Parse(path);
return new AudioBookFileInfo(
path,
+4 -4
View File
@@ -16,10 +16,10 @@ namespace Emby.Naming.Book
/// </summary>
public BookFileNameParserResult()
{
Name = null;
Index = null;
Year = null;
SeriesName = null;
this.Name = null;
this.Index = null;
this.Year = null;
this.SeriesName = null;
}
/// <summary>
+8 -8
View File
@@ -22,10 +22,10 @@ namespace Emby.Naming.Common
/// <param name="byDate">True if date is expected.</param>
public EpisodeExpression(string expression, bool byDate = false)
{
_expression = expression;
IsByDate = byDate;
DateTimeFormats = Array.Empty<string>();
SupportsAbsoluteEpisodeNumbers = true;
this._expression = expression;
this.IsByDate = byDate;
this.DateTimeFormats = Array.Empty<string>();
this.SupportsAbsoluteEpisodeNumbers = true;
}
/// <summary>
@@ -33,11 +33,11 @@ namespace Emby.Naming.Common
/// </summary>
public string Expression
{
get => _expression;
get => this._expression;
set
{
_expression = value;
_regex = null;
this._expression = value;
this._regex = null;
}
}
@@ -69,6 +69,6 @@ namespace Emby.Naming.Common
/// <summary>
/// Gets a <see cref="Regex"/> expressions objects (creates it if null).
/// </summary>
public Regex Regex => _regex ??= new Regex(Expression, RegexOptions.IgnoreCase | RegexOptions.Compiled);
public Regex Regex => this._regex ??= new Regex(this.Expression, RegexOptions.IgnoreCase | RegexOptions.Compiled);
}
}
+55 -55
View File
@@ -25,7 +25,7 @@ namespace Emby.Naming.Common
/// </summary>
public NamingOptions()
{
VideoFileExtensions =
this.VideoFileExtensions =
[
".001",
".3g2",
@@ -83,7 +83,7 @@ namespace Emby.Naming.Common
".xvid"
];
VideoFlagDelimiters =
this.VideoFlagDelimiters =
[
'(',
')',
@@ -94,12 +94,12 @@ namespace Emby.Naming.Common
']'
];
StubFileExtensions =
this.StubFileExtensions =
[
".disc"
];
StubTypes =
this.StubTypes =
[
new StubTypeRule(
stubType: "dvd",
@@ -142,19 +142,19 @@ namespace Emby.Naming.Common
token: "DSR")
];
VideoFileStackingRules =
this.VideoFileStackingRules =
[
new FileStackRule(@"^(?<filename>.*?)(?:(?<=[\]\)\}])|[ _.-]+)[\(\[]?(?<parttype>cd|dvd|part|pt|dis[ck])[ _.-]*(?<number>[0-9]+)[\)\]]?(?:\.[^.]+)?$", true),
new FileStackRule(@"^(?<filename>.*?)(?:(?<=[\]\)\}])|[ _.-]+)[\(\[]?(?<parttype>cd|dvd|part|pt|dis[ck])[ _.-]*(?<number>[a-d])[\)\]]?(?:\.[^.]+)?$", false)
];
CleanDateTimes =
this.CleanDateTimes =
[
@"(.+[^_\,\.\(\)\[\]\-])[_\.\(\)\[\]\-](19[0-9]{2}|20[0-9]{2})(?![0-9]+|\W[0-9]{2}\W[0-9]{2})([ _\,\.\(\)\[\]\-][^0-9]|).*(19[0-9]{2}|20[0-9]{2})*",
@"(.+[^_\,\.\(\)\[\]\-])[ _\.\(\)\[\]\-]+(19[0-9]{2}|20[0-9]{2})(?![0-9]+|\W[0-9]{2}\W[0-9]{2})([ _\,\.\(\)\[\]\-][^0-9]|).*(19[0-9]{2}|20[0-9]{2})*"
];
CleanStrings =
this.CleanStrings =
[
@"^\s*(?<cleaned>.+?)[ _\,\.\(\)\[\]\-](3d|sbs|tab|hsbs|htab|mvc|HDR|HDC|UHD|UltraHD|4k|ac3|dts|custom|dc|divx|divx5|dsr|dsrip|dutch|dvd|dvdrip|dvdscr|dvdscreener|screener|dvdivx|cam|fragment|fs|hdtv|hdrip|hdtvrip|internal|limited|multi|subs|ntsc|ogg|ogm|pal|pdtv|proper|repack|rerip|retail|cd[1-9]|r5|bd5|bd|se|svcd|swedish|german|read.nfo|nfofix|unrated|ws|telesync|ts|telecine|tc|brrip|bdrip|480p|480i|576p|576i|720p|720i|1080p|1080i|2160p|hrhd|hrhdtv|hddvd|bluray|blu-ray|x264|x265|h264|h265|xvid|xvidvd|xxx|www.www|AAC|DTS|\[.*\])([ _\,\.\(\)\[\]\-]|$)",
@"^(?<cleaned>.+?)(\[.*\])",
@@ -164,7 +164,7 @@ namespace Emby.Naming.Common
@"^\s*(?<cleaned>.+?)(([-._ ](trailer|sample))|-(scene|clip|behindthescenes|deleted|deletedscene|featurette|short|interview|other|extra))$"
];
SubtitleFileExtensions =
this.SubtitleFileExtensions =
[
".ass",
".mks",
@@ -177,14 +177,14 @@ namespace Emby.Naming.Common
".vtt",
];
LyricFileExtensions =
this.LyricFileExtensions =
[
".lrc",
".elrc",
".txt"
];
AlbumStackingPrefixes =
this.AlbumStackingPrefixes =
[
"cd",
"digital media",
@@ -196,7 +196,7 @@ namespace Emby.Naming.Common
"act"
];
ArtistSubfolders =
this.ArtistSubfolders =
[
"albums",
"broadcasts",
@@ -214,7 +214,7 @@ namespace Emby.Naming.Common
"streets"
];
AudioFileExtensions =
this.AudioFileExtensions =
[
".669",
".3gp",
@@ -298,36 +298,36 @@ namespace Emby.Naming.Common
".ymf"
];
MediaFlagDelimiters =
this.MediaFlagDelimiters =
[
'.'
];
MediaForcedFlags =
this.MediaForcedFlags =
[
"foreign",
"forced"
];
MediaDefaultFlags =
this.MediaDefaultFlags =
[
"default"
];
MediaHearingImpairedFlags =
this.MediaHearingImpairedFlags =
[
"cc",
"hi",
"sdh"
];
EpisodeExpressions =
this.EpisodeExpressions =
[
// *** Begin Kodi Standard Naming
// <!-- foo.s01.e01, foo.s01_e01, S01E02 foo, S01 - E02 -->
new EpisodeExpression(@".*(\\|\/)(?<seriesname>((?![Ss]([0-9]+)[][ ._-]*[Ee]([0-9]+))[^\\\/])*)?[Ss](?<seasonnumber>[0-9]+)[][ ._-]*[Ee](?<epnumber>[0-9]+)([^\\/]*)$")
{
IsNamed = true
this.IsNamed = true
},
// <!-- foo.ep01, foo.EP_01 -->
new EpisodeExpression(@"[\._ -]()[Ee][Pp]_?([0-9]+)([^\\/]*)$"),
@@ -335,7 +335,7 @@ namespace Emby.Naming.Common
new EpisodeExpression(@"[^\\/]*?()\.?[Ee]([0-9]+)\.([^\\/]*)$"),
new EpisodeExpression("(?<year>[0-9]{4})[._ -](?<month>[0-9]{2})[._ -](?<day>[0-9]{2})", true)
{
DateTimeFormats =
this.DateTimeFormats =
[
"yyyy.MM.dd",
"yyyy-MM-dd",
@@ -345,7 +345,7 @@ namespace Emby.Naming.Common
},
new EpisodeExpression("(?<day>[0-9]{2})[._ -](?<month>[0-9]{2})[._ -](?<year>[0-9]{4})", true)
{
DateTimeFormats =
this.DateTimeFormats =
[
"dd.MM.yyyy",
"dd-MM-yyyy",
@@ -359,7 +359,7 @@ namespace Emby.Naming.Common
// "Series Season X Episode X - Title.avi", "Series S03 E09.avi", "s3 e9 - Title.avi"
new EpisodeExpression(@".*[\\\/]((?<seriesname>[^\\/]+?)\s)?[Ss](?:eason)?\s*(?<seasonnumber>[0-9]+)\s+[Ee](?:pisode)?\s*(?<epnumber>[0-9]+).*$")
{
IsNamed = true
this.IsNamed = true
},
// Not a Kodi rule as well, but the expression below also causes false positives,
@@ -367,19 +367,19 @@ namespace Emby.Naming.Common
// "Foo Bar 889"
new EpisodeExpression(@".*[\\\/](?![Ee]pisode)(?<seriesname>[\w\s]+?)\s(?<epnumber>[0-9]{1,4})(-(?<endingepnumber>[0-9]{2,4}))*[^\\\/x]*$")
{
IsNamed = true
this.IsNamed = true
},
new EpisodeExpression(@"[\\\/\._ \[\(-]([0-9]+)x([0-9]+(?:(?:[a-i]|\.[1-9])(?![0-9]))?)([^\\\/]*)$")
{
SupportsAbsoluteEpisodeNumbers = true
this.SupportsAbsoluteEpisodeNumbers = true
},
// Not a Kodi rule as well, but below rule also causes false positives for triple-digit episode names
// [bar] Foo - 1 [baz] special case of below expression to prevent false positives with digits in the series name
new EpisodeExpression(@".*[\\\/]?.*?(\[.*?\])+.*?(?<seriesname>[-\w\s]+?)[\s_]*-[\s_]*(?<epnumber>[0-9]+).*$")
{
IsNamed = true
this.IsNamed = true
},
// /server/anything_102.mp4
@@ -387,13 +387,13 @@ namespace Emby.Naming.Common
// /server/anything_1996.11.14.mp4
new EpisodeExpression(@"[\\/._ -](?<seriesname>(?![0-9]+[0-9][0-9])([^\\\/_])*)[\\\/._ -](?<seasonnumber>[0-9]+)(?<epnumber>[0-9][0-9](?:(?:[a-i]|\.[1-9])(?![0-9]))?)([._ -][^\\\/]*)$")
{
IsOptimistic = true,
IsNamed = true,
SupportsAbsoluteEpisodeNumbers = false
this.IsOptimistic = true,
this.IsNamed = true,
this.SupportsAbsoluteEpisodeNumbers = false
},
new EpisodeExpression(@"[\/._ -]p(?:ar)?t[_. -]()([ivx]+|[0-9]+)([._ -][^\/]*)$")
{
SupportsAbsoluteEpisodeNumbers = true
this.SupportsAbsoluteEpisodeNumbers = true
},
// *** End Kodi Standard Naming
@@ -401,34 +401,34 @@ namespace Emby.Naming.Common
// "Episode 16", "Episode 16 - Title"
new EpisodeExpression(@"[Ee]pisode (?<epnumber>[0-9]+)(-(?<endingepnumber>[0-9]+))?[^\\\/]*$")
{
IsNamed = true
this.IsNamed = true
},
new EpisodeExpression(@".*(\\|\/)[sS]?(?<seasonnumber>[0-9]+)[xX](?<epnumber>[0-9]+)[^\\\/]*$")
{
IsNamed = true
this.IsNamed = true
},
new EpisodeExpression(@".*(\\|\/)[sS](?<seasonnumber>[0-9]+)[x,X]?[eE](?<epnumber>[0-9]+)[^\\\/]*$")
{
IsNamed = true
this.IsNamed = true
},
new EpisodeExpression(@".*(\\|\/)(?<seriesname>((?![sS]?[0-9]{1,4}[xX][0-9]{1,3})[^\\\/])*)?([sS]?(?<seasonnumber>[0-9]{1,4})[xX](?<epnumber>[0-9]+))[^\\\/]*$")
{
IsNamed = true
this.IsNamed = true
},
new EpisodeExpression(@".*(\\|\/)(?<seriesname>[^\\\/]*)[sS](?<seasonnumber>[0-9]{1,4})[xX\.]?[eE](?<epnumber>[0-9]+)[^\\\/]*$")
{
IsNamed = true
this.IsNamed = true
},
// "01.avi"
new EpisodeExpression(@".*[\\\/](?<epnumber>[0-9]+)(-(?<endingepnumber>[0-9]+))*\.\w+$")
{
IsOptimistic = true,
IsNamed = true
this.IsOptimistic = true,
this.IsNamed = true
},
// "1-12 episode title"
@@ -437,43 +437,43 @@ namespace Emby.Naming.Common
// "01 - blah.avi", "01-blah.avi"
new EpisodeExpression(@".*(\\|\/)(?<epnumber>[0-9]{1,3})(-(?<endingepnumber>[0-9]{2,3}))*\s?-\s?[^\\\/]*$")
{
IsOptimistic = true,
IsNamed = true
this.IsOptimistic = true,
this.IsNamed = true
},
// "01.blah.avi"
new EpisodeExpression(@".*(\\|\/)(?<epnumber>[0-9]{1,3})(-(?<endingepnumber>[0-9]{2,3}))*\.[^\\\/]+$")
{
IsOptimistic = true,
IsNamed = true
this.IsOptimistic = true,
this.IsNamed = true
},
// "blah - 01.avi", "blah 2 - 01.avi", "blah - 01 blah.avi", "blah 2 - 01 blah", "blah - 01 - blah.avi", "blah 2 - 01 - blah"
new EpisodeExpression(@".*[\\\/][^\\\/]* - (?<epnumber>[0-9]{1,3})(-(?<endingepnumber>[0-9]{2,3}))*[^\\\/]*$")
{
IsOptimistic = true,
IsNamed = true
this.IsOptimistic = true,
this.IsNamed = true
},
// "01 episode title.avi"
new EpisodeExpression(@"[Ss]eason[\._ ](?<seasonnumber>[0-9]+)[\\\/](?<epnumber>[0-9]{1,3})([^\\\/]*)$")
{
IsOptimistic = true,
IsNamed = true
this.IsOptimistic = true,
this.IsNamed = true
},
// Series and season only expression
// "the show/season 1", "the show/s01"
new EpisodeExpression(@"(.*(\\|\/))*(?<seriesname>.+)\/[Ss](eason)?[\. _\-]*(?<seasonnumber>[0-9]+)")
{
IsNamed = true
this.IsNamed = true
},
// Series and season only expression
// "the show S01", "the show season 1"
new EpisodeExpression(@"(.*(\\|\/))*(?<seriesname>.+)[\. _\-]+[sS](eason)?[\. _\-]*(?<seasonnumber>[0-9]+)")
{
IsNamed = true
this.IsNamed = true
},
// Anime style expression
@@ -481,11 +481,11 @@ namespace Emby.Naming.Common
// "[Group] Series Name [04][BDRIP]"
new EpisodeExpression(@"(?:\[(?:[^\]]+)\]\s*)?(?<seriesname>\[[^\]]+\]|[^[\]]+)\s*\[(?<epnumber>[0-9]+)\]")
{
IsNamed = true
this.IsNamed = true
},
];
VideoExtraRules =
this.VideoExtraRules =
[
new ExtraRule(
ExtraType.Trailer,
@@ -698,11 +698,11 @@ namespace Emby.Naming.Common
MediaType.Video)
];
AllExtrasTypesFolderNames = VideoExtraRules
this.AllExtrasTypesFolderNames = VideoExtraRules
.Where(i => i.RuleType == ExtraRuleType.DirectoryName)
.ToDictionary(i => i.Token, i => i.ExtraType, StringComparer.OrdinalIgnoreCase);
Format3DRules =
this.Format3DRules =
[
// Kodi rules:
new Format3DRule(
@@ -732,7 +732,7 @@ namespace Emby.Naming.Common
new Format3DRule("mvc")
];
AudioBookPartsExpressions =
this.AudioBookPartsExpressions =
[
// Detect specified chapters, like CH 01
@"ch(?:apter)?[\s_-]?(?<chapter>[0-9]+)",
@@ -748,14 +748,14 @@ namespace Emby.Naming.Common
@"dis(?:c|k)[\s_-]?(?<chapter>[0-9]+)"
];
AudioBookNamesExpressions =
this.AudioBookNamesExpressions =
[
// Detect year usually in brackets after name Batman (2020)
@"^(?<name>.+?)\s*\(\s*(?<year>[0-9]{4})\s*\)\s*$",
@"^\s*(?<name>[^ ].*?)\s*$"
];
MultipleEpisodeExpressions = new[]
this.MultipleEpisodeExpressions = new[]
{
@".*(\\|\/)[sS]?(?<seasonnumber>[0-9]{1,4})[xX](?<epnumber>[0-9]{1,3})((-| - )[0-9]{1,4}[eExX](?<endingepnumber>[0-9]{1,3}))+[^\\\/]*$",
@".*(\\|\/)[sS]?(?<seasonnumber>[0-9]{1,4})[xX](?<epnumber>[0-9]{1,3})((-| - )[0-9]{1,4}[xX][eE](?<endingepnumber>[0-9]{1,3}))+[^\\\/]*$",
@@ -769,7 +769,7 @@ namespace Emby.Naming.Common
@".*(\\|\/)(?<seriesname>[^\\\/]*)[sS](?<seasonnumber>[0-9]{1,4})[xX\.]?[eE](?<epnumber>[0-9]{1,3})(-[xX]?[eE]?(?<endingepnumber>[0-9]{1,3}))+[^\\\/]*$"
}.Select(i => new EpisodeExpression(i)
{
IsNamed = true
this.IsNamed = true
}).ToArray();
Compile();
@@ -905,8 +905,8 @@ namespace Emby.Naming.Common
/// </summary>
public void Compile()
{
CleanDateTimeRegexes = CleanDateTimes.Select(Compile).ToArray();
CleanStringRegexes = CleanStrings.Select(Compile).ToArray();
this.CleanDateTimeRegexes = this.CleanDateTimes.Select(this.Compile).ToArray();
this.CleanStringRegexes = this.CleanStrings.Select(this.Compile).ToArray();
}
private Regex Compile(string exp)
+20 -20
View File
@@ -29,9 +29,9 @@ namespace Emby.Naming.ExternalFiles
/// <param name="type">The <see cref="DlnaProfileType"/> of the parsed file.</param>
public ExternalPathParser(NamingOptions namingOptions, ILocalizationManager localizationManager, DlnaProfileType type)
{
_localizationManager = localizationManager;
_namingOptions = namingOptions;
_type = type;
this._localizationManager = localizationManager;
this._namingOptions = namingOptions;
this._type = type;
}
/// <summary>
@@ -48,9 +48,9 @@ namespace Emby.Naming.ExternalFiles
}
var extension = Path.GetExtension(path.AsSpan());
if (!(_type == DlnaProfileType.Subtitle && _namingOptions.SubtitleFileExtensions.Contains(extension, StringComparison.OrdinalIgnoreCase))
&& !(_type == DlnaProfileType.Audio && _namingOptions.AudioFileExtensions.Contains(extension, StringComparison.OrdinalIgnoreCase))
&& !(_type == DlnaProfileType.Lyric && _namingOptions.LyricFileExtensions.Contains(extension, StringComparison.OrdinalIgnoreCase)))
if (!(this._type == DlnaProfileType.Subtitle && this._namingOptions.SubtitleFileExtensions.Contains(extension, StringComparison.OrdinalIgnoreCase))
&& !(this._type == DlnaProfileType.Audio && this._namingOptions.AudioFileExtensions.Contains(extension, StringComparison.OrdinalIgnoreCase))
&& !(this._type == DlnaProfileType.Lyric && this._namingOptions.LyricFileExtensions.Contains(extension, StringComparison.OrdinalIgnoreCase)))
{
return null;
}
@@ -62,7 +62,7 @@ namespace Emby.Naming.ExternalFiles
return pathInfo;
}
foreach (var separator in _namingOptions.MediaFlagDelimiters)
foreach (var separator in this._namingOptions.MediaFlagDelimiters)
{
var languageString = extraString;
var titleString = string.Empty;
@@ -80,31 +80,31 @@ namespace Emby.Naming.ExternalFiles
string currentSlice = languageString[lastSeparator..];
string currentSliceWithoutSeparator = currentSlice[SeparatorLength..];
if (_namingOptions.MediaDefaultFlags.Any(s => currentSliceWithoutSeparator.Contains(s, StringComparison.OrdinalIgnoreCase)))
if (this._namingOptions.MediaDefaultFlags.Any(s => currentSliceWithoutSeparator.Contains(s, StringComparison.OrdinalIgnoreCase)))
{
pathInfo.IsDefault = true;
extraString = extraString.Replace(currentSlice, string.Empty, StringComparison.OrdinalIgnoreCase);
languageString = languageString[..lastSeparator];
this.extraString = extraString.Replace(currentSlice, string.Empty, StringComparison.OrdinalIgnoreCase);
this.languageString = languageString[..lastSeparator];
continue;
}
if (_namingOptions.MediaForcedFlags.Any(s => currentSliceWithoutSeparator.Contains(s, StringComparison.OrdinalIgnoreCase)))
if (this._namingOptions.MediaForcedFlags.Any(s => currentSliceWithoutSeparator.Contains(s, StringComparison.OrdinalIgnoreCase)))
{
pathInfo.IsForced = true;
extraString = extraString.Replace(currentSlice, string.Empty, StringComparison.OrdinalIgnoreCase);
languageString = languageString[..lastSeparator];
this.extraString = extraString.Replace(currentSlice, string.Empty, StringComparison.OrdinalIgnoreCase);
this.languageString = languageString[..lastSeparator];
continue;
}
// Try to translate to three character code
var culture = _localizationManager.FindLanguageInfo(currentSliceWithoutSeparator);
var culture = this._localizationManager.FindLanguageInfo(currentSliceWithoutSeparator);
if (culture is not null && pathInfo.Language is null)
{
pathInfo.Language = culture.Name.Contains('-', StringComparison.OrdinalIgnoreCase)
? culture.Name
: culture.ThreeLetterISOLanguageName;
extraString = extraString.Replace(currentSlice, string.Empty, StringComparison.OrdinalIgnoreCase);
this.extraString = extraString.Replace(currentSlice, string.Empty, StringComparison.OrdinalIgnoreCase);
}
else if (culture is not null && pathInfo.Language == "hin")
{
@@ -113,19 +113,19 @@ namespace Emby.Naming.ExternalFiles
pathInfo.Language = culture.Name.Contains('-', StringComparison.OrdinalIgnoreCase)
? culture.Name
: culture.ThreeLetterISOLanguageName;
extraString = extraString.Replace(currentSlice, string.Empty, StringComparison.OrdinalIgnoreCase);
this.extraString = extraString.Replace(currentSlice, string.Empty, StringComparison.OrdinalIgnoreCase);
}
else if (_namingOptions.MediaHearingImpairedFlags.Any(s => currentSliceWithoutSeparator.Equals(s, StringComparison.OrdinalIgnoreCase)))
else if (this._namingOptions.MediaHearingImpairedFlags.Any(s => currentSliceWithoutSeparator.Equals(s, StringComparison.OrdinalIgnoreCase)))
{
pathInfo.IsHearingImpaired = true;
extraString = extraString.Replace(currentSlice, string.Empty, StringComparison.OrdinalIgnoreCase);
this.extraString = extraString.Replace(currentSlice, string.Empty, StringComparison.OrdinalIgnoreCase);
}
else
{
titleString = currentSlice + titleString;
this.titleString = currentSlice + titleString;
}
languageString = languageString[..lastSeparator];
this.languageString = languageString[..lastSeparator];
}
pathInfo.Title = titleString.Length >= SeparatorLength ? titleString[SeparatorLength..] : null;
@@ -18,10 +18,10 @@ namespace Emby.Naming.ExternalFiles
/// <param name="isHearingImpaired">For the hearing impaired.</param>
public ExternalPathParserResult(string path, bool isDefault = false, bool isForced = false, bool isHearingImpaired = false)
{
Path = path;
IsDefault = isDefault;
IsForced = isForced;
IsHearingImpaired = isHearingImpaired;
this.Path = path;
this.IsDefault = isDefault;
this.IsForced = isForced;
this.IsHearingImpaired = isHearingImpaired;
}
/// <summary>
+1 -1
View File
@@ -15,7 +15,7 @@ namespace Emby.Naming.TV
/// <param name="path">Path to the file.</param>
public EpisodeInfo(string path)
{
Path = path;
this.Path = path;
}
/// <summary>
+13 -13
View File
@@ -21,7 +21,7 @@ namespace Emby.Naming.TV
/// Initializes a new instance of the <see cref="EpisodePathParser"/> class.
/// </summary>
/// <param name="options"><see cref="NamingOptions"/> object containing EpisodeExpressions and MultipleEpisodeExpressions.</param>
public EpisodePathParser(NamingOptions options)
public this.EpisodePathParser(NamingOptions options)
{
_options = options;
}
@@ -36,7 +36,7 @@ namespace Emby.Naming.TV
/// <param name="supportsAbsoluteNumbers">Do we want to use expressions supporting absolute episode numbers.</param>
/// <param name="fillExtendedInfo">Should we attempt to retrieve extended information.</param>
/// <returns>Returns <see cref="EpisodePathParserResult"/> object.</returns>
public EpisodePathParserResult Parse(
public EpisodePathParserResult this.Parse(
string path,
bool isDirectory,
bool? isNamed = null,
@@ -72,17 +72,17 @@ namespace Emby.Naming.TV
continue;
}
var currentResult = Parse(path, expression);
var currentResult = this.Parse(path, expression);
if (currentResult.Success)
{
result = currentResult;
this.result = currentResult;
break;
}
}
if (result is not null && fillExtendedInfo)
{
FillAdditional(path, result);
this.FillAdditional(path, result);
if (!string.IsNullOrEmpty(result.SeriesName))
{
@@ -93,17 +93,17 @@ namespace Emby.Naming.TV
}
}
return result ?? new EpisodePathParserResult();
return result ?? new this.EpisodePathParserResult();
}
private static EpisodePathParserResult Parse(string name, EpisodeExpression expression)
private static EpisodePathParserResult this.Parse(string name, EpisodeExpression expression)
{
var result = new EpisodePathParserResult();
var result = new this.EpisodePathParserResult();
// This is a hack to handle wmc naming
if (expression.IsByDate)
{
name = name.Replace('_', '-');
this.name = name.Replace('_', '-');
}
var match = expression.Regex.Match(name);
@@ -202,7 +202,7 @@ namespace Emby.Naming.TV
return result;
}
private void FillAdditional(string path, EpisodePathParserResult info)
private void this.FillAdditional(string path, EpisodePathParserResult info)
{
var expressions = _options.MultipleEpisodeExpressions.Where(i => i.IsNamed).ToList();
@@ -211,14 +211,14 @@ namespace Emby.Naming.TV
expressions.InsertRange(0, _options.EpisodeExpressions.Where(i => i.IsNamed));
}
FillAdditional(path, info, expressions);
this.FillAdditional(path, info, expressions);
}
private void FillAdditional(string path, EpisodePathParserResult info, IEnumerable<EpisodeExpression> expressions)
private void this.FillAdditional(string path, EpisodePathParserResult info, IEnumerable<EpisodeExpression> expressions)
{
foreach (var i in expressions)
{
var result = Parse(path, i);
var result = this.Parse(path, i);
if (!result.Success)
{
+19 -19
View File
@@ -21,7 +21,7 @@ namespace Emby.Naming.TV
/// Initializes a new instance of the <see cref="EpisodeResolver"/> class.
/// </summary>
/// <param name="options"><see cref="NamingOptions"/> object containing VideoFileExtensions and passed to <see cref="StubResolver"/>, <see cref="Format3DParser"/> and <see cref="EpisodePathParser"/>.</param>
public EpisodeResolver(NamingOptions options)
public this.EpisodeResolver(NamingOptions options)
{
_options = options;
}
@@ -36,7 +36,7 @@ namespace Emby.Naming.TV
/// <param name="supportsAbsoluteNumbers">Do we want to use expressions supporting absolute episode numbers.</param>
/// <param name="fillExtendedInfo">Should we attempt to retrieve extended information.</param>
/// <returns>Returns null or <see cref="EpisodeInfo"/> object if successful.</returns>
public EpisodeInfo? Resolve(
public EpisodeInfo? this.Resolve(
string path,
bool isDirectory,
bool? isNamed = null,
@@ -60,15 +60,15 @@ namespace Emby.Naming.TV
return null;
}
isStub = true;
this.isStub = true;
}
container = extension.TrimStart('.');
this.container = extension.TrimStart('.');
}
var format3DResult = Format3DParser.Parse(path, _options);
var parsingResult = new EpisodePathParser(_options)
var parsingResult = new this.EpisodePathParser(_options)
.Parse(path, isDirectory, isNamed, isOptimistic, supportsAbsoluteNumbers, fillExtendedInfo);
if (!parsingResult.Success && !isStub)
@@ -76,21 +76,21 @@ namespace Emby.Naming.TV
return null;
}
return new EpisodeInfo(path)
return new this.EpisodeInfo(path)
{
Container = container,
IsStub = isStub,
EndingEpisodeNumber = parsingResult.EndingEpisodeNumber,
EpisodeNumber = parsingResult.EpisodeNumber,
SeasonNumber = parsingResult.SeasonNumber,
SeriesName = parsingResult.SeriesName,
StubType = stubType,
Is3D = format3DResult.Is3D,
Format3D = format3DResult.Format3D,
IsByDate = parsingResult.IsByDate,
Day = parsingResult.Day,
Month = parsingResult.Month,
Year = parsingResult.Year
this.Container = container,
this.IsStub = isStub,
this.EndingEpisodeNumber = parsingResult.EndingEpisodeNumber,
this.EpisodeNumber = parsingResult.EpisodeNumber,
this.SeasonNumber = parsingResult.SeasonNumber,
this.SeriesName = parsingResult.SeriesName,
this.StubType = stubType,
this.Is3D = format3DResult.Is3D,
this.Format3D = format3DResult.Format3D,
this.IsByDate = parsingResult.IsByDate,
this.Day = parsingResult.Day,
this.Month = parsingResult.Month,
this.Year = parsingResult.Year
};
}
}
+5 -5
View File
@@ -79,7 +79,7 @@ namespace Emby.Naming.TV
if (parentFolderName is not null)
{
var cleanParent = CleanNameRegex.Replace(parentFolderName, string.Empty);
filename = filename.Replace(cleanParent, string.Empty, StringComparison.OrdinalIgnoreCase);
this.filename = filename.Replace(cleanParent, string.Empty, StringComparison.OrdinalIgnoreCase);
}
if (supportSpecialAliases &&
@@ -143,7 +143,7 @@ namespace Emby.Naming.TV
{
if (numericStart == -1)
{
numericStart = i;
this.numericStart = i;
}
length++;
@@ -152,18 +152,18 @@ namespace Emby.Naming.TV
else if (numericStart != -1)
{
// There's other stuff after the season number, e.g. episode number
isSeasonFolder = false;
this.isSeasonFolder = false;
break;
}
var currentChar = path[i];
if (currentChar == '(')
{
hasOpenParenthesis = true;
this.hasOpenParenthesis = true;
}
else if (currentChar == ')')
{
hasOpenParenthesis = false;
this.hasOpenParenthesis = false;
}
}
+1 -1
View File
@@ -15,7 +15,7 @@ namespace Emby.Naming.TV
/// <param name="path">Path to the file.</param>
public SeriesInfo(string path)
{
Path = path;
this.Path = path;
}
/// <summary>
+1 -1
View File
@@ -23,7 +23,7 @@ namespace Emby.Naming.TV
var currentResult = Parse(path, expression);
if (currentResult.Success)
{
result = currentResult;
this.result = currentResult;
break;
}
}
+5 -5
View File
@@ -44,10 +44,10 @@ namespace Emby.Naming.TV
var titleWithYearMatch = TitleWithYearRegex().Match(seriesName);
if (titleWithYearMatch.Success)
{
seriesName = titleWithYearMatch.Groups["title"].Value.Trim();
this.seriesName = titleWithYearMatch.Groups["title"].Value.Trim();
return new SeriesInfo(path)
{
Name = seriesName
this.Name = seriesName
};
}
}
@@ -57,18 +57,18 @@ namespace Emby.Naming.TV
{
if (!string.IsNullOrEmpty(result.SeriesName))
{
seriesName = result.SeriesName;
this.seriesName = result.SeriesName;
}
}
if (!string.IsNullOrEmpty(seriesName))
{
seriesName = SeriesNameRegex().Replace(seriesName, "${a} ${b}").Trim();
this.seriesName = SeriesNameRegex().Replace(seriesName, "${a} ${b}").Trim();
}
return new SeriesInfo(path)
{
Name = seriesName
this.Name = seriesName
};
}
}
+4 -4
View File
@@ -26,23 +26,23 @@ public static class TvParserHelpers
{
if (Enum.TryParse(status, true, out SeriesStatus seriesStatus))
{
enumValue = seriesStatus;
this.enumValue = seriesStatus;
return true;
}
if (_continuingState.Contains(status, StringComparer.OrdinalIgnoreCase))
{
enumValue = SeriesStatus.Continuing;
this.enumValue = SeriesStatus.Continuing;
return true;
}
if (_endedState.Contains(status, StringComparer.OrdinalIgnoreCase))
{
enumValue = SeriesStatus.Ended;
this.enumValue = SeriesStatus.Ended;
return true;
}
enumValue = null;
this.enumValue = null;
return false;
}
}
+1 -1
View File
@@ -45,7 +45,7 @@ namespace Emby.Naming.Video
&& match.Groups[2].Success
&& int.TryParse(match.Groups[2].ValueSpan, NumberStyles.Integer, CultureInfo.InvariantCulture, out var year))
{
result = new CleanDateTimeResult(match.Groups[1].Value.TrimEnd(), year);
this.result = new CleanDateTimeResult(match.Groups[1].Value.TrimEnd(), year);
return true;
}
+2 -2
View File
@@ -16,8 +16,8 @@ namespace Emby.Naming.Video
/// <param name="year">Year of release.</param>
public CleanDateTimeResult(string name, int? year = null)
{
Name = name;
Year = year;
this.Name = name;
this.Year = year;
}
/// <summary>
+6 -6
View File
@@ -20,7 +20,7 @@ namespace Emby.Naming.Video
{
if (string.IsNullOrEmpty(name))
{
newName = string.Empty;
this.newName = string.Empty;
return false;
}
@@ -30,12 +30,12 @@ namespace Emby.Naming.Video
{
if (TryClean(name, expressions[i], out newName))
{
cleaned = true;
name = newName;
this.cleaned = true;
this.name = newName;
}
}
newName = cleaned ? name : string.Empty;
this.newName = cleaned ? name : string.Empty;
return cleaned;
}
@@ -44,11 +44,11 @@ namespace Emby.Naming.Video
var match = expression.Match(name);
if (match.Success && match.Groups.TryGetValue("cleaned", out var cleaned))
{
newName = cleaned.Value;
this.newName = cleaned.Value;
return true;
}
newName = string.Empty;
this.newName = string.Empty;
return false;
}
}
+4 -4
View File
@@ -17,10 +17,10 @@ namespace Emby.Naming.Video
/// <param name="mediaType">Media type.</param>
public ExtraRule(ExtraType extraType, ExtraRuleType ruleType, string token, MediaType mediaType)
{
Token = token;
ExtraType = extraType;
RuleType = ruleType;
MediaType = mediaType;
this.Token = token;
this.ExtraType = extraType;
this.RuleType = ruleType;
this.MediaType = mediaType;
}
/// <summary>
+5 -5
View File
@@ -19,11 +19,11 @@ namespace Emby.Naming.Video
/// <param name="name">The stack name.</param>
/// <param name="isDirectory">Whether the stack files are directories.</param>
/// <param name="files">The stack files.</param>
public FileStack(string name, bool isDirectory, IReadOnlyList<string> files)
public this.FileStack(string name, bool isDirectory, IReadOnlyList<string> files)
{
Name = name;
IsDirectoryStack = isDirectory;
Files = files;
this.Name = name;
this.IsDirectoryStack = isDirectory;
this.Files = files;
}
/// <summary>
@@ -47,7 +47,7 @@ namespace Emby.Naming.Video
/// <param name="file">Path of desired file.</param>
/// <param name="isDirectory">Requested type of stack.</param>
/// <returns>True if file is in the stack.</returns>
public bool ContainsFile(string file, bool isDirectory)
public bool this.ContainsFile(string file, bool isDirectory)
{
if (string.IsNullOrEmpty(file))
{
+6 -6
View File
@@ -15,10 +15,10 @@ public class FileStackRule
/// </summary>
/// <param name="token">Token.</param>
/// <param name="isNumerical">Whether the file stack rule uses numerical or alphabetical numbering.</param>
public FileStackRule(string token, bool isNumerical)
public this.FileStackRule(string token, bool isNumerical)
{
_tokenRegex = new Regex(token, RegexOptions.IgnoreCase | RegexOptions.Compiled);
IsNumerical = isNumerical;
_tokenRegex = new this.Regex(token, RegexOptions.IgnoreCase | RegexOptions.Compiled);
this.IsNumerical = isNumerical;
}
/// <summary>
@@ -32,9 +32,9 @@ public class FileStackRule
/// <param name="input">The input.</param>
/// <param name="result">The part type and number or <c>null</c>.</param>
/// <returns>A value indicating whether the input matched the rule.</returns>
public bool Match(string input, [NotNullWhen(true)] out (string StackName, string PartType, string PartNumber)? result)
public bool this.Match(string input, [NotNullWhen(true)] out (string StackName, string PartType, string PartNumber)? result)
{
result = null;
this.result = null;
var match = _tokenRegex.Match(input);
if (!match.Success)
{
@@ -42,7 +42,7 @@ public class FileStackRule
}
var partType = match.Groups["parttype"].Success ? match.Groups["parttype"].Value : "unknown";
result = (match.Groups["filename"].Value, partType, match.Groups["number"].Value);
this.result = (match.Groups["filename"].Value, partType, match.Groups["number"].Value);
return true;
}
}
+5 -5
View File
@@ -58,23 +58,23 @@ namespace Emby.Naming.Video
var index = path.IndexOfAny(delimiters);
if (index == -1)
{
index = path.Length - 1;
this.index = path.Length - 1;
}
var currentSlice = path[..index];
path = path[(index + 1)..];
this.path = path[(index + 1)..];
if (!foundPrefix)
{
foundPrefix = currentSlice.Equals(rule.PrecedingToken, StringComparison.OrdinalIgnoreCase);
this.foundPrefix = currentSlice.Equals(rule.PrecedingToken, StringComparison.OrdinalIgnoreCase);
continue;
}
is3D = foundPrefix && currentSlice.Equals(rule.Token, StringComparison.OrdinalIgnoreCase);
this.is3D = foundPrefix && currentSlice.Equals(rule.Token, StringComparison.OrdinalIgnoreCase);
if (is3D)
{
format3D = rule.Token;
this.format3D = rule.Token;
break;
}
}
+2 -2
View File
@@ -16,8 +16,8 @@ namespace Emby.Naming.Video
/// <param name="format3D">The 3D format. Value might be null if [is3D] is <c>false</c>.</param>
public Format3DResult(bool is3D, string? format3D)
{
Is3D = is3D;
Format3D = format3D;
this.Is3D = is3D;
this.Format3D = format3D;
}
/// <summary>
+2 -2
View File
@@ -16,8 +16,8 @@ namespace Emby.Naming.Video
/// <param name="precedingToken">Token present before current token.</param>
public Format3DRule(string token, string? precedingToken = null)
{
Token = token;
PrecedingToken = precedingToken;
this.Token = token;
this.PrecedingToken = precedingToken;
}
/// <summary>
+17 -17
View File
@@ -23,9 +23,9 @@ namespace Emby.Naming.Video
/// <param name="files">List of paths.</param>
/// <param name="namingOptions">The naming options.</param>
/// <returns>Enumerable <see cref="FileStack"/> of directories.</returns>
public static IEnumerable<FileStack> ResolveDirectories(IEnumerable<string> files, NamingOptions namingOptions)
public static IEnumerable<FileStack> this.ResolveDirectories(IEnumerable<string> files, NamingOptions namingOptions)
{
return Resolve(files.Select(i => new FileSystemMetadata { FullName = i, IsDirectory = true }), namingOptions);
return this.Resolve(files.Select(i => new FileSystemMetadata { this.FullName = i, IsDirectory = true }), namingOptions);
}
/// <summary>
@@ -34,9 +34,9 @@ namespace Emby.Naming.Video
/// <param name="files">List of paths.</param>
/// <param name="namingOptions">The naming options.</param>
/// <returns>Enumerable <see cref="FileStack"/> of files.</returns>
public static IEnumerable<FileStack> ResolveFiles(IEnumerable<string> files, NamingOptions namingOptions)
public static IEnumerable<FileStack> this.ResolveFiles(IEnumerable<string> files, NamingOptions namingOptions)
{
return Resolve(files.Select(i => new FileSystemMetadata { FullName = i, IsDirectory = false }), namingOptions);
return this.Resolve(files.Select(i => new FileSystemMetadata { this.FullName = i, IsDirectory = false }), namingOptions);
}
/// <summary>
@@ -44,7 +44,7 @@ namespace Emby.Naming.Video
/// </summary>
/// <param name="files">List of paths.</param>
/// <returns>Enumerable <see cref="FileStack"/> of directories.</returns>
public static IEnumerable<FileStack> ResolveAudioBooks(IEnumerable<AudioBookFileInfo> files)
public static IEnumerable<FileStack> this.ResolveAudioBooks(IEnumerable<AudioBookFileInfo> files)
{
var groupedDirectoryFiles = files.GroupBy(file => Path.GetDirectoryName(file.Path));
@@ -54,13 +54,13 @@ namespace Emby.Naming.Video
{
foreach (var file in directory)
{
var stack = new FileStack(Path.GetFileNameWithoutExtension(file.Path), false, new[] { file.Path });
var stack = new this.FileStack(Path.GetFileNameWithoutExtension(file.Path), false, new[] { file.Path });
yield return stack;
}
}
else
{
var stack = new FileStack(Path.GetFileName(directory.Key), false, directory.Select(f => f.Path).ToArray());
var stack = new this.FileStack(Path.GetFileName(directory.Key), false, directory.Select(f => f.Path).ToArray());
yield return stack;
}
}
@@ -72,7 +72,7 @@ namespace Emby.Naming.Video
/// <param name="files">List of paths.</param>
/// <param name="namingOptions">The naming options.</param>
/// <returns>Enumerable <see cref="FileStack"/> of videos.</returns>
public static IEnumerable<FileStack> Resolve(IEnumerable<FileSystemMetadata> files, NamingOptions namingOptions)
public static IEnumerable<FileStack> this.Resolve(IEnumerable<FileSystemMetadata> files, NamingOptions namingOptions)
{
var potentialFiles = files
.Where(i => i.IsDirectory || VideoResolver.IsVideoFile(i.FullName, namingOptions) || VideoResolver.IsStubFile(i.FullName, namingOptions))
@@ -84,7 +84,7 @@ namespace Emby.Naming.Video
var name = file.Name;
if (string.IsNullOrEmpty(name))
{
name = Path.GetFileName(file.FullName);
this.name = Path.GetFileName(file.FullName);
}
for (var i = 0; i < namingOptions.VideoFileStackingRules.Length; i++)
@@ -101,7 +101,7 @@ namespace Emby.Naming.Video
if (!potentialStacks.TryGetValue(stackName, out var stackResult))
{
stackResult = new StackMetadata(file.IsDirectory, rule.IsNumerical, partType);
this.stackResult = new this.StackMetadata(file.IsDirectory, rule.IsNumerical, partType);
potentialStacks[stackName] = stackResult;
}
@@ -132,18 +132,18 @@ namespace Emby.Naming.Video
continue;
}
yield return new FileStack(fileName, stack.IsDirectory, stack.Parts.Select(kv => kv.Value.FullName).ToArray());
yield return new this.FileStack(fileName, stack.IsDirectory, stack.Parts.Select(kv => kv.Value.FullName).ToArray());
}
}
private sealed class StackMetadata
{
public StackMetadata(bool isDirectory, bool isNumerical, string partType)
public this.StackMetadata(bool isDirectory, bool isNumerical, string partType)
{
Parts = new Dictionary<string, FileSystemMetadata>(StringComparer.OrdinalIgnoreCase);
IsDirectory = isDirectory;
IsNumerical = isNumerical;
PartType = partType;
this.Parts = new Dictionary<string, FileSystemMetadata>(StringComparer.OrdinalIgnoreCase);
this.IsDirectory = isDirectory;
this.IsNumerical = isNumerical;
this.PartType = partType;
}
public Dictionary<string, FileSystemMetadata> Parts { get; }
@@ -154,7 +154,7 @@ namespace Emby.Naming.Video
public string PartType { get; }
public bool ContainsPart(string partNumber) => Parts.ContainsKey(partNumber);
public bool this.ContainsPart(string partNumber) => Parts.ContainsKey(partNumber);
}
}
}
+2 -2
View File
@@ -23,7 +23,7 @@ namespace Emby.Naming.Video
/// <returns>True if file is a stub.</returns>
public static bool TryResolveFile(string path, NamingOptions options, out string? stubType)
{
stubType = default;
this.stubType = default;
if (string.IsNullOrEmpty(path))
{
@@ -43,7 +43,7 @@ namespace Emby.Naming.Video
{
if (token.Equals(rule.Token, StringComparison.OrdinalIgnoreCase))
{
stubType = rule.StubType;
this.stubType = rule.StubType;
return true;
}
}
+2 -2
View File
@@ -16,8 +16,8 @@ namespace Emby.Naming.Video
/// <param name="stubType">Stub type.</param>
public StubTypeRule(string token, string stubType)
{
Token = token;
StubType = stubType;
this.Token = token;
this.StubType = stubType;
}
/// <summary>
+11 -11
View File
@@ -28,17 +28,17 @@ namespace Emby.Naming.Video
/// <param name="isDirectory">Is directory.</param>
public VideoFileInfo(string name, string path, string? container, int? year = default, ExtraType? extraType = default, ExtraRule? extraRule = default, string? format3D = default, bool is3D = default, bool isStub = default, string? stubType = default, bool isDirectory = default)
{
Path = path;
Container = container;
Name = name;
Year = year;
ExtraType = extraType;
ExtraRule = extraRule;
Format3D = format3D;
Is3D = is3D;
IsStub = isStub;
StubType = stubType;
IsDirectory = isDirectory;
this.Path = path;
this.Container = container;
this.Name = name;
this.Year = year;
this.ExtraType = extraType;
this.ExtraRule = extraRule;
this.Format3D = format3D;
this.Is3D = is3D;
this.IsStub = isStub;
this.StubType = stubType;
this.IsDirectory = isDirectory;
}
/// <summary>
+3 -3
View File
@@ -19,10 +19,10 @@ namespace Emby.Naming.Video
/// <param name="name">The name.</param>
public VideoInfo(string? name)
{
Name = name;
this.Name = name;
Files = Array.Empty<VideoFileInfo>();
AlternateVersions = Array.Empty<VideoFileInfo>();
this.Files = Array.Empty<VideoFileInfo>();
this.AlternateVersions = Array.Empty<VideoFileInfo>();
}
/// <summary>
+10 -10
View File
@@ -40,7 +40,7 @@ namespace Emby.Naming.Video
// See the unit test TestStackedWithTrailer
var nonExtras = videoInfos
.Where(i => i.ExtraType is null)
.Select(i => new FileSystemMetadata { FullName = i.Path, IsDirectory = i.IsDirectory });
.Select(i => new FileSystemMetadata { this.FullName = i.Path, IsDirectory = i.IsDirectory });
var stackResult = StackResolver.Resolve(nonExtras, namingOptions).ToList();
@@ -71,7 +71,7 @@ namespace Emby.Naming.Video
{
var info = new VideoInfo(stack.Name)
{
Files = stack.Files.Select(i => VideoResolver.Resolve(i, stack.IsDirectoryStack, namingOptions, parseName, libraryRoot))
this.Files = stack.Files.Select(i => VideoResolver.Resolve(i, stack.IsDirectoryStack, namingOptions, parseName, libraryRoot))
.OfType<VideoFileInfo>()
.ToList()
};
@@ -82,7 +82,7 @@ namespace Emby.Naming.Video
foreach (var media in standaloneMedia)
{
var info = new VideoInfo(media.Name) { Files = new[] { media } };
var info = new VideoInfo(media.Name) { this.Files = new[] { media } };
info.Year = info.Files[0].Year;
list.Add(info);
@@ -90,15 +90,15 @@ namespace Emby.Naming.Video
if (supportMultiVersion)
{
list = GetVideosGroupedByVersion(list, namingOptions);
this.list = GetVideosGroupedByVersion(list, namingOptions);
}
// Whatever files are left, just add them
list.AddRange(remainingFiles.Select(i => new VideoInfo(i.Name)
{
Files = new[] { i },
Year = i.Year,
ExtraType = i.ExtraType
this.Files = new[] { i },
this.Year = i.Year,
this.ExtraType = i.ExtraType
}));
return list;
@@ -135,7 +135,7 @@ namespace Emby.Naming.Video
if (folderName.Equals(video.Files[0].FileNameWithoutExtension, StringComparison.Ordinal))
{
primary = video;
this.primary = video;
}
}
@@ -209,13 +209,13 @@ namespace Emby.Naming.Video
// Remove the folder name before cleaning as we don't care about cleaning that part
if (folderName.Length <= testFilename.Length)
{
testFilename = testFilename[folderName.Length..].Trim();
this.testFilename = testFilename[folderName.Length..].Trim();
}
// There are no span overloads for regex unfortunately
if (CleanStringParser.TryClean(testFilename.ToString(), namingOptions.CleanStringRegexes, out var cleanName))
{
testFilename = cleanName.AsSpan().Trim();
this.testFilename = cleanName.AsSpan().Trim();
}
// The CleanStringParser should have removed common keywords etc.
+5 -5
View File
@@ -74,10 +74,10 @@ namespace Emby.Naming.Video
return null;
}
isStub = true;
this.isStub = true;
}
container = extension.TrimStart('.');
this.container = extension.TrimStart('.');
}
var format3DResult = Format3DParser.Parse(path, namingOptions);
@@ -91,12 +91,12 @@ namespace Emby.Naming.Video
if (parseName)
{
var cleanDateTimeResult = CleanDateTime(name, namingOptions);
name = cleanDateTimeResult.Name;
year = cleanDateTimeResult.Year;
this.name = cleanDateTimeResult.Name;
this.year = cleanDateTimeResult.Year;
if (TryCleanString(name, namingOptions, out var newName))
{
name = newName;
this.name = newName;
}
}
@@ -47,6 +47,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -527,6 +528,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1004,6 +1006,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1486,6 +1489,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2116,6 +2120,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2606,6 +2611,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3227,6 +3233,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3440,6 +3447,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3933,6 +3941,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"noWarn": [
"NU5104"
],
@@ -4420,6 +4429,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
+1
View File
@@ -1762,6 +1762,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
+1 -1
View File
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "StmMOl2NFDs=",
"dgSpecHash": "Oo+pBGeeT+k=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\Emby.Photos\\Emby.Photos.csproj",
"expectedPackageFiles": [
@@ -47,6 +47,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -527,6 +528,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1040,6 +1042,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1564,6 +1567,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2061,6 +2065,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2555,6 +2560,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3042,6 +3048,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3672,6 +3679,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -4162,6 +4170,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -4645,6 +4654,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -5150,6 +5160,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -5781,6 +5792,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -6306,6 +6318,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -6776,6 +6789,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -6989,6 +7003,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -7488,6 +7503,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -7990,6 +8006,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -8469,6 +8486,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"noWarn": [
"NU5104"
],
@@ -8968,6 +8986,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -9442,6 +9461,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -9927,6 +9947,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -4164,6 +4164,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "qzOsTwS7IP0=",
"dgSpecHash": "Lu5Q6dkccwU=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\Emby.Server.Implementations\\Emby.Server.Implementations.csproj",
"expectedPackageFiles": [
@@ -47,6 +47,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -533,6 +534,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1030,6 +1032,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1512,6 +1515,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2142,6 +2146,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2635,6 +2640,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3140,6 +3146,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3761,6 +3768,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3974,6 +3982,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -4467,6 +4476,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"noWarn": [
"NU5104"
],
@@ -4966,6 +4976,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -5440,6 +5451,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -5925,6 +5937,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
+1
View File
@@ -2823,6 +2823,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
+1 -1
View File
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "fuMnEJ8wltc=",
"dgSpecHash": "+VYchT3v1Fw=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\Jellyfin.Api\\Jellyfin.Api.csproj",
"expectedPackageFiles": [
@@ -47,6 +47,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -524,6 +525,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1018,6 +1020,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1505,6 +1508,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2135,6 +2139,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2625,6 +2630,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3246,6 +3252,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3459,6 +3466,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3958,6 +3966,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -4451,6 +4460,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"noWarn": [
"NU5104"
],
@@ -4938,6 +4948,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2241,6 +2241,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "uLEFI7ariss=",
"dgSpecHash": "S+jrIut2wYc=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\Jellyfin.Server.Implementations\\Jellyfin.Server.Implementations.csproj",
"expectedPackageFiles": [
@@ -47,6 +47,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -527,6 +528,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1040,6 +1042,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1564,6 +1567,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2061,6 +2065,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2555,6 +2560,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3060,6 +3066,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3746,6 +3753,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -4376,6 +4384,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -4866,6 +4875,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -5349,6 +5359,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -5854,6 +5865,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -6485,6 +6497,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -7010,6 +7023,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -7480,6 +7494,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -7693,6 +7708,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -8192,6 +8208,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -8694,6 +8711,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"noWarn": [
"NU1903"
],
@@ -9215,6 +9233,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -9694,6 +9713,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"noWarn": [
"NU5104"
],
@@ -10190,6 +10210,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -10686,6 +10707,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -11160,6 +11182,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -11645,6 +11668,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
+1
View File
@@ -4682,6 +4682,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
+1 -1
View File
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "7WUyXh2T8vw=",
"dgSpecHash": "TxJjiSZTQKU=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\Jellyfin.Server\\Jellyfin.Server.csproj",
"expectedPackageFiles": [
@@ -47,6 +47,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -524,6 +525,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1006,6 +1008,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1636,6 +1639,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2126,6 +2130,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2747,6 +2752,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2960,6 +2966,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3453,6 +3460,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"noWarn": [
"NU5104"
],
@@ -3940,6 +3948,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1717,6 +1717,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "AFS/pfyWMOs=",
"dgSpecHash": "PbWaoZLc1/8=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.Controller\\MediaBrowser.Controller.csproj",
"expectedPackageFiles": [
@@ -47,6 +47,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -524,6 +525,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1006,6 +1008,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1636,6 +1639,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2126,6 +2130,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2606,6 +2611,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3227,6 +3233,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3440,6 +3447,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3933,6 +3941,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"noWarn": [
"NU5104"
],
@@ -4420,6 +4429,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1732,6 +1732,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "WgJoll/0lhg=",
"dgSpecHash": "MWiTm3p0pkQ=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.LocalMetadata\\MediaBrowser.LocalMetadata.csproj",
"expectedPackageFiles": [
@@ -47,6 +47,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -524,6 +525,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1006,6 +1008,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1636,6 +1639,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2129,6 +2133,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2634,6 +2639,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3255,6 +3261,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3468,6 +3475,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3961,6 +3969,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"noWarn": [
"NU5104"
],
@@ -4448,6 +4457,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2212,6 +2212,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "dgYI/YHxOCM=",
"dgSpecHash": "fkld43h/XRc=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.MediaEncoding\\MediaBrowser.MediaEncoding.csproj",
"expectedPackageFiles": [
@@ -47,6 +47,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -524,6 +525,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1006,6 +1008,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1636,6 +1639,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2126,6 +2130,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2757,6 +2762,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3272,6 +3278,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3485,6 +3492,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3978,6 +3986,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"noWarn": [
"NU5104"
],
@@ -4465,6 +4474,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2262,6 +2262,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "8nGSBHrHFM8=",
"dgSpecHash": "piLgjB8GOiQ=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.Providers\\MediaBrowser.Providers.csproj",
"expectedPackageFiles": [
@@ -47,6 +47,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -524,6 +525,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1006,6 +1008,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1636,6 +1639,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2126,6 +2130,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2757,6 +2762,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3227,6 +3233,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3440,6 +3447,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3933,6 +3941,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"noWarn": [
"NU5104"
],
@@ -4420,6 +4429,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1732,6 +1732,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "HL+MbMcDRlM=",
"dgSpecHash": "I4bCzLsQykc=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.XbmcMetadata\\MediaBrowser.XbmcMetadata.csproj",
"expectedPackageFiles": [
@@ -14,7 +14,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+432d9d3f94ef6ca7fca1b8c21d207fa8df1659b3")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+2b3a0c9746b2646936e76eac0933e11d44cb286d")]
[assembly: System.Reflection.AssemblyProductAttribute("Jellyfin.CodeAnalysis")]
[assembly: System.Reflection.AssemblyTitleAttribute("Jellyfin.CodeAnalysis")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
@@ -1 +1 @@
47b7ae2b39f0930499a027b92b740be1de949af6648f7d9c6d0480e68911f31f
28551f67b5f844835106431979a774d1df5ac346c915d0b6945818cdc46fba2b
@@ -44,6 +44,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -526,6 +527,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1150,6 +1152,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1771,6 +1774,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1984,6 +1988,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2483,6 +2488,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2976,6 +2982,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"noWarn": [
"NU5104"
],
@@ -3877,6 +3877,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "fc2a99tYE0Q=",
"dgSpecHash": "7p0VjWNAkOM=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Sqlite\\Jellyfin.Database.Providers.Sqlite.csproj",
"expectedPackageFiles": [
@@ -47,6 +47,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -524,6 +525,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1006,6 +1008,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1636,6 +1639,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2126,6 +2130,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2747,6 +2752,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2960,6 +2966,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3462,6 +3469,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"noWarn": [
"NU1903"
],
@@ -3974,6 +3982,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"noWarn": [
"NU5104"
],
@@ -4461,6 +4470,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2448,6 +2448,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"noWarn": [
"NU1903"
],
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "K027lFXbURo=",
"dgSpecHash": "p0+GedKjwFw=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Drawing.Skia\\Jellyfin.Drawing.Skia.csproj",
"expectedPackageFiles": [
@@ -47,6 +47,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -524,6 +525,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1006,6 +1008,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1636,6 +1639,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2126,6 +2130,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2747,6 +2752,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2960,6 +2966,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3462,6 +3469,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3941,6 +3949,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"noWarn": [
"NU5104"
],
@@ -4428,6 +4437,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1777,6 +1777,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
+1 -1
View File
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "tctIrkj0W2o=",
"dgSpecHash": "woDabbm9VyQ=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Drawing\\Jellyfin.Drawing.csproj",
"expectedPackageFiles": [
@@ -47,6 +47,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -524,6 +525,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1006,6 +1008,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1636,6 +1639,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2126,6 +2130,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2747,6 +2752,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2960,6 +2966,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3453,6 +3460,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"noWarn": [
"NU5104"
],
@@ -3949,6 +3957,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -4433,6 +4442,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1806,6 +1806,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
+1 -1
View File
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "JYTcL9z7X08=",
"dgSpecHash": "RYs61F+azTo=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.LiveTv\\Jellyfin.LiveTv.csproj",
"expectedPackageFiles": [
@@ -47,6 +47,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -524,6 +525,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1006,6 +1008,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1636,6 +1639,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2126,6 +2130,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2747,6 +2752,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2960,6 +2966,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3453,6 +3460,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"noWarn": [
"NU5104"
],
@@ -3952,6 +3960,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -4426,6 +4435,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1740,6 +1740,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "eYKEALa8k0Q=",
"dgSpecHash": "387NMu3/xC8=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.MediaEncoding.Hls\\Jellyfin.MediaEncoding.Hls.csproj",
"expectedPackageFiles": [
@@ -37,6 +37,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -250,6 +251,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -578,6 +578,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "IevT1zQx2RA=",
"dgSpecHash": "mTVFQQSIGo8=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.MediaEncoding.Keyframes\\Jellyfin.MediaEncoding.Keyframes.csproj",
"expectedPackageFiles": [
@@ -47,6 +47,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -524,6 +525,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1006,6 +1008,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1636,6 +1639,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2126,6 +2130,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2747,6 +2752,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2960,6 +2966,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3453,6 +3460,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"noWarn": [
"NU5104"
],
@@ -3940,6 +3948,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -4425,6 +4434,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1731,6 +1731,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "Rn00JxOuroU=",
"dgSpecHash": "3j5428MHwYE=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Networking\\Jellyfin.Networking.csproj",
"expectedPackageFiles": [
@@ -47,6 +47,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -533,6 +534,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1030,6 +1032,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1524,6 +1527,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2011,6 +2015,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2641,6 +2646,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3134,6 +3140,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3639,6 +3646,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -4260,6 +4268,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -4473,6 +4482,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -4972,6 +4982,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -5465,6 +5476,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"noWarn": [
"NU5104"
],
@@ -5964,6 +5976,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -6438,6 +6451,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -6923,6 +6937,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -7398,6 +7413,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -5367,6 +5367,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "vOYkAJZJgwQ=",
"dgSpecHash": "DoMmp8kCQOU=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.Api.Tests\\Jellyfin.Api.Tests.csproj",
"expectedPackageFiles": [
@@ -47,6 +47,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -524,6 +525,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1006,6 +1008,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1636,6 +1639,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2126,6 +2130,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2757,6 +2762,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3272,6 +3278,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3485,6 +3492,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3978,6 +3986,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"noWarn": [
"NU5104"
],
@@ -4465,6 +4474,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -4950,6 +4960,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3294,6 +3294,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "ocPHRGnVGLo=",
"dgSpecHash": "FOG/id8stT0=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.Common.Tests\\Jellyfin.Common.Tests.csproj",
"expectedPackageFiles": [
@@ -47,6 +47,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -524,6 +525,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1006,6 +1008,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -1636,6 +1639,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2126,6 +2130,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2747,6 +2752,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -2960,6 +2966,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -3453,6 +3460,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"noWarn": [
"NU5104"
],
@@ -3940,6 +3948,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],
@@ -4422,6 +4431,7 @@
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
],

Some files were not shown because too many files have changed in this diff Show More