diff --git a/pom.xml b/pom.xml index 2536d24..3ce85b1 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ tv.mangrana mangrana-commons - 7.1.3 + 7.2.0 diff --git a/src/main/java/tv/mangrana/config/ConfigFileLoader.java b/src/main/java/tv/mangrana/config/ConfigFileLoader.java deleted file mode 100644 index ae3162c..0000000 --- a/src/main/java/tv/mangrana/config/ConfigFileLoader.java +++ /dev/null @@ -1,29 +0,0 @@ -package tv.mangrana.config; - -import tv.mangrana.exception.IncorrectWorkingReferencesException; - -public class ConfigFileLoader extends CommonConfigFileLoader { - - private static final String CONFIG_FILE = "SonarrFixerConfig.yml"; - private static ConfigFileLoader service; - - private ConfigFileLoader() throws IncorrectWorkingReferencesException { - super(ProjectConfiguration.class); - } - - public static ConfigFileLoader getLoader() throws IncorrectWorkingReferencesException { - if (service==null) - service = new ConfigFileLoader(); - return service; - } - - public enum ProjectConfiguration { - UPLOADS_PATHS - } - - @Override - protected String getConfigFileName() { - return CONFIG_FILE; - } - -} diff --git a/src/main/java/tv/mangrana/config/ConfigLoader.java b/src/main/java/tv/mangrana/config/ConfigLoader.java new file mode 100644 index 0000000..486dc32 --- /dev/null +++ b/src/main/java/tv/mangrana/config/ConfigLoader.java @@ -0,0 +1,38 @@ +package tv.mangrana.config; + +import tv.mangrana.exception.IncorrectWorkingReferencesException; + +public class ConfigLoader extends CommonConfigFileLoader { + + private static final String CONFIG_FILE = "SonarrFixerConfig.yml"; + private static ConfigLoader service; + + private ConfigLoader() throws IncorrectWorkingReferencesException { + super(ProjectConfiguration.class); + } + + public static ConfigLoader getLoader() throws IncorrectWorkingReferencesException { + if (service==null) + service = new ConfigLoader(); + return service; + } + + public static String get(ProjectConfiguration configParam) throws IncorrectWorkingReferencesException { + return getLoader().getConfig(configParam); + } + + public static boolean isDisabled(ProjectConfiguration configParam) { + return !"true".equals(get(configParam)); + } + + public enum ProjectConfiguration { + UPLOADS_PATHS, + TEST_MODE + } + + @Override + protected String getConfigFileName() { + return CONFIG_FILE; + } + +} diff --git a/src/main/java/tv/mangrana/sonarr/Sonarr.java b/src/main/java/tv/mangrana/sonarr/Sonarr.java index 6f0cddd..84fb56a 100644 --- a/src/main/java/tv/mangrana/sonarr/Sonarr.java +++ b/src/main/java/tv/mangrana/sonarr/Sonarr.java @@ -1,13 +1,13 @@ package tv.mangrana.sonarr; -import tv.mangrana.config.ConfigFileLoader; +import tv.mangrana.config.ConfigLoader; import tv.mangrana.sonarr.api.client.gateway.SonarrApiGateway; public class Sonarr { private static SonarrApiGateway service; - public static void initService(ConfigFileLoader configFileLoader) { - service = new SonarrApiGateway(configFileLoader); + public static void initService(ConfigLoader configLoader) { + service = new SonarrApiGateway(configLoader); } public static SonarrApiGateway api() { diff --git a/src/main/java/tv/mangrana/worker/FileCopier.java b/src/main/java/tv/mangrana/worker/FileCopier.java index f40f37b..661a6a2 100644 --- a/src/main/java/tv/mangrana/worker/FileCopier.java +++ b/src/main/java/tv/mangrana/worker/FileCopier.java @@ -1,16 +1,21 @@ package tv.mangrana.worker; +import tv.mangrana.config.ConfigLoader; + import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import static tv.mangrana.config.ConfigFileLoader.ProjectConfiguration.UPLOADS_PATHS; +import static tv.mangrana.config.ConfigLoader.ProjectConfiguration.TEST_MODE; +import static tv.mangrana.config.ConfigLoader.ProjectConfiguration.UPLOADS_PATHS; class FileCopier { void hardLink(Path source, Path destination) { try { createDestinationFolderIfApply(destination); - Files.createLink(destination, source); + + if (ConfigLoader.isDisabled(TEST_MODE)) + Files.createLink(destination, source); } catch (IOException e) { System.out.printf("error when creating hardlink with destination %s, error: %s%n", destination, e.getMessage()); @@ -19,8 +24,11 @@ class FileCopier { } private void createDestinationFolderIfApply(Path destination) throws IOException { - if (isTemporaryDestination(destination) && !Files.exists(destination)) - Files.createDirectory(destination); + if (isTemporaryDestination(destination) && !Files.exists(destination)) { + System.out.printf("destination folder %s will be created", destination); + if (ConfigLoader.isDisabled(TEST_MODE)) + Files.createDirectory(destination); + } } private boolean isTemporaryDestination(Path destination) { diff --git a/src/main/java/tv/mangrana/worker/MainWorker.java b/src/main/java/tv/mangrana/worker/MainWorker.java index 68abb2c..34d0aeb 100644 --- a/src/main/java/tv/mangrana/worker/MainWorker.java +++ b/src/main/java/tv/mangrana/worker/MainWorker.java @@ -1,6 +1,6 @@ package tv.mangrana.worker; -import tv.mangrana.config.ConfigFileLoader; +import tv.mangrana.config.ConfigLoader; import tv.mangrana.exception.IncorrectWorkingReferencesException; import tv.mangrana.sonarr.Sonarr; @@ -14,7 +14,7 @@ public class MainWorker { } private MainWorker() throws IncorrectWorkingReferencesException { - var configLoader = ConfigFileLoader.getLoader(); + var configLoader = ConfigLoader.getLoader(); Sonarr.initService(configLoader); queueFixer = new QueueFixer(); } diff --git a/src/main/java/tv/mangrana/worker/QueueFixer.java b/src/main/java/tv/mangrana/worker/QueueFixer.java index 3528e93..f9fd3b6 100644 --- a/src/main/java/tv/mangrana/worker/QueueFixer.java +++ b/src/main/java/tv/mangrana/worker/QueueFixer.java @@ -1,5 +1,6 @@ package tv.mangrana.worker; +import tv.mangrana.config.ConfigLoader; import tv.mangrana.sonarr.Sonarr; import tv.mangrana.sonarr.api.client.gateway.SonarrApiGateway; import tv.mangrana.sonarr.api.schema.queue.Record; @@ -10,6 +11,8 @@ import java.util.Collection; import java.util.HashMap; import java.util.List; +import static tv.mangrana.config.ConfigLoader.ProjectConfiguration.TEST_MODE; + public class QueueFixer { final static String IMPORT_FAILURE_BECAUSE_MATCHED_BY_ID = "Found matching series via grab history, but release was matched to series by ID. Automatic import is not possible. See the FAQ for details."; @@ -64,7 +67,8 @@ public class QueueFixer { private void cleanWorkedElementsFromQueue(List sonarQueue, List recordsToFix) { List workedTitles = mapRecord2Title(recordsToFix); List recordIds2Delete = filterPresentTitlesFromQueue(sonarQueue, workedTitles); - sonarrApiGateway.deleteQueueElements(recordIds2Delete); + if (ConfigLoader.isDisabled(TEST_MODE)) + sonarrApiGateway.deleteQueueElements(recordIds2Delete); } private boolean recordsWithImportFailureBecauseIdMatching(Record record) {