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