migrated to fmnetwork for gui, changed console handling
This commit is contained in:
parent
65e3766a62
commit
7dcd3b9994
@ -2,4 +2,8 @@ package sarsoo.fmframework.fm;
|
||||
|
||||
public class FmAuthNetwork extends FmUserNetwork {
|
||||
|
||||
public FmAuthNetwork(String key, String userName) {
|
||||
super(key, userName);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,5 +1,382 @@
|
||||
package sarsoo.fmframework.fm;
|
||||
|
||||
import sarsoo.fmframework.music.Album;
|
||||
import sarsoo.fmframework.music.Album.AlbumBuilder;
|
||||
import sarsoo.fmframework.music.Artist;
|
||||
import sarsoo.fmframework.music.Artist.ArtistBuilder;
|
||||
import sarsoo.fmframework.music.FMObj;
|
||||
import sarsoo.fmframework.music.Track;
|
||||
import sarsoo.fmframework.music.Track.TrackBuilder;
|
||||
import sarsoo.fmframework.music.Wiki;
|
||||
import sarsoo.fmframework.util.ConsoleHandler;
|
||||
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import com.mashape.unirest.http.HttpResponse;
|
||||
import com.mashape.unirest.http.JsonNode;
|
||||
import com.mashape.unirest.http.Unirest;
|
||||
import com.mashape.unirest.http.exceptions.UnirestException;
|
||||
import com.mashape.unirest.request.HttpRequest;
|
||||
|
||||
public class FmNetwork {
|
||||
|
||||
protected String key;
|
||||
protected String userName;
|
||||
|
||||
public FmNetwork(String key) {
|
||||
this.key = key;
|
||||
}
|
||||
|
||||
public FmNetwork(String key, String userName) {
|
||||
this.key = key;
|
||||
this.userName = userName;
|
||||
}
|
||||
|
||||
public void setUserName(String userName) {
|
||||
this.userName = userName;
|
||||
}
|
||||
|
||||
public String getUserName() {
|
||||
return userName;
|
||||
}
|
||||
|
||||
public void clearUser() {
|
||||
this.userName = null;
|
||||
}
|
||||
|
||||
public Album getAlbum(String name, String artist) {
|
||||
if (ConsoleHandler.isVerbose())
|
||||
ConsoleHandler.getConsole().write(">>getAlbum: " + name + " " + artist);
|
||||
|
||||
HttpRequest request;
|
||||
try {
|
||||
request = Unirest.get("http://ws.audioscrobbler.com/2.0/").header("Accept", "application/json")
|
||||
.header("User-Agent", "fmframework").queryString("method", "album.getinfo")
|
||||
.queryString("artist", artist).queryString("album", name).queryString("api_key", key)
|
||||
.queryString("format", "json");
|
||||
|
||||
if (userName != null)
|
||||
request.queryString("username", userName);
|
||||
|
||||
HttpResponse<JsonNode> response = request.asJson();
|
||||
|
||||
JSONObject obj = new JSONObject(response.getBody().toString());
|
||||
|
||||
String nameIn;
|
||||
String artistIn;
|
||||
|
||||
try {
|
||||
|
||||
JSONObject albumJson = obj.getJSONObject("album");
|
||||
|
||||
nameIn = albumJson.getString("name");
|
||||
artistIn = albumJson.getString("artist");
|
||||
|
||||
AlbumBuilder builder = new AlbumBuilder(nameIn, getArtist(artistIn));
|
||||
|
||||
try {
|
||||
builder.setMbid(albumJson.getString("mbid"));
|
||||
} catch (JSONException e) {
|
||||
if (ConsoleHandler.isVerbose())
|
||||
ConsoleHandler.getConsole().write("ERROR: No MBID for " + nameIn + " , " + e.getMessage());
|
||||
else
|
||||
System.err.println("ERROR: No MBID for " + nameIn + " , " + e.getMessage());
|
||||
}
|
||||
|
||||
try {
|
||||
builder.setUrl(albumJson.getString("url"));
|
||||
} catch (JSONException e) {
|
||||
if (ConsoleHandler.isVerbose())
|
||||
ConsoleHandler.getConsole().write("ERROR: No Url for " + nameIn + " , " + e.getMessage());
|
||||
else
|
||||
System.err.println("ERROR: No Url for " + nameIn + " , " + e.getMessage());
|
||||
}
|
||||
|
||||
try {
|
||||
builder.setListeners(albumJson.getInt("listeners"));
|
||||
} catch (JSONException e) {
|
||||
if (ConsoleHandler.isVerbose())
|
||||
ConsoleHandler.getConsole().write("ERROR: No listeners for " + nameIn + " , " + e.getMessage());
|
||||
else
|
||||
System.err.println("ERROR: No listeners for " + nameIn + " , " + e.getMessage());
|
||||
}
|
||||
|
||||
try {
|
||||
builder.setPlayCount(albumJson.getInt("playcount"));
|
||||
} catch (JSONException e) {
|
||||
if (ConsoleHandler.isVerbose())
|
||||
ConsoleHandler.getConsole()
|
||||
.write("ERROR: No play count for " + nameIn + " , " + e.getMessage());
|
||||
else
|
||||
System.err.println("ERROR: No play count for " + nameIn + " , " + e.getMessage());
|
||||
}
|
||||
|
||||
try {
|
||||
builder.setUserPlayCount(albumJson.getInt("userplaycount"));
|
||||
} catch (JSONException e) {
|
||||
|
||||
}
|
||||
|
||||
try {
|
||||
JSONObject wikiJson = albumJson.getJSONObject("wiki");
|
||||
|
||||
Wiki wiki = new Wiki(wikiJson.getString("published"), wikiJson.getString("summary"),
|
||||
wikiJson.getString("content"));
|
||||
|
||||
builder.setWiki(wiki);
|
||||
|
||||
} catch (JSONException e) {
|
||||
if (ConsoleHandler.isVerbose())
|
||||
ConsoleHandler.getConsole().write("ERROR: No wiki for " + nameIn + " , " + e.getMessage());
|
||||
else
|
||||
System.err.println("ERROR: No wiki for " + nameIn + " , " + e.getMessage());
|
||||
}
|
||||
|
||||
return builder.build();
|
||||
|
||||
} catch (JSONException e) {
|
||||
if (ConsoleHandler.isVerbose())
|
||||
ConsoleHandler.getConsole().write("ERROR: Album Name Not Found, " + e.getMessage());
|
||||
else
|
||||
System.err.println("ERROR: Album Name Not Found, " + e.getMessage());
|
||||
}
|
||||
|
||||
} catch (UnirestException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
}
|
||||
|
||||
public Artist getArtist(String name) {
|
||||
if (ConsoleHandler.isVerbose())
|
||||
ConsoleHandler.getConsole().write(">>getArtist: " + name);
|
||||
|
||||
HttpRequest request;
|
||||
try {
|
||||
request = Unirest.get("http://ws.audioscrobbler.com/2.0/").header("Accept", "application/json")
|
||||
.header("User-Agent", "fmframework").queryString("method", "artist.getinfo")
|
||||
.queryString("artist", name).queryString("api_key", key).queryString("format", "json");
|
||||
|
||||
if (userName != null)
|
||||
request.queryString("username", userName);
|
||||
|
||||
HttpResponse<JsonNode> response = request.asJson();
|
||||
|
||||
JSONObject obj = new JSONObject(response.getBody().toString());
|
||||
|
||||
String artistName;
|
||||
|
||||
try {
|
||||
|
||||
JSONObject artistJson = obj.getJSONObject("artist");
|
||||
|
||||
artistName = artistJson.getString("name");
|
||||
|
||||
ArtistBuilder builder = new ArtistBuilder(artistName);
|
||||
|
||||
try {
|
||||
builder.setMbid(artistJson.getString("mbid"));
|
||||
} catch (JSONException e) {
|
||||
if (ConsoleHandler.isVerbose())
|
||||
ConsoleHandler.getConsole().write("ERROR: No MBID for " + artistName + " , " + e.getMessage());
|
||||
else
|
||||
System.err.println("ERROR: No MBID for " + artistName + " , " + e.getMessage());
|
||||
}
|
||||
|
||||
try {
|
||||
builder.setUrl(artistJson.getString("url"));
|
||||
} catch (JSONException e) {
|
||||
if (ConsoleHandler.isVerbose())
|
||||
ConsoleHandler.getConsole().write("ERROR: No Url for " + artistName + " , " + e.getMessage());
|
||||
else
|
||||
System.err.println("ERROR: No Url for " + artistName + " , " + e.getMessage());
|
||||
}
|
||||
|
||||
try {
|
||||
builder.setListeners(artistJson.getJSONObject("stats").getInt("listeners"));
|
||||
} catch (JSONException e) {
|
||||
if (ConsoleHandler.isVerbose())
|
||||
ConsoleHandler.getConsole()
|
||||
.write("ERROR: No listeners for " + artistName + " , " + e.getMessage());
|
||||
else
|
||||
System.err.println("ERROR: No listeners for " + artistName + " , " + e.getMessage());
|
||||
}
|
||||
|
||||
try {
|
||||
builder.setPlayCount(artistJson.getJSONObject("stats").getInt("playcount"));
|
||||
} catch (JSONException e) {
|
||||
if (ConsoleHandler.isVerbose())
|
||||
ConsoleHandler.getConsole()
|
||||
.write("ERROR: No play count for " + artistName + " , " + e.getMessage());
|
||||
else
|
||||
System.err.println("ERROR: No play count for " + artistName + " , " + e.getMessage());
|
||||
}
|
||||
|
||||
try {
|
||||
builder.setUserPlayCount(artistJson.getJSONObject("stats").getInt("userplaycount"));
|
||||
} catch (JSONException e) {
|
||||
|
||||
}
|
||||
|
||||
try {
|
||||
JSONObject wikiJson = artistJson.getJSONObject("bio");
|
||||
|
||||
Wiki wiki = new Wiki(wikiJson.getString("published"), wikiJson.getString("summary"),
|
||||
wikiJson.getString("content"));
|
||||
|
||||
builder.setWiki(wiki);
|
||||
|
||||
} catch (JSONException e) {
|
||||
if (ConsoleHandler.isVerbose())
|
||||
ConsoleHandler.getConsole().write("ERROR: No wiki for " + artistName + " , " + e.getMessage());
|
||||
else
|
||||
System.err.println("ERROR: No wiki for " + artistName + " , " + e.getMessage());
|
||||
}
|
||||
|
||||
return builder.build();
|
||||
|
||||
} catch (JSONException e) {
|
||||
if (ConsoleHandler.isVerbose())
|
||||
ConsoleHandler.getConsole().write("ERROR: Arist Name Not Found, " + e.getMessage());
|
||||
else
|
||||
System.err.println("ERROR: Arist Name Not Found, " + e.getMessage());
|
||||
}
|
||||
|
||||
} catch (UnirestException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
}
|
||||
|
||||
public Track getTrack(String name, String artist) {
|
||||
if (ConsoleHandler.isVerbose())
|
||||
ConsoleHandler.getConsole().write(">>getTrack: " + name + " " + artist);
|
||||
|
||||
HttpRequest request;
|
||||
try {
|
||||
request = Unirest.get("http://ws.audioscrobbler.com/2.0/").header("Accept", "application/json")
|
||||
.header("User-Agent", "fmframework").queryString("method", "track.getinfo")
|
||||
.queryString("artist", artist).queryString("track", name).queryString("api_key", key)
|
||||
.queryString("format", "json");
|
||||
|
||||
if (userName != null)
|
||||
request.queryString("username", userName);
|
||||
|
||||
HttpResponse<JsonNode> response = request.asJson();
|
||||
|
||||
JSONObject obj = new JSONObject(response.getBody().toString());
|
||||
|
||||
String nameIn;
|
||||
String artistIn;
|
||||
|
||||
try {
|
||||
|
||||
JSONObject trackJson = obj.getJSONObject("track");
|
||||
|
||||
nameIn = trackJson.getString("name");
|
||||
artistIn = trackJson.getJSONObject("artist").getString("name");
|
||||
|
||||
TrackBuilder builder = new TrackBuilder(nameIn, getArtist(artistIn));
|
||||
|
||||
try {
|
||||
builder.setMbid(trackJson.getString("mbid"));
|
||||
} catch (JSONException e) {
|
||||
if (ConsoleHandler.isVerbose())
|
||||
ConsoleHandler.getConsole().write("ERROR: No MBID for " + nameIn + " , " + e.getMessage());
|
||||
else
|
||||
System.err.println("ERROR: No MBID for " + nameIn + " , " + e.getMessage());
|
||||
}
|
||||
|
||||
try {
|
||||
builder.setUrl(trackJson.getString("url"));
|
||||
} catch (JSONException e) {
|
||||
if (ConsoleHandler.isVerbose())
|
||||
ConsoleHandler.getConsole().write("ERROR: No Url for " + nameIn + " , " + e.getMessage());
|
||||
else
|
||||
System.err.println("ERROR: No Url for " + nameIn + " , " + e.getMessage());
|
||||
}
|
||||
|
||||
try {
|
||||
builder.setListeners(trackJson.getInt("listeners"));
|
||||
} catch (JSONException e) {
|
||||
if (ConsoleHandler.isVerbose())
|
||||
ConsoleHandler.getConsole().write("ERROR: No listeners for " + nameIn + " , " + e.getMessage());
|
||||
else
|
||||
System.err.println("ERROR: No listeners for " + nameIn + " , " + e.getMessage());
|
||||
}
|
||||
|
||||
try {
|
||||
builder.setPlayCount(trackJson.getInt("playcount"));
|
||||
} catch (JSONException e) {
|
||||
if (ConsoleHandler.isVerbose())
|
||||
ConsoleHandler.getConsole()
|
||||
.write("ERROR: No play count for " + nameIn + " , " + e.getMessage());
|
||||
else
|
||||
System.err.println("ERROR: No play count for " + nameIn + " , " + e.getMessage());
|
||||
}
|
||||
|
||||
try {
|
||||
builder.setUserPlayCount(trackJson.getInt("userplaycount"));
|
||||
} catch (JSONException e) {
|
||||
|
||||
}
|
||||
|
||||
try {
|
||||
JSONObject wikiJson = trackJson.getJSONObject("wiki");
|
||||
|
||||
Wiki wiki = new Wiki(wikiJson.getString("published"), wikiJson.getString("summary"),
|
||||
wikiJson.getString("content"));
|
||||
|
||||
builder.setWiki(wiki);
|
||||
|
||||
} catch (JSONException e) {
|
||||
if (ConsoleHandler.isVerbose())
|
||||
ConsoleHandler.getConsole().write("ERROR: No wiki for " + nameIn + " , " + e.getMessage());
|
||||
else
|
||||
System.err.println("ERROR: No wiki for " + nameIn + " , " + e.getMessage());
|
||||
}
|
||||
|
||||
return builder.build();
|
||||
|
||||
} catch (JSONException e) {
|
||||
if (ConsoleHandler.isVerbose())
|
||||
ConsoleHandler.getConsole().write("ERROR: Album Name Not Found, " + e.getMessage());
|
||||
else
|
||||
System.err.println("ERROR: Album Name Not Found, " + e.getMessage());
|
||||
}
|
||||
|
||||
} catch (UnirestException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public Album refresh(Album album) {
|
||||
return getAlbum(album.getName(), album.getArtist().getName());
|
||||
}
|
||||
|
||||
public Artist refresh(Artist artist) {
|
||||
return getArtist(artist.getName());
|
||||
}
|
||||
|
||||
public Track refresh(Track track) {
|
||||
Track refreshedTrack = getTrack(track.getName(), track.getArtist().getName());
|
||||
|
||||
refreshedTrack.setAlbum(refresh(track.getAlbum()));
|
||||
|
||||
return refreshedTrack;
|
||||
}
|
||||
|
||||
public FMObj refresh(FMObj obj) {
|
||||
if(obj.getClass() == Track.class) return refresh((Track)obj);
|
||||
if(obj.getClass() == Album.class) return refresh((Album)obj);
|
||||
if(obj.getClass() == Artist.class) return refresh((Artist)obj);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,84 @@
|
||||
package sarsoo.fmframework.fm;
|
||||
|
||||
public class FmUserNetwork extends FmNetwork {
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import com.mashape.unirest.http.HttpResponse;
|
||||
import com.mashape.unirest.http.JsonNode;
|
||||
import com.mashape.unirest.http.Unirest;
|
||||
import com.mashape.unirest.http.exceptions.UnirestException;
|
||||
|
||||
import sarsoo.fmframework.music.Track;
|
||||
|
||||
public class FmUserNetwork extends FmNetwork{
|
||||
|
||||
public FmUserNetwork(String key, String userName) {
|
||||
super(key, userName);
|
||||
}
|
||||
|
||||
public User getUser() {
|
||||
try {
|
||||
HttpResponse<JsonNode> response = Unirest.get("http://ws.audioscrobbler.com/2.0/").
|
||||
header("Accept", "application/json").
|
||||
header("User-Agent", "fmframework").
|
||||
queryString("method","user.getinfo").
|
||||
queryString("user", userName).
|
||||
queryString("api_key", key).
|
||||
queryString("format", "json").
|
||||
asJson();
|
||||
|
||||
JSONObject obj = new JSONObject(response.getBody().toString()).getJSONObject("user");
|
||||
|
||||
return new User(obj.getString("name"),
|
||||
obj.getString("realname"),
|
||||
obj.getString("url"),
|
||||
obj.getString("country"),
|
||||
obj.getInt("age"),
|
||||
obj.getString("gender").charAt(0),
|
||||
obj.getInt("playcount"));
|
||||
|
||||
} catch (UnirestException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getUserRealName() {
|
||||
|
||||
return getUser().getRealName();
|
||||
}
|
||||
|
||||
public int getUserScrobbleCount() {
|
||||
|
||||
return getUser().getScrobbleCount();
|
||||
}
|
||||
|
||||
public Track getLastTrack() {
|
||||
try {
|
||||
HttpResponse<JsonNode> response = Unirest.get("http://ws.audioscrobbler.com/2.0/").
|
||||
header("Accept", "application/json").
|
||||
header("User-Agent", "fmframework").
|
||||
queryString("method","user.getrecenttracks").
|
||||
queryString("user", userName).
|
||||
queryString("api_key", key).
|
||||
queryString("format", "json").
|
||||
queryString("limit", "1").
|
||||
asJson();
|
||||
|
||||
JSONArray obj = new JSONObject(response.getBody().toString()).getJSONObject("recenttracks").getJSONArray("track");
|
||||
|
||||
JSONObject track = (JSONObject) obj.get(0);
|
||||
|
||||
Track trackObj = getTrack(track.getString("name"), track.getJSONObject("artist").getString("#text"));
|
||||
trackObj.setAlbum(getAlbum(track.getJSONObject("album").getString("#text"), track.getJSONObject("artist").getString("#text")));
|
||||
|
||||
return trackObj;
|
||||
|
||||
} catch (UnirestException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,64 @@
|
||||
package sarsoo.fmframework.fm;
|
||||
|
||||
public class User {
|
||||
|
||||
|
||||
private String userName;
|
||||
private String realName;
|
||||
|
||||
private String url;
|
||||
private String country;
|
||||
|
||||
private int age;
|
||||
private char gender;
|
||||
|
||||
private boolean isSubscriber;
|
||||
|
||||
private int playCount;
|
||||
|
||||
public User(String userName, String realName, String url, String country, int age, char gender, int playCount) {
|
||||
this.userName = userName;
|
||||
this.realName = realName;
|
||||
|
||||
this.url = url;
|
||||
this.country = country;
|
||||
|
||||
this.age = age;
|
||||
this.gender = gender;
|
||||
|
||||
// this.isSubscriber = isSubscriber;
|
||||
|
||||
this.playCount = playCount;
|
||||
}
|
||||
|
||||
public String getUserName() {
|
||||
return userName;
|
||||
}
|
||||
|
||||
public String getRealName() {
|
||||
return realName;
|
||||
}
|
||||
|
||||
public String getUrl() {
|
||||
return url;
|
||||
}
|
||||
|
||||
public String getCountry() {
|
||||
return country;
|
||||
}
|
||||
|
||||
public int getAge() {
|
||||
return age;
|
||||
}
|
||||
|
||||
public char getGender() {
|
||||
return gender;
|
||||
}
|
||||
|
||||
public boolean isSubscriber() {
|
||||
return isSubscriber;
|
||||
}
|
||||
|
||||
public int getScrobbleCount() {
|
||||
return playCount;
|
||||
}
|
||||
}
|
||||
|
@ -47,10 +47,10 @@ public class FmFramework extends Application {
|
||||
launch(args);
|
||||
}
|
||||
|
||||
public void changeScene() throws IOException {
|
||||
Parent root = FXMLLoader.load(getClass().getResource("ui/changed.fxml"));
|
||||
|
||||
}
|
||||
// public void changeScene() throws IOException {
|
||||
// Parent root = FXMLLoader.load(getClass().getResource("ui/changed.fxml"));
|
||||
//
|
||||
// }
|
||||
|
||||
public static ControllerMain getController() {
|
||||
return control;
|
||||
|
@ -6,10 +6,12 @@ import java.util.Locale;
|
||||
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.fxml.FXML;
|
||||
import sarsoo.fmframework.fm.FmNetwork;
|
||||
import sarsoo.fmframework.fx.ArtistTab;
|
||||
import sarsoo.fmframework.fx.FmFramework;
|
||||
import sarsoo.fmframework.music.Album;
|
||||
import sarsoo.fmframework.music.Wiki;
|
||||
import sarsoo.fmframework.net.Key;
|
||||
import sarsoo.fmframework.net.Network;
|
||||
import sarsoo.fmframework.util.Maths;
|
||||
import sarsoo.fmframework.util.Reference;
|
||||
@ -101,7 +103,7 @@ public class AlbumPaneController {
|
||||
}
|
||||
|
||||
public void refresh() {
|
||||
album.refresh();
|
||||
album = new FmNetwork(Key.getKey(), Reference.getUserName()).refresh(album);
|
||||
|
||||
NumberFormat numberFormat = NumberFormat.getNumberInstance(Locale.US);
|
||||
|
||||
|
@ -6,10 +6,12 @@ import java.util.Locale;
|
||||
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.fxml.FXML;
|
||||
import sarsoo.fmframework.fm.FmNetwork;
|
||||
import sarsoo.fmframework.fx.FMObjListTab;
|
||||
import sarsoo.fmframework.fx.FmFramework;
|
||||
import sarsoo.fmframework.music.Artist;
|
||||
import sarsoo.fmframework.music.Wiki;
|
||||
import sarsoo.fmframework.net.Key;
|
||||
import sarsoo.fmframework.net.Network;
|
||||
import sarsoo.fmframework.util.Getter;
|
||||
import sarsoo.fmframework.util.Maths;
|
||||
@ -104,7 +106,7 @@ public class ArtistPaneController {
|
||||
}
|
||||
|
||||
public void refresh() {
|
||||
artist.refresh();
|
||||
artist = new FmNetwork(Key.getKey(), Reference.getUserName()).refresh(artist);
|
||||
|
||||
NumberFormat numberFormat = NumberFormat.getNumberInstance(Locale.US);
|
||||
|
||||
|
@ -16,6 +16,7 @@ import javafx.event.EventHandler;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.stage.FileChooser;
|
||||
import sarsoo.fmframework.file.ListPersister;
|
||||
import sarsoo.fmframework.fm.FmUserNetwork;
|
||||
import sarsoo.fmframework.fx.AlbumTab;
|
||||
import sarsoo.fmframework.fx.ArtistTab;
|
||||
import sarsoo.fmframework.fx.ConsoleTab;
|
||||
@ -28,6 +29,8 @@ import sarsoo.fmframework.music.Album;
|
||||
import sarsoo.fmframework.music.Artist;
|
||||
import sarsoo.fmframework.music.Tag;
|
||||
import sarsoo.fmframework.music.Track;
|
||||
import sarsoo.fmframework.net.Key;
|
||||
import sarsoo.fmframework.util.ConsoleHandler;
|
||||
import sarsoo.fmframework.util.FMObjList;
|
||||
import sarsoo.fmframework.util.Getter;
|
||||
import sarsoo.fmframework.util.Reference;
|
||||
@ -49,7 +52,7 @@ public class ControllerMain {
|
||||
public void initialize() {
|
||||
// Reference.setUserName("sarsoo");
|
||||
|
||||
Reference.setVerbose(TextAreaConsole.getInstance());
|
||||
ConsoleHandler.setVerbose(TextAreaConsole.getInstance());
|
||||
|
||||
refresh();
|
||||
}
|
||||
@ -63,11 +66,13 @@ public class ControllerMain {
|
||||
@Override
|
||||
protected Void call() throws Exception {
|
||||
NumberFormat numberFormat = NumberFormat.getNumberInstance(Locale.US);
|
||||
|
||||
FmUserNetwork net = new FmUserNetwork(Key.getKey(), Reference.getUserName());
|
||||
|
||||
String scrobblesToday = numberFormat.format(Getter.getScrobblesToday(Reference.getUserName()));
|
||||
String scrobbles = numberFormat.format(Getter.getScrobbles(Reference.getUserName()));
|
||||
String scrobblesToday = numberFormat.format(0);
|
||||
String scrobbles = numberFormat.format(net.getUserScrobbleCount());
|
||||
|
||||
TrackTab tab = new TrackTab(Getter.getLastTrack());
|
||||
TrackTab tab = new TrackTab(net.getLastTrack());
|
||||
|
||||
final CountDownLatch latch = new CountDownLatch(1);
|
||||
Platform.runLater(new Runnable() {
|
||||
@ -599,7 +604,7 @@ public class ControllerMain {
|
||||
@Override
|
||||
protected Void call() throws Exception {
|
||||
|
||||
Track track = Getter.getLastTrack();
|
||||
Track track = new FmUserNetwork(Key.getKey(), Reference.getUserName()).getLastTrack();
|
||||
|
||||
if (track != null) {
|
||||
TrackTab tab = new TrackTab(track);
|
||||
|
@ -14,10 +14,12 @@ import javafx.event.EventHandler;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.control.*;
|
||||
import javafx.scene.input.MouseEvent;
|
||||
import sarsoo.fmframework.fm.FmUserNetwork;
|
||||
import sarsoo.fmframework.fx.ArtistTab;
|
||||
import sarsoo.fmframework.fx.FmFramework;
|
||||
import sarsoo.fmframework.music.Artist;
|
||||
import sarsoo.fmframework.music.FMObj;
|
||||
import sarsoo.fmframework.net.Key;
|
||||
import sarsoo.fmframework.util.FMObjList;
|
||||
import sarsoo.fmframework.util.Getter;
|
||||
import sarsoo.fmframework.util.Maths;
|
||||
@ -94,7 +96,7 @@ public class FMObjListPaneController {
|
||||
|
||||
ObservableList<PieChart.Data> pieChartData = FXCollections.observableArrayList(
|
||||
new PieChart.Data(list.getGroupName(), list.getTotalUserScrobbles()),
|
||||
new PieChart.Data("other", Getter.getScrobbles(Reference.getUserName()) - list.getTotalUserScrobbles()));
|
||||
new PieChart.Data("other", new FmUserNetwork(Key.getKey(), Reference.getUserName()).getUserScrobbleCount() - list.getTotalUserScrobbles()));
|
||||
|
||||
ObservableList<PieChart.Data> pieChartArtistsData = FXCollections.observableArrayList();
|
||||
int counter2;
|
||||
@ -128,7 +130,7 @@ public class FMObjListPaneController {
|
||||
double percent = Maths.getPercentListening(list, Reference.getUserName());
|
||||
NumberFormat numberFormat = NumberFormat.getNumberInstance(Locale.US);
|
||||
|
||||
labelTotalScrobbles.setText("Σ " + list.getTotalUserScrobbles());
|
||||
labelTotalScrobbles.setText("Σ " + list.getTotalUserScrobbles());
|
||||
labelPercent.setText(String.format("%.2f%%", percent));
|
||||
|
||||
Collections.sort(list);
|
||||
@ -174,7 +176,7 @@ public class FMObjListPaneController {
|
||||
|
||||
ObservableList<PieChart.Data> pieChartData = FXCollections.observableArrayList(
|
||||
new PieChart.Data(list.getGroupName(), list.getTotalUserScrobbles()),
|
||||
new PieChart.Data("other", Getter.getScrobbles(Reference.getUserName()) - list.getTotalUserScrobbles()));
|
||||
new PieChart.Data("other", new FmUserNetwork(Key.getKey(), Reference.getUserName()).getUserScrobbleCount() - list.getTotalUserScrobbles()));
|
||||
pieChart.setData(pieChartData);
|
||||
}
|
||||
|
||||
|
@ -15,6 +15,8 @@ import javafx.fxml.FXML;
|
||||
import javafx.scene.control.*;
|
||||
import javafx.scene.input.MouseEvent;
|
||||
import sarsoo.fmframework.file.ListPersister;
|
||||
import sarsoo.fmframework.fm.FmNetwork;
|
||||
import sarsoo.fmframework.fm.FmUserNetwork;
|
||||
import sarsoo.fmframework.fx.AlbumTab;
|
||||
import sarsoo.fmframework.fx.ArtistTab;
|
||||
import sarsoo.fmframework.fx.FmFramework;
|
||||
@ -23,6 +25,7 @@ import sarsoo.fmframework.music.Album;
|
||||
import sarsoo.fmframework.music.Artist;
|
||||
import sarsoo.fmframework.music.FMObj;
|
||||
import sarsoo.fmframework.music.Track;
|
||||
import sarsoo.fmframework.net.Key;
|
||||
import sarsoo.fmframework.util.FMObjList;
|
||||
import sarsoo.fmframework.util.Getter;
|
||||
import sarsoo.fmframework.util.Maths;
|
||||
@ -59,7 +62,7 @@ public class FMObjListPaneEditController {
|
||||
// double percent = Maths.getPercentListening(list, Reference.getUserName());
|
||||
// NumberFormat numberFormat = NumberFormat.getNumberInstance(Locale.US);
|
||||
//
|
||||
// labelTotalScrobbles.setText("Σ " + list.getTotalUserScrobbles());
|
||||
// labelTotalScrobbles.setText("Σ " + list.getTotalUserScrobbles());
|
||||
// labelPercent.setText(String.format("%.2f%%", percent));
|
||||
//
|
||||
// Collections.sort(list);
|
||||
@ -138,9 +141,12 @@ public class FMObjListPaneEditController {
|
||||
}
|
||||
|
||||
public void updateList() {
|
||||
|
||||
FmNetwork net = new FmNetwork(Key.getKey(), Reference.getUserName());
|
||||
|
||||
int counter;
|
||||
for (counter = 0; counter < list.size(); counter++) {
|
||||
list.get(counter).refresh();
|
||||
net.refresh(list.get(counter));
|
||||
}
|
||||
}
|
||||
|
||||
@ -152,6 +158,7 @@ public class FMObjListPaneEditController {
|
||||
labelPercent.setText(String.format("%.2f%%", percent));
|
||||
|
||||
Collections.sort(list);
|
||||
|
||||
Collections.reverse(list);
|
||||
|
||||
gridPaneFMObjs.getChildren().clear();
|
||||
@ -211,7 +218,7 @@ public class FMObjListPaneEditController {
|
||||
|
||||
}
|
||||
|
||||
int other = Getter.getScrobbles(Reference.getUserName()) - list.getTotalUserScrobbles();
|
||||
int other = new FmUserNetwork(Key.getKey(), Reference.getUserName()).getUserScrobbleCount() - list.getTotalUserScrobbles();
|
||||
ObservableList<PieChart.Data> pieChartData = FXCollections.observableArrayList(
|
||||
new PieChart.Data(String.format("%d%%", (int) list.getTotalUserScrobbles() * 100 / other),
|
||||
list.getTotalUserScrobbles()),
|
||||
@ -238,15 +245,17 @@ public class FMObjListPaneEditController {
|
||||
|
||||
@FXML
|
||||
protected void handleAddTrack(ActionEvent event) {
|
||||
|
||||
FmNetwork net = new FmNetwork(Key.getKey(), Reference.getUserName());
|
||||
|
||||
String name = textTrack.getText();
|
||||
String album = textAlbum.getText();
|
||||
String artist = textArtist.getText();
|
||||
|
||||
if ((name != null) && (artist != null)) {
|
||||
Track track = Track.getTrack(name, artist, Reference.getUserName());
|
||||
Track track = net.getTrack(name, artist);
|
||||
if (album != null) {
|
||||
Album albumObj = Album.getAlbum(album, artist, Reference.getUserName());
|
||||
Album albumObj = net.getAlbum(album, artist);
|
||||
track.setAlbum(albumObj);
|
||||
|
||||
textAlbum.setText(null);
|
||||
@ -264,12 +273,13 @@ public class FMObjListPaneEditController {
|
||||
|
||||
@FXML
|
||||
protected void handleAddAlbum(ActionEvent event) {
|
||||
|
||||
FmNetwork net = new FmNetwork(Key.getKey(), Reference.getUserName());
|
||||
|
||||
String album = textAlbum.getText();
|
||||
String artist = textArtist.getText();
|
||||
|
||||
if ((album != null) && (artist != null)) {
|
||||
Album albumObj = Album.getAlbum(album, artist, Reference.getUserName());
|
||||
Album albumObj = net.getAlbum(album, artist);
|
||||
|
||||
list.add(albumObj);
|
||||
textAlbum.setText(null);
|
||||
@ -282,12 +292,13 @@ public class FMObjListPaneEditController {
|
||||
|
||||
@FXML
|
||||
protected void handleAddArtist(ActionEvent event) {
|
||||
|
||||
FmNetwork net = new FmNetwork(Key.getKey(), Reference.getUserName());
|
||||
|
||||
String artist = textArtist.getText();
|
||||
|
||||
if (artist != null) {
|
||||
|
||||
Artist artistObj = Artist.getArtist(artist, Reference.getUserName());
|
||||
Artist artistObj = net.getArtist(artist);
|
||||
|
||||
list.add(artistObj);
|
||||
|
||||
|
@ -6,11 +6,13 @@ import java.util.Locale;
|
||||
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.fxml.FXML;
|
||||
import sarsoo.fmframework.fm.FmNetwork;
|
||||
import sarsoo.fmframework.fx.AlbumTab;
|
||||
import sarsoo.fmframework.fx.ArtistTab;
|
||||
import sarsoo.fmframework.fx.FmFramework;
|
||||
import sarsoo.fmframework.music.Track;
|
||||
import sarsoo.fmframework.music.Wiki;
|
||||
import sarsoo.fmframework.net.Key;
|
||||
import sarsoo.fmframework.net.Network;
|
||||
import sarsoo.fmframework.util.Maths;
|
||||
import sarsoo.fmframework.util.Reference;
|
||||
@ -115,7 +117,7 @@ public class TrackPaneController {
|
||||
}
|
||||
|
||||
public void refresh() {
|
||||
track.refresh();
|
||||
track = new FmNetwork(Key.getKey(), Reference.getUserName()).refresh(track);
|
||||
|
||||
NumberFormat numberFormat = NumberFormat.getNumberInstance(Locale.US);
|
||||
|
||||
|
@ -16,23 +16,46 @@ public class Album extends FMObj implements Serializable{
|
||||
private static final long serialVersionUID = 1L;
|
||||
protected Artist artist;
|
||||
protected ArrayList<Tag> tagList;
|
||||
// protected ArrayList<Track> trackList;
|
||||
protected ArrayList<Track> trackList;
|
||||
|
||||
@Deprecated
|
||||
public Album(String name, String artist) {
|
||||
super(name, null, null, 0, 0, 0, null);
|
||||
this.artist = Artist.getArtist(artist, Reference.getUserName());
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public Album(String name, String url, String mbid, Artist artist, int listeners, int playCount, int userPlayCount,
|
||||
Wiki wiki) {
|
||||
super(name, url, mbid, listeners, playCount, userPlayCount, wiki);
|
||||
this.artist = artist;
|
||||
}
|
||||
|
||||
private Album(AlbumBuilder builder) {
|
||||
this.name = builder.name;
|
||||
this.artist = builder.artist;
|
||||
|
||||
this.url = builder.url;
|
||||
|
||||
this.listeners = builder.listeners;
|
||||
this.playCount = builder.playCount;
|
||||
this.userPlayCount = builder.userPlayCount;
|
||||
|
||||
this.wiki = builder.wiki;
|
||||
|
||||
this.mbid = builder.mbid;
|
||||
|
||||
this.tagList = builder.tagList;
|
||||
this.trackList = builder.trackList;
|
||||
|
||||
|
||||
}
|
||||
|
||||
public Artist getArtist() {
|
||||
return artist;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public static Album getAlbum(String name, String artist, String username) {
|
||||
String url = URLBuilder.getAlbumInfoUrl(name, artist, username);
|
||||
Document response = Network.getResponse(url);
|
||||
@ -70,6 +93,7 @@ public class Album extends FMObj implements Serializable{
|
||||
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
@Override
|
||||
public void view() {
|
||||
AlbumView view = new AlbumView(this);
|
||||
@ -94,6 +118,7 @@ public class Album extends FMObj implements Serializable{
|
||||
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
@Override
|
||||
public void refresh() {
|
||||
Album album = Album.getAlbum(name, artist.getName(), Reference.getUserName());
|
||||
@ -105,4 +130,74 @@ public class Album extends FMObj implements Serializable{
|
||||
this.mbid = album.mbid;
|
||||
|
||||
}
|
||||
|
||||
public static class AlbumBuilder{
|
||||
|
||||
protected String name;
|
||||
protected Artist artist;
|
||||
|
||||
protected String url;
|
||||
|
||||
protected int listeners;
|
||||
protected int playCount;
|
||||
protected int userPlayCount;
|
||||
|
||||
protected Wiki wiki;
|
||||
|
||||
protected String mbid;
|
||||
|
||||
protected ArrayList<Tag> tagList;
|
||||
protected ArrayList<Track> trackList;
|
||||
|
||||
|
||||
public AlbumBuilder(String name, Artist artist) {
|
||||
|
||||
this.name = name;
|
||||
this.artist = artist;
|
||||
}
|
||||
|
||||
public AlbumBuilder setUrl(String url) {
|
||||
this.url = url;
|
||||
return this;
|
||||
}
|
||||
|
||||
public AlbumBuilder setListeners(int listeners) {
|
||||
this.listeners = listeners;
|
||||
return this;
|
||||
}
|
||||
|
||||
public AlbumBuilder setPlayCount(int playCount) {
|
||||
this.playCount = playCount;
|
||||
return this;
|
||||
}
|
||||
|
||||
public AlbumBuilder setUserPlayCount(int userPlayCount) {
|
||||
this.userPlayCount = userPlayCount;
|
||||
return this;
|
||||
}
|
||||
|
||||
public AlbumBuilder setWiki(Wiki wiki) {
|
||||
this.wiki = wiki;
|
||||
return this;
|
||||
}
|
||||
|
||||
public AlbumBuilder setMbid(String Mbid) {
|
||||
this.mbid = Mbid;
|
||||
return this;
|
||||
}
|
||||
|
||||
public AlbumBuilder setTagList(ArrayList<Tag> tagList) {
|
||||
this.tagList = tagList;
|
||||
return this;
|
||||
}
|
||||
|
||||
public AlbumBuilder setTrackList(ArrayList<Track> trackList) {
|
||||
this.trackList = trackList;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Album build() {
|
||||
return new Album(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ import java.util.ArrayList;
|
||||
|
||||
import org.w3c.dom.Document;
|
||||
|
||||
import sarsoo.fmframework.music.Album.AlbumBuilder;
|
||||
import sarsoo.fmframework.net.Network;
|
||||
import sarsoo.fmframework.net.URLBuilder;
|
||||
//import sarsoo.fmframework.net.TestCall;
|
||||
@ -23,14 +24,37 @@ public class Artist extends FMObj implements Serializable{
|
||||
protected ArrayList<Artist> similarArtists;
|
||||
protected ArrayList<Tag> tagList;
|
||||
|
||||
@Deprecated
|
||||
public Artist(String name) {
|
||||
super(name, null, null, 0, 0, 0, null);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public Artist(String name, String url, String mbid, int listeners, int playCount, int userPlayCount, Wiki wiki) {
|
||||
super(name, url, mbid, listeners, playCount, userPlayCount, wiki);
|
||||
}
|
||||
|
||||
private Artist(ArtistBuilder builder) {
|
||||
this.name = builder.name;
|
||||
|
||||
this.url = builder.url;
|
||||
|
||||
this.listeners = builder.listeners;
|
||||
this.playCount = builder.playCount;
|
||||
this.userPlayCount = builder.userPlayCount;
|
||||
|
||||
this.wiki = builder.wiki;
|
||||
|
||||
this.mbid = builder.mbid;
|
||||
|
||||
this.albums = builder.albums;
|
||||
this.similarArtists = builder.similarArtists;
|
||||
this.tagList = builder.tagList;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public static Artist getArtist(String name, String username) {
|
||||
String url = URLBuilder.getArtistInfoUrl(name, username);
|
||||
// TestCall.test(url);
|
||||
@ -86,6 +110,7 @@ public class Artist extends FMObj implements Serializable{
|
||||
return "Artist: " + name;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
@Override
|
||||
public void refresh() {
|
||||
Artist artist = Artist.getArtist(name, Reference.getUserName());
|
||||
@ -98,5 +123,80 @@ public class Artist extends FMObj implements Serializable{
|
||||
|
||||
|
||||
}
|
||||
|
||||
public static class ArtistBuilder{
|
||||
|
||||
protected String name;
|
||||
|
||||
protected String url;
|
||||
|
||||
protected int listeners;
|
||||
protected int playCount;
|
||||
protected int userPlayCount;
|
||||
|
||||
protected Wiki wiki;
|
||||
|
||||
protected String mbid;
|
||||
|
||||
protected ArrayList<Album> albums;
|
||||
protected ArrayList<Artist> similarArtists;
|
||||
protected ArrayList<Tag> tagList;
|
||||
|
||||
|
||||
public ArtistBuilder(String name) {
|
||||
|
||||
this.name = name;
|
||||
|
||||
}
|
||||
|
||||
public ArtistBuilder setUrl(String url) {
|
||||
this.url = url;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ArtistBuilder setListeners(int listeners) {
|
||||
this.listeners = listeners;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ArtistBuilder setPlayCount(int playCount) {
|
||||
this.playCount = playCount;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ArtistBuilder setUserPlayCount(int userPlayCount) {
|
||||
this.userPlayCount = userPlayCount;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ArtistBuilder setWiki(Wiki wiki) {
|
||||
this.wiki = wiki;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ArtistBuilder setMbid(String Mbid) {
|
||||
this.mbid = Mbid;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ArtistBuilder setAlbums(ArrayList<Album> albums) {
|
||||
this.albums = albums;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ArtistBuilder setSimilarArtists(ArrayList<Artist> similarArtists) {
|
||||
this.similarArtists = similarArtists;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ArtistBuilder setTagList(ArrayList<Tag> tagList) {
|
||||
this.tagList = tagList;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Artist build() {
|
||||
return new Artist(this);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -23,6 +23,11 @@ public abstract class FMObj implements Comparable<FMObj>, Serializable{
|
||||
|
||||
protected Wiki wiki;
|
||||
|
||||
public FMObj() {
|
||||
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public FMObj(String name, String url, String mbid, int listeners, int playCount, int userPlayCount, Wiki wiki) {
|
||||
this.name = name;
|
||||
this.url = url;
|
||||
@ -33,8 +38,10 @@ public abstract class FMObj implements Comparable<FMObj>, Serializable{
|
||||
this.wiki = wiki;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public abstract void refresh();
|
||||
|
||||
@Deprecated
|
||||
public void view() {
|
||||
FMObjView view = new FMObjView(this);
|
||||
view.setVisible(true);
|
||||
|
@ -6,15 +6,15 @@ import java.util.ArrayList;
|
||||
import org.w3c.dom.Document;
|
||||
|
||||
import sarsoo.fmframework.jframe.TrackView;
|
||||
import sarsoo.fmframework.music.Artist.ArtistBuilder;
|
||||
import sarsoo.fmframework.net.Network;
|
||||
import sarsoo.fmframework.net.URLBuilder;
|
||||
//import sarsoo.fmframework.net.TestCall;
|
||||
import sarsoo.fmframework.parser.Parser;
|
||||
import sarsoo.fmframework.util.Reference;
|
||||
|
||||
public class Track extends FMObj implements Serializable{
|
||||
|
||||
|
||||
public class Track extends FMObj implements Serializable {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@ -23,26 +23,51 @@ public class Track extends FMObj implements Serializable{
|
||||
protected Artist artist;
|
||||
protected int trackNumber;
|
||||
protected int duration;
|
||||
protected boolean streamable;
|
||||
protected boolean isLoved;
|
||||
protected ArrayList<Tag> tagList;
|
||||
|
||||
private int utsFirstListen;
|
||||
|
||||
|
||||
@Deprecated
|
||||
public Track(String name, String artist) {
|
||||
super(name, null, null, 0, 0, 0, null);
|
||||
this.artist = new Artist(artist);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public Track(String name, String url, String mbid, Artist artist, int listeners, int playCount, int userPlayCount,
|
||||
Wiki wiki) {
|
||||
super(name, url, mbid, listeners, playCount, userPlayCount, wiki);
|
||||
this.artist = artist;
|
||||
}
|
||||
|
||||
private Track(TrackBuilder builder) {
|
||||
|
||||
this.name = builder.name;
|
||||
|
||||
this.url = builder.url;
|
||||
|
||||
this.listeners = builder.listeners;
|
||||
this.playCount = builder.playCount;
|
||||
this.userPlayCount = builder.userPlayCount;
|
||||
|
||||
this.wiki = builder.wiki;
|
||||
|
||||
this.mbid = builder.mbid;
|
||||
|
||||
this.album = builder.album;
|
||||
this.artist = builder.artist;
|
||||
this.trackNumber = builder.trackNumber;
|
||||
this.duration = builder.duration;
|
||||
this.isLoved = builder.isLoved;
|
||||
this.tagList = builder.tagList;
|
||||
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public static Track getTrack(String name, String artist, String username) {
|
||||
// System.out.println("Artist " + artist);
|
||||
// System.out.println("track " + name);
|
||||
// System.out.println("Artist " + artist);
|
||||
// System.out.println("track " + name);
|
||||
String url = URLBuilder.getTrackInfoUrl(name, artist, username);
|
||||
// TestCall.test(url);
|
||||
Document response = Network.getResponse(url);
|
||||
@ -91,6 +116,7 @@ public class Track extends FMObj implements Serializable{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
@Override
|
||||
public void view() {
|
||||
TrackView view = new TrackView(this);
|
||||
@ -98,23 +124,24 @@ public class Track extends FMObj implements Serializable{
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
if(album != null)
|
||||
return "Track: " + name + " - " + album.getName() + " - " + artist.getName();
|
||||
if (album != null)
|
||||
return "Track: " + name + " - " + album.getName() + " - " + artist.getName();
|
||||
return "Track: " + name + " - " + artist.getName();
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Deprecated
|
||||
@Override
|
||||
public void refresh() {
|
||||
Track track = Track.getTrack(name, artist.getName(), Reference.getUserName());
|
||||
|
||||
|
||||
this.listeners = track.listeners;
|
||||
this.userPlayCount = track.userPlayCount;
|
||||
this.playCount = track.playCount;
|
||||
this.wiki = track.wiki;
|
||||
this.mbid = track.mbid;
|
||||
this.isLoved = track.isLoved;
|
||||
|
||||
|
||||
}
|
||||
|
||||
public int getUtsFirstListen() {
|
||||
@ -124,4 +151,104 @@ public class Track extends FMObj implements Serializable{
|
||||
public void setUtsFirstListen(int utsFirstListen) {
|
||||
this.utsFirstListen = utsFirstListen;
|
||||
}
|
||||
|
||||
public static class TrackBuilder {
|
||||
|
||||
protected String name;
|
||||
|
||||
protected String url;
|
||||
|
||||
protected int listeners;
|
||||
protected int playCount;
|
||||
protected int userPlayCount;
|
||||
|
||||
protected Wiki wiki;
|
||||
|
||||
protected String mbid;
|
||||
|
||||
protected Album album;
|
||||
protected Artist artist;
|
||||
protected int trackNumber;
|
||||
protected int duration;
|
||||
protected boolean isLoved;
|
||||
protected ArrayList<Tag> tagList;
|
||||
|
||||
private int utsFirstListen;
|
||||
|
||||
public TrackBuilder(String name, Artist artist) {
|
||||
|
||||
this.name = name;
|
||||
this.artist = artist;
|
||||
|
||||
}
|
||||
|
||||
public TrackBuilder setUrl(String url) {
|
||||
this.url = url;
|
||||
return this;
|
||||
}
|
||||
|
||||
public TrackBuilder setListeners(int listeners) {
|
||||
this.listeners = listeners;
|
||||
return this;
|
||||
}
|
||||
|
||||
public TrackBuilder setPlayCount(int playCount) {
|
||||
this.playCount = playCount;
|
||||
return this;
|
||||
}
|
||||
|
||||
public TrackBuilder setUserPlayCount(int userPlayCount) {
|
||||
this.userPlayCount = userPlayCount;
|
||||
return this;
|
||||
}
|
||||
|
||||
public TrackBuilder setWiki(Wiki wiki) {
|
||||
this.wiki = wiki;
|
||||
return this;
|
||||
}
|
||||
|
||||
public TrackBuilder setMbid(String Mbid) {
|
||||
this.mbid = Mbid;
|
||||
return this;
|
||||
}
|
||||
|
||||
public TrackBuilder setAlbum(Album album) {
|
||||
this.album = album;
|
||||
return this;
|
||||
}
|
||||
|
||||
public TrackBuilder setArtist(Artist artist) {
|
||||
this.artist = artist;
|
||||
return this;
|
||||
}
|
||||
|
||||
public TrackBuilder setTrackNumber(int trackNumber) {
|
||||
this.trackNumber = trackNumber;
|
||||
return this;
|
||||
}
|
||||
|
||||
public TrackBuilder setDuration(int duration) {
|
||||
this.duration = duration;
|
||||
return this;
|
||||
}
|
||||
|
||||
public TrackBuilder set(int userPlayCount) {
|
||||
this.userPlayCount = userPlayCount;
|
||||
return this;
|
||||
}
|
||||
|
||||
public TrackBuilder setIsLoved(boolean isLoved) {
|
||||
this.isLoved = isLoved;
|
||||
return this;
|
||||
}
|
||||
|
||||
public TrackBuilder setTagList(ArrayList<Tag> tagList) {
|
||||
this.tagList = tagList;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Track build() {
|
||||
return new Track(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ import sarsoo.fmframework.music.Artist;
|
||||
|
||||
import org.w3c.dom.Document;
|
||||
|
||||
|
||||
@Deprecated
|
||||
public class AlbumParser {
|
||||
|
||||
public static Album parseAlbum(Document doc){
|
||||
|
@ -26,6 +26,7 @@ import sarsoo.fmframework.music.Wiki;
|
||||
import sarsoo.fmframework.util.FMObjList;
|
||||
import sarsoo.fmframework.util.Reference;
|
||||
|
||||
@Deprecated
|
||||
public class Parser {
|
||||
|
||||
public static Album parseAlbum(Document doc) {
|
||||
|
25
src/main/java/sarsoo/fmframework/util/ConsoleHandler.java
Normal file
25
src/main/java/sarsoo/fmframework/util/ConsoleHandler.java
Normal file
@ -0,0 +1,25 @@
|
||||
package sarsoo.fmframework.util;
|
||||
|
||||
public class ConsoleHandler {
|
||||
|
||||
private static Console console;
|
||||
|
||||
private static boolean isVerbose = false;
|
||||
|
||||
public static Console getConsole() {
|
||||
return console;
|
||||
}
|
||||
|
||||
public static boolean isVerbose() {
|
||||
return isVerbose;
|
||||
}
|
||||
|
||||
public static void setVerbose(Console consoleIn) {
|
||||
if(consoleIn == null)
|
||||
isVerbose = false;
|
||||
else
|
||||
isVerbose = true;
|
||||
console = consoleIn;
|
||||
}
|
||||
|
||||
}
|
@ -3,12 +3,15 @@ package sarsoo.fmframework.util;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.GregorianCalendar;
|
||||
|
||||
import sarsoo.fmframework.fm.FmUserNetwork;
|
||||
import sarsoo.fmframework.music.FMObj;
|
||||
import sarsoo.fmframework.net.Key;
|
||||
|
||||
public class Maths {
|
||||
public static double getPercentListening(FMObj obj, String username) {
|
||||
|
||||
int userScrobbles = Getter.getScrobbles(Reference.getUserName());
|
||||
int userScrobbles = new FmUserNetwork(Key.getKey(), username).getUserScrobbleCount();
|
||||
double plays = (double) obj.getUserPlayCount();
|
||||
if (userScrobbles > 0 && plays > 0) {
|
||||
|
||||
@ -24,7 +27,7 @@ public class Maths {
|
||||
|
||||
public static double getPercentListening(FMObjList objList, String username) {
|
||||
|
||||
int userScrobbles = Getter.getScrobbles(Reference.getUserName());
|
||||
int userScrobbles = new FmUserNetwork(Key.getKey(), username).getUserScrobbleCount();
|
||||
double plays = (double) objList.getTotalUserScrobbles();
|
||||
if (userScrobbles > 0 && plays > 0) {
|
||||
|
||||
|
@ -1,36 +0,0 @@
|
||||
package sarsoo.fmframework.util;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import sarsoo.fmframework.file.Persister;
|
||||
import sarsoo.fmframework.music.Track;
|
||||
|
||||
public class Scrobbler {
|
||||
|
||||
private String token;
|
||||
private String sessionKey;
|
||||
|
||||
public Scrobbler() {
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void auth() {
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public int scrobble(Track track) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public void saveSessionKey(File file) {
|
||||
|
||||
Persister<String> persist = new Persister<String>();
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
23
src/test/java/sarsoo/fmframework/fm/FmNetworkTest.java
Normal file
23
src/test/java/sarsoo/fmframework/fm/FmNetworkTest.java
Normal file
@ -0,0 +1,23 @@
|
||||
package sarsoo.fmframework.fm;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import sarsoo.fmframework.music.Album;
|
||||
import sarsoo.fmframework.music.Artist;
|
||||
import sarsoo.fmframework.music.Track;
|
||||
|
||||
public class FmNetworkTest {
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
FmUserNetwork network = new FmUserNetwork("54a9f5c4c36f5d2cba0d4ffe3846e8b4", "sarsoo");
|
||||
|
||||
Track track = network.getLastTrack();
|
||||
|
||||
System.out.println(track);
|
||||
System.out.println(track.getUserPlayCount());
|
||||
}
|
||||
|
||||
}
|
15
src/test/java/sarsoo/fmframework/fm/FmUserNetworkTest.java
Normal file
15
src/test/java/sarsoo/fmframework/fm/FmUserNetworkTest.java
Normal file
@ -0,0 +1,15 @@
|
||||
package sarsoo.fmframework.fm;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
public class FmUserNetworkTest {
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
FmUserNetwork network = new FmUserNetwork("54a9f5c4c36f5d2cba0d4ffe3846e8b4", "sarsoo");
|
||||
|
||||
System.out.println(network.getLastTrack());
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user