From 323d1d98f373d3cb15f829675333c4dfec61bf2e Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Sun, 4 Jan 2015 13:23:50 -0800 Subject: #438Added missing artists, starts to data pulled --- src/github/daneren2005/dsub/domain/ArtistInfo.java | 9 +++++++++ .../daneren2005/dsub/service/RESTMusicService.java | 2 +- .../dsub/service/parser/ArtistInfoParser.java | 16 ++++++++++++---- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/github/daneren2005/dsub/domain/ArtistInfo.java b/src/github/daneren2005/dsub/domain/ArtistInfo.java index 325f1b6f..2205d561 100644 --- a/src/github/daneren2005/dsub/domain/ArtistInfo.java +++ b/src/github/daneren2005/dsub/domain/ArtistInfo.java @@ -24,6 +24,7 @@ public class ArtistInfo implements Serializable { private String lastFMUrl; private String imageUrl; private List similarArtists; + private List missingArtists; public String getBiography() { return biography; @@ -64,4 +65,12 @@ public class ArtistInfo implements Serializable { public void setSimilarArtists(List similarArtists) { this.similarArtists = similarArtists; } + + public List getMissingArtists() { + return missingArtists; + } + + public void setMissingArtists(List missingArtists) { + this.missingArtists = missingArtists; + } } diff --git a/src/github/daneren2005/dsub/service/RESTMusicService.java b/src/github/daneren2005/dsub/service/RESTMusicService.java index 084c0f52..239b2b43 100644 --- a/src/github/daneren2005/dsub/service/RESTMusicService.java +++ b/src/github/daneren2005/dsub/service/RESTMusicService.java @@ -1383,7 +1383,7 @@ public class RESTMusicService implements MusicService { public ArtistInfo getArtistInfo(String id, boolean refresh, Context context, ProgressListener progressListener) throws Exception { checkServerVersion(context, "1.11", "Getting artist info is not supported"); - Reader reader = getReader(context, progressListener, Util.isTagBrowsing(context, getInstance(context)) ? "getArtistInfo2" : "getArtistInfo", null, Arrays.asList("id"), Arrays.asList(id)); + Reader reader = getReader(context, progressListener, Util.isTagBrowsing(context, getInstance(context)) ? "getArtistInfo2" : "getArtistInfo", null, Arrays.asList("id", "includeNotPresent"), Arrays.asList(id, "true")); try { return new ArtistInfoParser(context, getInstance(context)).parse(reader, progressListener); } finally { diff --git a/src/github/daneren2005/dsub/service/parser/ArtistInfoParser.java b/src/github/daneren2005/dsub/service/parser/ArtistInfoParser.java index 9ffb354c..5b8dc796 100644 --- a/src/github/daneren2005/dsub/service/parser/ArtistInfoParser.java +++ b/src/github/daneren2005/dsub/service/parser/ArtistInfoParser.java @@ -38,6 +38,7 @@ public class ArtistInfoParser extends AbstractParser { ArtistInfo info = new ArtistInfo(); List artists = new ArrayList(); + List missingArtists = new ArrayList(); int eventType; do { @@ -53,10 +54,16 @@ public class ArtistInfoParser extends AbstractParser { } else if ("largeImageUrl".equals(name)) { info.setImageUrl(getText()); } else if ("similarArtist".equals(name)) { - Artist artist = new Artist(); - artist.setId(get("id")); - artist.setName(get("name")); - artists.add(artist); + String id = get("id"); + if(id.equals("-1")) { + missingArtists.add(get("name")); + } else { + Artist artist = new Artist(); + artist.setId(id); + artist.setName(get("name")); + artist.setStarred(get("starred") != null); + artists.add(artist); + } } else if ("error".equals(name)) { handleError(); } @@ -64,6 +71,7 @@ public class ArtistInfoParser extends AbstractParser { } while (eventType != XmlPullParser.END_DOCUMENT); info.setSimilarArtists(artists); + info.setMissingArtists(missingArtists); return info; } } -- cgit v1.2.3