added BrowserHelper

implemented open Spotify auth page
This commit is contained in:
Morril
2023-01-28 20:52:42 +01:00
parent a62821f739
commit 174c9912aa
2 changed files with 49 additions and 1 deletions

View File

@@ -4,6 +4,7 @@ package de.b00tload.tools.lastfmtospotifyplaylist;
import com.neovisionaries.i18n.CountryCode; import com.neovisionaries.i18n.CountryCode;
import de.b00tload.tools.lastfmtospotifyplaylist.arguments.ArgumentHandler; import de.b00tload.tools.lastfmtospotifyplaylist.arguments.ArgumentHandler;
import de.b00tload.tools.lastfmtospotifyplaylist.arguments.Arguments; import de.b00tload.tools.lastfmtospotifyplaylist.arguments.Arguments;
import de.b00tload.tools.lastfmtospotifyplaylist.util.BrowserHelper;
import de.b00tload.tools.lastfmtospotifyplaylist.util.PeriodHelper; import de.b00tload.tools.lastfmtospotifyplaylist.util.PeriodHelper;
import de.b00tload.tools.lastfmtospotifyplaylist.util.TokenHelper; import de.b00tload.tools.lastfmtospotifyplaylist.util.TokenHelper;
@@ -100,7 +101,12 @@ public class LastFMToSpotify {
} }
}); });
logLn("Waiting for Spotify authorization.", 1); logLn("Waiting for Spotify authorization.", 1);
//TODO: Open auth page in Browser
String authPage = "https://accounts.spotify.com/authorize?client_id="
+ configuration.get("spotify.clientid")
+ "&response_type=code&state=73775e18-b0bc-4031-a379-bce99a0e3e6c&redirect_uri=http%3A%2F%2Flocalhost%3A9876%2Fcallback%2Fspotify%2F&scope=user-read-private%20playlist-modify-private%20playlist-modify-public%20ugc-image-upload%20playlist-read-private%20playlist-read-collaborative";
BrowserHelper.openInBrowser(authPage);
while (waiting.get()); while (waiting.get());
} }
} }

View File

@@ -0,0 +1,42 @@
package de.b00tload.tools.lastfmtospotifyplaylist.util;
public class BrowserHelper {
/**
* Opens a <code>url</code> in the systems default browser
* @param url
*/
public static void openInBrowser(String url) {
String os = System.getProperty("os.name").toLowerCase();
ProcessBuilder builder;
if (os.indexOf("win") >= 0) {
// Windows
builder = new ProcessBuilder("rundll32.exe","url.dll,FileProtocolHandler", url);
} else if (os.indexOf("mac") >= 0) {
// Mac
builder = new ProcessBuilder("open", url);
} else if (os.indexOf("nix") >= 0 || os.indexOf("nux") >= 0) {
// Linux
os = "linux";
builder = new ProcessBuilder("xdg-open", url);
} else {
Logger.logLn("Please open the following link:\n"+url, 1);
builder = null;
}
try {
if (builder != null) {
Process exec = builder.start();
if (os.equals("linux") && exec.exitValue() == 3) {
// on Linux in case of missing browser
Logger.logLn("Please open the following link:\n"+url, 1);
}
}
} catch (Exception e) {
Logger.logLn(e.getMessage(), 3);
}
}
}