added authing from ui
This commit is contained in:
parent
23d2b1cffa
commit
d035193976
@ -20,6 +20,7 @@ import com.mashape.unirest.request.HttpRequestWithBody;
|
||||
|
||||
import sarsoo.fmframework.log.Logger;
|
||||
import sarsoo.fmframework.log.entry.ErrorEntry;
|
||||
import sarsoo.fmframework.log.entry.LogEntry;
|
||||
import sarsoo.fmframework.music.Scrobble;
|
||||
|
||||
public class FmAuthNetwork extends FmUserNetwork {
|
||||
@ -33,6 +34,8 @@ public class FmAuthNetwork extends FmUserNetwork {
|
||||
|
||||
public void scrobble(Scrobble scrobble, String sk) {
|
||||
|
||||
Logger.getLog().log(new LogEntry("scrobble").addArg(scrobble.toString()));
|
||||
|
||||
HashMap<String, String> params = new HashMap<String, String>();
|
||||
|
||||
params.put("artist", scrobble.getTrack().getArtist().getName());
|
||||
@ -47,17 +50,20 @@ public class FmAuthNetwork extends FmUserNetwork {
|
||||
|
||||
JSONObject obj = makeAuthPostRequest("track.scrobble", params);
|
||||
|
||||
System.out.println(obj.toString());
|
||||
|
||||
}
|
||||
|
||||
public String getToken() {
|
||||
|
||||
Logger.getLog().log(new LogEntry("getToken"));
|
||||
|
||||
JSONObject obj = makeAuthGetRequest("auth.gettoken");
|
||||
|
||||
return obj.getString("token");
|
||||
}
|
||||
|
||||
public String getSession(String token) {
|
||||
|
||||
Logger.getLog().log(new LogEntry("getSession"));
|
||||
|
||||
HashMap<String, String> params = new HashMap<String, String>();
|
||||
params.put("token", token);
|
||||
|
@ -10,13 +10,17 @@ import java.util.Locale;
|
||||
import javax.swing.JOptionPane;
|
||||
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.event.Event;
|
||||
import javafx.event.EventHandler;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.stage.FileChooser;
|
||||
import sarsoo.fmframework.config.Config;
|
||||
import sarsoo.fmframework.config.ConfigVariable;
|
||||
import sarsoo.fmframework.config.VariableEvent;
|
||||
import sarsoo.fmframework.config.VariableListener;
|
||||
import sarsoo.fmframework.file.ListPersister;
|
||||
import sarsoo.fmframework.fm.FmAuthNetwork;
|
||||
import sarsoo.fmframework.fm.FmNetwork;
|
||||
import sarsoo.fmframework.fx.TextAreaConsole;
|
||||
import sarsoo.fmframework.fx.service.GetLastTrackService;
|
||||
import sarsoo.fmframework.fx.service.GetScrobbleCountService;
|
||||
@ -30,6 +34,7 @@ import sarsoo.fmframework.fx.tab.FMObjListEditTab;
|
||||
import sarsoo.fmframework.fx.tab.GenrePieChartTab;
|
||||
import sarsoo.fmframework.fx.tab.ScrobbleChartTab;
|
||||
import sarsoo.fmframework.fx.tab.TrackTab;
|
||||
import sarsoo.fmframework.fx.tab.WebViewTab;
|
||||
import sarsoo.fmframework.log.Log;
|
||||
import sarsoo.fmframework.log.Logger;
|
||||
import sarsoo.fmframework.fx.FmFramework;
|
||||
@ -50,36 +55,36 @@ public class RootController {
|
||||
@FXML
|
||||
public void initialize() {
|
||||
Logger.setLog(new Log(TextAreaConsole.getInstance(), false));
|
||||
|
||||
|
||||
Config config = FmFramework.getSessionConfig();
|
||||
|
||||
if(config.getVariable("api_key") == null) {
|
||||
while(config.getVariable("api_key") == null) {
|
||||
|
||||
if (config.getVariable("api_key") == null) {
|
||||
while (config.getVariable("api_key") == null) {
|
||||
setApiKey();
|
||||
}
|
||||
}
|
||||
|
||||
if(config.getVariable("username") == null) {
|
||||
while(config.getVariable("username") == null) {
|
||||
|
||||
if (config.getVariable("username") == null) {
|
||||
while (config.getVariable("username") == null) {
|
||||
changeUsername();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
FmFramework.getSessionConfig().getVariable("username").addListener(new VariableListener() {
|
||||
|
||||
@Override
|
||||
public void listen(VariableEvent event) {
|
||||
refresh();
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
refresh();
|
||||
}
|
||||
|
||||
public void refresh() {
|
||||
labelStatsUsername.setText(FmFramework.getSessionConfig().getValue("username"));
|
||||
|
||||
|
||||
refreshScrobbleCounts();
|
||||
addLastTrackTab();
|
||||
refreshTagMenu();
|
||||
@ -192,10 +197,54 @@ public class RootController {
|
||||
}
|
||||
|
||||
@FXML
|
||||
protected void handleChangeUsername(ActionEvent event) throws IOException {
|
||||
protected void handleChangeUsername(ActionEvent event) {
|
||||
changeUsername();
|
||||
}
|
||||
|
||||
|
||||
@FXML
|
||||
protected void handleAuth(ActionEvent event) {
|
||||
try {
|
||||
|
||||
Config config = FmFramework.getSessionConfig();
|
||||
|
||||
if (config.getVariable("api_secret") != null) {
|
||||
|
||||
FmAuthNetwork net = new FmAuthNetwork(config.getValue("api_key"), config.getValue("api_secret"),
|
||||
config.getValue("username"));
|
||||
|
||||
String token = net.getToken();
|
||||
|
||||
String url = String.format("http://www.last.fm/api/auth/?api_key=%s&token=%s",
|
||||
config.getValue("api_key"), token);
|
||||
|
||||
Tab tab = new WebViewTab(url);
|
||||
|
||||
tab.setOnClosed(new EventHandler<Event>() {
|
||||
|
||||
@Override
|
||||
public void handle(Event arg0) {
|
||||
completeAuth(net, token);
|
||||
}
|
||||
});
|
||||
|
||||
addTab(tab);
|
||||
|
||||
}
|
||||
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
protected void completeAuth(FmAuthNetwork net, String token) {
|
||||
|
||||
String sk = net.getSession(token);
|
||||
|
||||
if (sk != null) {
|
||||
FmFramework.getSessionConfig().addVariable(new ConfigVariable("session_key", sk));
|
||||
}
|
||||
}
|
||||
|
||||
public void changeUsername() {
|
||||
Service<Void> service = new Service<Void>() {
|
||||
@Override
|
||||
@ -216,7 +265,7 @@ public class RootController {
|
||||
};
|
||||
service.start();
|
||||
}
|
||||
|
||||
|
||||
public void setApiKey() {
|
||||
Service<Void> service = new Service<Void>() {
|
||||
@Override
|
||||
@ -356,7 +405,7 @@ public class RootController {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@FXML
|
||||
protected void handlePrintConfig(ActionEvent event) {
|
||||
System.out.println(FmFramework.getSessionConfig());
|
||||
|
28
src/main/java/sarsoo/fmframework/fx/tab/WebViewTab.java
Normal file
28
src/main/java/sarsoo/fmframework/fx/tab/WebViewTab.java
Normal file
@ -0,0 +1,28 @@
|
||||
package sarsoo.fmframework.fx.tab;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import javafx.scene.control.*;
|
||||
import javafx.scene.layout.*;
|
||||
import javafx.scene.web.WebEngine;
|
||||
import javafx.scene.web.WebView;
|
||||
|
||||
public class WebViewTab extends Tab {
|
||||
|
||||
public WebViewTab(String path) throws IOException {
|
||||
|
||||
setText("web view");
|
||||
|
||||
StackPane pane = new StackPane();
|
||||
|
||||
WebView web = new WebView();
|
||||
|
||||
pane.getChildren().add(web);
|
||||
|
||||
WebEngine webEngine = web.getEngine();
|
||||
webEngine.load(path);
|
||||
|
||||
setContent(pane);
|
||||
|
||||
}
|
||||
}
|
@ -34,6 +34,7 @@
|
||||
<Menu fx:id="menuUtil" mnemonicParsing="false" text="util">
|
||||
<items>
|
||||
<MenuItem fx:id="menuItemScrobble" mnemonicParsing="false" onAction="#handleScrobble" text="scrobble" />
|
||||
<MenuItem fx:id="menuItemAuth" mnemonicParsing="false" onAction="#handleAuth" text="authenticate" />
|
||||
<MenuItem fx:id="menuItemOpenConsole" mnemonicParsing="false" onAction="#handleOpenConsole" text="open console" />
|
||||
<MenuItem mnemonicParsing="false" onAction="#handleChangeUsername" text="set username" />
|
||||
<MenuItem fx:id="menuItemPrintConfig" mnemonicParsing="false" onAction="#handlePrintConfig" text="print config" />
|
||||
|
@ -17,29 +17,29 @@ public class FmAuthNetworkTest {
|
||||
@Test
|
||||
public void test() {
|
||||
|
||||
FmAuthNetwork net = new FmAuthNetwork(Key.getKey(), Key.getSecret(), "sarsoo");
|
||||
|
||||
// HashMap<String, String> hash = new HashMap<>();
|
||||
// FmAuthNetwork net = new FmAuthNetwork(Key.getKey(), Key.getSecret(), "sarsoo");
|
||||
//
|
||||
// hash.put("zoo", "ash");
|
||||
// hash.put("boo", "ash");
|
||||
// hash.put("ash", "boo");
|
||||
//// HashMap<String, String> hash = new HashMap<>();
|
||||
////
|
||||
//// hash.put("zoo", "ash");
|
||||
//// hash.put("boo", "ash");
|
||||
//// hash.put("ash", "boo");
|
||||
////
|
||||
//// net.getApiSignature(hash);
|
||||
//
|
||||
// net.getApiSignature(hash);
|
||||
|
||||
String token = net.getToken();
|
||||
|
||||
System.out.println(token);
|
||||
|
||||
// new Scanner(System.in).nextLine();
|
||||
|
||||
String key = net.getSession(token);
|
||||
|
||||
System.out.println(key);
|
||||
|
||||
Scrobble scrobble = new Scrobble(1557750712, new TrackBuilder("i", new ArtistBuilder("kendrick lamar").build()).build());
|
||||
|
||||
net.scrobble(scrobble, key);
|
||||
// String token = net.getToken();
|
||||
//
|
||||
// System.out.println(token);
|
||||
//
|
||||
//// new Scanner(System.in).nextLine();
|
||||
//
|
||||
// String key = net.getSession(token);
|
||||
//
|
||||
// System.out.println(key);
|
||||
//
|
||||
// Scrobble scrobble = new Scrobble(1557750712, new TrackBuilder("i", new ArtistBuilder("kendrick lamar").build()).build());
|
||||
//
|
||||
// net.scrobble(scrobble, key);
|
||||
|
||||
assertTrue(true);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user