From 92b83d240d1c60d327995301f62620312c68a27d Mon Sep 17 00:00:00 2001 From: MrLetsplay Date: Mon, 17 Feb 2025 23:03:03 +0100 Subject: [PATCH] Add readOnly config option, Imptove metadata inheritance --- .../java/me/mrletsplay/videobase/Config.java | 8 +++ .../me/mrletsplay/videobase/VideoBase.java | 2 +- .../mrletsplay/videobase/library/Library.java | 47 +++++++++------ .../videobase/library/VideoMetadata.java | 59 +++++++++++-------- .../mrletsplay/videobase/rest/LibraryAPI.java | 24 ++++++-- .../videobase/util/ThumbnailCreator.java | 2 + 6 files changed, 94 insertions(+), 48 deletions(-) diff --git a/src/main/java/me/mrletsplay/videobase/Config.java b/src/main/java/me/mrletsplay/videobase/Config.java index 8b7358c..43a3878 100644 --- a/src/main/java/me/mrletsplay/videobase/Config.java +++ b/src/main/java/me/mrletsplay/videobase/Config.java @@ -9,6 +9,9 @@ public class Config implements JSONConvertible { @JSONValue private String libraryPath; + @JSONValue + private boolean readOnly; + @JSONValue private String cachePath; @@ -19,6 +22,10 @@ public class Config implements JSONConvertible { return libraryPath; } + public boolean isReadOnly() { + return readOnly; + } + public String getCachePath() { return cachePath; } @@ -26,6 +33,7 @@ public class Config implements JSONConvertible { public static Config createDefault() { Config config = new Config(); config.libraryPath = "library"; + config.readOnly = false; config.cachePath = "cache"; return config; } diff --git a/src/main/java/me/mrletsplay/videobase/VideoBase.java b/src/main/java/me/mrletsplay/videobase/VideoBase.java index 3a14669..387fab0 100644 --- a/src/main/java/me/mrletsplay/videobase/VideoBase.java +++ b/src/main/java/me/mrletsplay/videobase/VideoBase.java @@ -81,7 +81,7 @@ public class VideoBase { } private static void loadLibrary() { - library = Library.load(Path.of(config.getLibraryPath())); + library = Library.load(Path.of(config.getLibraryPath()), config.isReadOnly()); } } diff --git a/src/main/java/me/mrletsplay/videobase/library/Library.java b/src/main/java/me/mrletsplay/videobase/library/Library.java index 1dee67d..b98b7aa 100644 --- a/src/main/java/me/mrletsplay/videobase/library/Library.java +++ b/src/main/java/me/mrletsplay/videobase/library/Library.java @@ -25,13 +25,15 @@ public class Library { VIDEO_METADATA_SUFFIX = ".meta.json"; private Path path; + private boolean readOnly; private List