From f55134c91acc0feee011cd16f1702a6d90cadcf8 Mon Sep 17 00:00:00 2001 From: RatzzFatzz Date: Sun, 22 Mar 2020 19:58:52 +0100 Subject: [PATCH] [IMPL] load multiple configs --- src/main/java/Main.java | 8 ++-- .../AttributeUpdaterKernel.java | 8 ++++ .../config/AttributeConfig.java | 12 ++++++ .../util/ConfigUtil.java | 40 +++++++++++++++++++ src/main/java/query/QueryBuilder.java | 2 +- src/main/resources/config.yaml | 20 ++++++---- 6 files changed, 79 insertions(+), 11 deletions(-) create mode 100644 src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/util/ConfigUtil.java diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 4283ea4..809bfb5 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,4 +1,4 @@ -import config.MKVToolProperties; +import at.pcgamingfreaks.mkvaudiosubtitlechanger.AttributeUpdaterKernel; import lombok.extern.log4j.Log4j2; @Log4j2 @@ -6,8 +6,10 @@ public class Main { public static void main(String[] args) { - MKVToolProperties.getInstance().defineMKVToolNixPath(); - GUI gui = new GUI(); +// MKVToolProperties.getInstance().defineMKVToolNixPath(); +// GUI gui = new GUI(); + AttributeUpdaterKernel kernel = new AttributeUpdaterKernel(); + kernel.execute(); } diff --git a/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/AttributeUpdaterKernel.java b/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/AttributeUpdaterKernel.java index 0a87fab..8b4769f 100644 --- a/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/AttributeUpdaterKernel.java +++ b/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/AttributeUpdaterKernel.java @@ -1,4 +1,12 @@ package at.pcgamingfreaks.mkvaudiosubtitlechanger; +import at.pcgamingfreaks.mkvaudiosubtitlechanger.config.AttributeConfig; +import at.pcgamingfreaks.mkvaudiosubtitlechanger.util.ConfigUtil; + +import java.util.List; + public class AttributeUpdaterKernel { + public void execute() { + List list = ConfigUtil.loadConfig(); + } } diff --git a/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/config/AttributeConfig.java b/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/config/AttributeConfig.java index d467e32..fdd8858 100644 --- a/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/config/AttributeConfig.java +++ b/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/config/AttributeConfig.java @@ -1,4 +1,16 @@ package at.pcgamingfreaks.mkvaudiosubtitlechanger.config; +import lombok.Getter; + +import java.util.List; + +@Getter public class AttributeConfig { + private List audio; + private List subtitle; + + public AttributeConfig(List audio, List subtitle) { + this.audio = audio; + this.subtitle = subtitle; + } } diff --git a/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/util/ConfigUtil.java b/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/util/ConfigUtil.java new file mode 100644 index 0000000..f44d017 --- /dev/null +++ b/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/util/ConfigUtil.java @@ -0,0 +1,40 @@ +package at.pcgamingfreaks.mkvaudiosubtitlechanger.util; + +import at.pcgamingfreaks.mkvaudiosubtitlechanger.config.AttributeConfig; +import at.pcgamingfreaks.yaml.YAML; +import at.pcgamingfreaks.yaml.YamlInvalidContentException; +import at.pcgamingfreaks.yaml.YamlKeyNotFoundException; +import lombok.extern.log4j.Log4j2; + +import java.io.File; +import java.io.IOException; +import java.util.List; +import java.util.stream.Collectors; + +@Log4j2 +public class ConfigUtil { + public static List loadConfig() { + try(YAML yaml = new YAML(new File("./src/main/resources/config.yaml"))){ + return yaml.getKeysFiltered(".*audio.*").stream() + .sorted() + .map(elem -> elem.replace(".audio", "")) + .map(elem -> createAttributeConfig(elem, yaml)) + .collect(Collectors.toList()); + }catch(YamlInvalidContentException | IOException e){ + log.fatal("Config could not be loaded"); + e.printStackTrace(); + } + return null; + } + + private static AttributeConfig createAttributeConfig(String key, YAML yaml) { + try{ + return new AttributeConfig( + yaml.getStringList(key + ".audio"), + yaml.getStringList(key + ".subtitle")); + }catch(YamlKeyNotFoundException e){ + e.printStackTrace(); + return null; + } + } +} diff --git a/src/main/java/query/QueryBuilder.java b/src/main/java/query/QueryBuilder.java index 0bf5996..747c6c2 100644 --- a/src/main/java/query/QueryBuilder.java +++ b/src/main/java/query/QueryBuilder.java @@ -1,11 +1,11 @@ package query; +import at.pcgamingfreaks.mkvaudiosubtitlechanger.model.FileAttribute; import at.pcgamingfreaks.yaml.YAML; import at.pcgamingfreaks.yaml.YamlInvalidContentException; import com.fasterxml.jackson.databind.ObjectMapper; import config.MKVToolProperties; import lombok.extern.log4j.Log4j2; -import model.FileAttribute; import java.io.File; import java.io.IOException; diff --git a/src/main/resources/config.yaml b/src/main/resources/config.yaml index 341f395..44b2717 100644 --- a/src/main/resources/config.yaml +++ b/src/main/resources/config.yaml @@ -1,7 +1,13 @@ -audio: - - jpn - - ger - - eng -subtitle: - - ger - - eng \ No newline at end of file +config: + 1: + audio: + - jpn + subtitle: + - ger + - eng + 2: + audio: + - eng + - ger + subtitle: + - eng \ No newline at end of file