From 566f4fc3458c00d95c2b2c40ab76392872c8c48c Mon Sep 17 00:00:00 2001 From: Alix von Schirp Date: Sat, 11 Feb 2023 05:43:17 +0100 Subject: [PATCH] Implemented checking for newer version against GitHub --- pom.xml | 9 +++- .../LastFMToSpotify.java | 6 ++- .../util/VersionChecker.java | 42 +++++++++++++++++++ 3 files changed, 54 insertions(+), 3 deletions(-) create mode 100644 src/main/java/de/b00tload/tools/lastfmtospotifyplaylist/util/VersionChecker.java diff --git a/pom.xml b/pom.xml index 3197eee..168bede 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ de.b00tload.tools LastfmToSpotifyPlaylist - 1.0 + 1.1-alpha LastFM2SpotifyPlaylist Creates a Spotify playlist from LastFM scrobble data. @@ -80,6 +80,8 @@ de.b00tload.tools.lastfmtospotifyplaylist.LastFMToSpotify + true + true @@ -107,6 +109,11 @@ slf4j-simple 2.0.6 + + commons-io + commons-io + 2.11.0 + \ 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 50dd59e..4e1d74b 100644 --- a/src/main/java/de/b00tload/tools/lastfmtospotifyplaylist/LastFMToSpotify.java +++ b/src/main/java/de/b00tload/tools/lastfmtospotifyplaylist/LastFMToSpotify.java @@ -12,9 +12,7 @@ import de.umass.lastfm.User; import io.javalin.Javalin; import io.javalin.http.ContentType; import io.javalin.http.HttpStatus; -import io.javalin.jetty.JettyUtil; import io.javalin.util.JavalinLogger; -import org.slf4j.LoggerFactory; import se.michaelthelin.spotify.SpotifyApi; import se.michaelthelin.spotify.model_objects.specification.Playlist; @@ -79,6 +77,10 @@ public class LastFMToSpotify { System.setErr(new Logger.LogStream(System.err)); } + if(Integer.parseInt(configuration.get("logging.level")) !=0){ + VersionChecker.checkVerion(); + } + try { logLn("Authenticating with Spotify...", 1); SpotifyApi.Builder build = SpotifyApi.builder(); diff --git a/src/main/java/de/b00tload/tools/lastfmtospotifyplaylist/util/VersionChecker.java b/src/main/java/de/b00tload/tools/lastfmtospotifyplaylist/util/VersionChecker.java new file mode 100644 index 0000000..00b2ae8 --- /dev/null +++ b/src/main/java/de/b00tload/tools/lastfmtospotifyplaylist/util/VersionChecker.java @@ -0,0 +1,42 @@ +package de.b00tload.tools.lastfmtospotifyplaylist.util; + +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import org.apache.commons.io.IOUtils; + +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.nio.charset.StandardCharsets; + +public class VersionChecker { + + private static final String GITHUB_API_BASE_URL = "https://api.github.com/repos/B00tLoad/LastFMToSpotifyPlaylist"; + + + public static void checkVerion() { + String currentVersion = VersionChecker.class.getPackage().getImplementationVersion(); + String latestVersion = fetchLatestReleaseVersion(); + if (currentVersion == null) { + System.out.println("Error: Failed to retrieve current version"); + } else if (latestVersion == null) { + System.out.println("Error: Failed to retrieve latest release version"); + } else if (currentVersion.compareTo(latestVersion) < 0) { + System.out.println("A new version is available: " + latestVersion); + } else { + System.out.println("You are running the latest version: " + currentVersion); + } + } + + private static String fetchLatestReleaseVersion() { + try (InputStream inputStream = (new URL(GITHUB_API_BASE_URL + "/releases/latest")).openStream()) { + String response = IOUtils.toString(inputStream, StandardCharsets.UTF_8); + JsonObject release = JsonParser.parseString(response).getAsJsonObject(); + return release.get("tag_name").getAsString().substring(1); + } catch (NullPointerException | IOException ex){ + ex.printStackTrace(); + return null; + } + } + +} -- 2.49.1