diff --git a/.gitignore b/.gitignore index b1c0fc8..1666f0b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ # Project exclude paths /target/ .idea/ -compile.bat \ No newline at end of file +compile.bat +.vscode/ \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..c5f3f6b --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "java.configuration.updateBuildConfiguration": "interactive" +} \ No newline at end of file diff --git a/src/main/java/de/b00tload/tools/lastfmtospotifyplaylist/LastFMToSpotify.java b/src/main/java/de/b00tload/tools/lastfmtospotifyplaylist/LastFMToSpotify.java index b370226..93be20a 100644 --- a/src/main/java/de/b00tload/tools/lastfmtospotifyplaylist/LastFMToSpotify.java +++ b/src/main/java/de/b00tload/tools/lastfmtospotifyplaylist/LastFMToSpotify.java @@ -5,6 +5,7 @@ import com.neovisionaries.i18n.CountryCode; import de.b00tload.tools.lastfmtospotifyplaylist.arguments.ArgumentHandler; import de.b00tload.tools.lastfmtospotifyplaylist.arguments.Arguments; import de.b00tload.tools.lastfmtospotifyplaylist.util.PeriodHelper; + import de.b00tload.tools.lastfmtospotifyplaylist.util.TimeHelper; import de.b00tload.tools.lastfmtospotifyplaylist.util.TokenHelper; import de.umass.lastfm.Caller; @@ -36,6 +37,11 @@ public class LastFMToSpotify { configuration = new HashMap<>(); configuration.put("requests.useragent", "LastFMToSpotify/1.0-Snapshot (" + System.getProperty("os.name") + "; " + System.getProperty("os.arch") + ") Java/" + System.getProperty("java.version")); configuration.put("playlist.name", "LastFMToSpotify@" + LocalDateTime.now(Clock.systemDefaultZone()).format(DateTimeFormatter.ISO_LOCAL_DATE_TIME)); + configuration.put("log.level", "1"); + if (!ArgumentHandler.checkArguments(args)) { + return; + } + // parse arguments for (int a = 0; a < args.length; a++) { Arguments arg; @@ -59,6 +65,7 @@ public class LastFMToSpotify { } } + try { logLn("Authenticating with Spotify...", 1); SpotifyApi.Builder build = SpotifyApi.builder(); diff --git a/src/main/java/de/b00tload/tools/lastfmtospotifyplaylist/arguments/ArgumentHandler.java b/src/main/java/de/b00tload/tools/lastfmtospotifyplaylist/arguments/ArgumentHandler.java index c533f1f..54be115 100644 --- a/src/main/java/de/b00tload/tools/lastfmtospotifyplaylist/arguments/ArgumentHandler.java +++ b/src/main/java/de/b00tload/tools/lastfmtospotifyplaylist/arguments/ArgumentHandler.java @@ -2,6 +2,7 @@ package de.b00tload.tools.lastfmtospotifyplaylist.arguments; import de.b00tload.tools.lastfmtospotifyplaylist.util.FileHelper; import de.b00tload.tools.lastfmtospotifyplaylist.util.TimeHelper; + import de.umass.lastfm.Period; import org.jetbrains.annotations.Nullable; @@ -22,6 +23,10 @@ import static de.b00tload.tools.lastfmtospotifyplaylist.LastFMToSpotify.LINE_SEP import static de.b00tload.tools.lastfmtospotifyplaylist.LastFMToSpotify.configuration; import static de.b00tload.tools.lastfmtospotifyplaylist.util.Logger.logLn; +import java.util.List; + +import javax.xml.crypto.Data; + public class ArgumentHandler { public static void handle(Arguments argument, @Nullable String value) { @@ -48,6 +53,28 @@ public class ArgumentHandler { handle(argument, null); } + + public static boolean checkArguments(String[] args) { + // check if all required arguments are given + Arguments[] required = {Arguments.SECRET, Arguments.CLIENT, Arguments.TOKEN, Arguments.USER}; + for (Arguments argument : required) { + boolean found = false; + // check all aliases + for (String alias : argument.getAliases()) { + // if one alias is found check next argument + if (List.of(args).contains(alias)) { + found = true; + break; + } + } + // else return false + if (!found) { + return false; + } + } + return true; + } + private static void help(String value) { if (value == null) { System.out.println("This is a list of all available commands. For more specific help on the argument run --help ."); @@ -130,6 +157,7 @@ public class ArgumentHandler { private static void period(Period value) { configuration.put("lastfm.period", value.getString()); + } private static void cover(String value) {