Browse Source

allow graphics elements with yml and yaml extension (#2617)

pull/2618/head
Jason Dove 2 months ago committed by GitHub
parent
commit
2b0079fedc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 10
      ErsatzTV.Application/Graphics/Commands/RefreshGraphicsElementsHandler.cs
  2. 1
      ErsatzTV.Core/Interfaces/Metadata/ILocalFileSystem.cs
  3. 26
      ErsatzTV.Core/Metadata/LocalFileSystem.cs

10
ErsatzTV.Application/Graphics/Commands/RefreshGraphicsElementsHandler.cs

@ -24,7 +24,7 @@ public class RefreshGraphicsElementsHandler( @@ -24,7 +24,7 @@ public class RefreshGraphicsElementsHandler(
.ToListAsync(cancellationToken);
var missing = allExisting
.Where(e => !localFileSystem.FileExists(e.Path) || Path.GetExtension(e.Path) != ".yml")
.Where(e => !localFileSystem.FileExists(e.Path) || (Path.GetExtension(e.Path) != ".yml" && Path.GetExtension(e.Path) != ".yaml"))
.ToList();
foreach (GraphicsElement existing in missing)
@ -42,7 +42,7 @@ public class RefreshGraphicsElementsHandler( @@ -42,7 +42,7 @@ public class RefreshGraphicsElementsHandler(
}
// add new text elements
var newTextPaths = localFileSystem.ListFiles(FileSystemLayout.GraphicsElementsTextTemplatesFolder, "*.yml")
var newTextPaths = localFileSystem.ListFiles(FileSystemLayout.GraphicsElementsTextTemplatesFolder, "*.yml", "*.yaml")
.Where(f => allExisting.All(e => e.Path != f))
.ToList();
@ -62,7 +62,7 @@ public class RefreshGraphicsElementsHandler( @@ -62,7 +62,7 @@ public class RefreshGraphicsElementsHandler(
}
// add new image elements
var newImagePaths = localFileSystem.ListFiles(FileSystemLayout.GraphicsElementsImageTemplatesFolder, "*.yml")
var newImagePaths = localFileSystem.ListFiles(FileSystemLayout.GraphicsElementsImageTemplatesFolder, "*.yml", "*.yaml")
.Where(f => allExisting.All(e => e.Path != f))
.ToList();
@ -82,7 +82,7 @@ public class RefreshGraphicsElementsHandler( @@ -82,7 +82,7 @@ public class RefreshGraphicsElementsHandler(
}
// add new motion elements
var newMotionPaths = localFileSystem.ListFiles(FileSystemLayout.GraphicsElementsMotionTemplatesFolder, "*.yml")
var newMotionPaths = localFileSystem.ListFiles(FileSystemLayout.GraphicsElementsMotionTemplatesFolder, "*.yml", "*.yaml")
.Where(f => allExisting.All(e => e.Path != f))
.ToList();
@ -102,7 +102,7 @@ public class RefreshGraphicsElementsHandler( @@ -102,7 +102,7 @@ public class RefreshGraphicsElementsHandler(
}
// add new subtitle elements
var newSubtitlePaths = localFileSystem.ListFiles(FileSystemLayout.GraphicsElementsSubtitleTemplatesFolder, "*.yml")
var newSubtitlePaths = localFileSystem.ListFiles(FileSystemLayout.GraphicsElementsSubtitleTemplatesFolder, "*.yml", "*.yaml")
.Where(f => allExisting.All(e => e.Path != f))
.ToList();

1
ErsatzTV.Core/Interfaces/Metadata/ILocalFileSystem.cs

@ -10,6 +10,7 @@ public interface ILocalFileSystem @@ -10,6 +10,7 @@ public interface ILocalFileSystem
IEnumerable<string> ListSubdirectories(string folder);
IEnumerable<string> ListFiles(string folder);
IEnumerable<string> ListFiles(string folder, string searchPattern);
IEnumerable<string> ListFiles(string folder, params string[] searchPatterns);
bool FileExists(string path);
bool FolderExists(string folder);
Task<Either<BaseError, Unit>> CopyFile(string source, string destination);

26
ErsatzTV.Core/Metadata/LocalFileSystem.cs

@ -109,6 +109,32 @@ public class LocalFileSystem(IClient client, ILogger<LocalFileSystem> logger) : @@ -109,6 +109,32 @@ public class LocalFileSystem(IClient client, ILogger<LocalFileSystem> logger) :
return new List<string>();
}
public IEnumerable<string> ListFiles(string folder, params string[] searchPatterns)
{
if (folder is not null && Directory.Exists(folder))
{
try
{
return searchPatterns
.SelectMany(searchPattern =>
Directory.EnumerateFiles(folder, searchPattern, SearchOption.TopDirectoryOnly)
.Where(path => !Path.GetFileName(path).StartsWith("._", StringComparison.OrdinalIgnoreCase)))
.Distinct();
}
catch (UnauthorizedAccessException)
{
logger.LogWarning("Unauthorized access exception listing files in folder {Folder}", folder);
}
catch (Exception ex)
{
// do nothing
client.Notify(ex);
}
}
return new List<string>();
}
public bool FileExists(string path) => File.Exists(path);
public bool FolderExists(string folder) => Directory.Exists(folder);

Loading…
Cancel
Save