diff --git a/pom.xml b/pom.xml index b8a11b8..79203dd 100644 --- a/pom.xml +++ b/pom.xml @@ -90,4 +90,12 @@ + + + hack3 + My self-hosted maven repo + https://mavenrepo.hack3.cat/snapshots + + + \ No newline at end of file diff --git a/src/main/java/tv/mangrana/plex/url/PlexLibrarySectionsResolver.java b/src/main/java/tv/mangrana/plex/url/PlexLibrarySectionsResolver.java index 4c68fcb..b0ee0b6 100644 --- a/src/main/java/tv/mangrana/plex/url/PlexLibrarySectionsResolver.java +++ b/src/main/java/tv/mangrana/plex/url/PlexLibrarySectionsResolver.java @@ -34,6 +34,7 @@ public class PlexLibrarySectionsResolver { String directoryNodeOfLocation = getDirectoryKeyValue(xmlDocument, xPath, startingLocationText); if (directoryNodeOfLocation == null) { startingLocationText = plexPathStarter.concat("/").concat(keyFolder); + Output.log("but going to retry with {0}", startingLocationText); return getDirectoryKeyValue(xmlDocument, xPath, startingLocationText); } else return directoryNodeOfLocation; diff --git a/src/main/java/tv/mangrana/utils/yml/FakeYmlLoader.java b/src/main/java/tv/mangrana/utils/yml/FakeYmlLoader.java index 4a80bcb..c0ea8d0 100644 --- a/src/main/java/tv/mangrana/utils/yml/FakeYmlLoader.java +++ b/src/main/java/tv/mangrana/utils/yml/FakeYmlLoader.java @@ -8,9 +8,9 @@ import java.io.IOException; import java.nio.file.Files; import java.util.Arrays; import java.util.EnumMap; +import java.util.HashMap; import java.util.Map; import java.util.regex.Pattern; -import java.util.stream.Collectors; import java.util.stream.Stream; @@ -28,14 +28,11 @@ public class FakeYmlLoader { @SuppressWarnings("all") public static > EnumMap getEnumMapFromFile(File ymlFile, Class enumData, boolean silently) throws IncorrectWorkingReferencesException { EnumMap enumMap = new EnumMap<>(enumData); - Pattern simpleYmlKeyValuePattern = Pattern.compile(".+: .+"); - try (Stream stream = Files.lines(ymlFile.toPath())) { - Map fileLines = stream - .filter(keyValueCandidate -> simpleYmlKeyValuePattern - .matcher(keyValueCandidate) - .matches()) - .map(s -> s.split(":")) - .collect(Collectors.toMap(e -> e[0], e -> e[1].trim())); + try (Stream linesStream = Files.lines(ymlFile.toPath())) { + Pattern simpleYmlKeyValuePattern = Pattern.compile(".+: .+"); + Stream filteredLines = getFilteredLines(simpleYmlKeyValuePattern, linesStream); + Map fileLines = mapLinesToKeyValue(filteredLines); + Arrays.stream(enumData.getEnumConstants()) .forEach(cons -> enumMap.put(cons, fileLines.get(cons.name().toLowerCase())) @@ -53,4 +50,26 @@ public class FakeYmlLoader { return null; } + private static Stream getFilteredLines(Pattern simpleYmlKeyValuePattern, Stream stream) { + return stream + .filter(keyValueCandidate -> simpleYmlKeyValuePattern + .matcher(keyValueCandidate) + .matches() + ); + } + + private static Map mapLinesToKeyValue(Stream stringStream) { + Map keyValueMap = new HashMap<>(); + stringStream.forEach(line -> { + try { + String[] keyValue = line.split(":"); + keyValueMap.put(keyValue[0], keyValue[1].trim()); + } catch (Exception e) { + logger.nHLog("Some problem occurred trying to map line {0} to key-value", line); + e.printStackTrace(); + } + }); + return keyValueMap; + } + }