aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.LocalMetadata
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.LocalMetadata')
-rw-r--r--MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs43
-rw-r--r--MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj4
2 files changed, 29 insertions, 18 deletions
diff --git a/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs b/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs
index 7dc6149f4..70fd68129 100644
--- a/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs
+++ b/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs
@@ -291,7 +291,7 @@ namespace MediaBrowser.LocalMetadata.Images
foreach (var name in imageFileNames)
{
- if (AddImage(files, images, imagePrefix + name, ImageType.Primary))
+ if (AddImage(files, images, name, ImageType.Primary, imagePrefix))
{
return;
}
@@ -317,7 +317,7 @@ namespace MediaBrowser.LocalMetadata.Images
if (!string.IsNullOrEmpty(name))
{
- AddImage(files, images, imagePrefix + name + "-fanart", ImageType.Backdrop);
+ AddImage(files, images, name + "-fanart", ImageType.Backdrop, imagePrefix);
// Support without the prefix if it's in it's own folder
if (!isInMixedFolder)
@@ -436,7 +436,7 @@ namespace MediaBrowser.LocalMetadata.Images
private bool AddImage(List<FileSystemMetadata> files, List<LocalImageInfo> images, string name, string imagePrefix, bool isInMixedFolder, ImageType type)
{
- var added = AddImage(files, images, imagePrefix + name, type);
+ var added = AddImage(files, images, name, type, imagePrefix);
if (!isInMixedFolder)
{
@@ -449,32 +449,39 @@ namespace MediaBrowser.LocalMetadata.Images
return added;
}
- private bool AddImage(List<FileSystemMetadata> files, List<LocalImageInfo> images, string name, ImageType type)
+ private static bool AddImage(IReadOnlyList<FileSystemMetadata> files, List<LocalImageInfo> images, string name, ImageType type, string? prefix = null)
{
- var image = GetImage(files, name);
+ var image = GetImage(files, name, prefix);
- if (image != null)
+ if (image == null)
{
- images.Add(new LocalImageInfo
- {
- FileInfo = image,
- Type = type
- });
-
- return true;
+ return false;
}
- return false;
+ images.Add(new LocalImageInfo
+ {
+ FileInfo = image,
+ Type = type
+ });
+
+ return true;
}
- private static FileSystemMetadata? GetImage(IReadOnlyList<FileSystemMetadata> files, string name)
+ private static FileSystemMetadata? GetImage(IReadOnlyList<FileSystemMetadata> files, string name, string? prefix = null)
{
+ var fileNameLength = name.Length + (prefix?.Length ?? 0);
for (var i = 0; i < files.Count; i++)
{
var file = files[i];
- if (!file.IsDirectory
- && file.Length > 0
- && Path.GetFileNameWithoutExtension(file.FullName.AsSpan()).Equals(name, StringComparison.OrdinalIgnoreCase))
+ if (file.IsDirectory || file.Length <= 0)
+ {
+ continue;
+ }
+
+ var fileName = Path.GetFileNameWithoutExtension(file.FullName.AsSpan());
+ if (fileName.Length == fileNameLength
+ && fileName.StartsWith(prefix, StringComparison.OrdinalIgnoreCase)
+ && fileName.EndsWith(name, StringComparison.OrdinalIgnoreCase))
{
return file;
}
diff --git a/MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj b/MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj
index 41c79651d..41ac7038a 100644
--- a/MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj
+++ b/MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj
@@ -22,6 +22,10 @@
<!-- Code Analyzers-->
<ItemGroup Condition=" '$(Configuration)' == 'Debug' ">
+ <PackageReference Include="Microsoft.CodeAnalysis.BannedApiAnalyzers" Version="3.3.3">
+ <PrivateAssets>all</PrivateAssets>
+ <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
+ </PackageReference>
<PackageReference Include="SerilogAnalyzer" Version="0.15.0" PrivateAssets="All" />
<PackageReference Include="StyleCop.Analyzers" Version="1.2.0-beta.376" PrivateAssets="All" />
<PackageReference Include="SmartAnalyzers.MultithreadingAnalyzer" Version="1.1.31" PrivateAssets="All" />