api - Spotify Java Application Issue -


trying create java application uses spotify web api artists, tracks, etc.

having trouble getting come through, believe problem in class , appreciate i'm struggling! thanks

public class spotifyaccess extends java.lang.object {      private controller controller;      public spotifyaccess() throws ioexception {         controller = new controller("spotify", "http://ws.spotify.com/", "");         controller.setretries(1);         controller.settimeout(10000);         controller.settracesends(false);     }       /**      * searrch artist name      * @param query name of artist      * @return list of artists      * @throws ioexception      */     public results<artistitem> searchartist(string query) throws ioexception {         return searchartist(query, 1);     }      /**      * search artist name      * @param query name of artist      * @param page page number      * @return list of artists      * @throws ioexception      */     public results<artistitem> searchartist(string query, int page) throws ioexception {         string encodedartist = urlencoder.encode(query, "utf-8");         document doc = controller.sendcontroller("search/1/artist?page=" + page + "&q=" + encodedartist);         element docelement = doc.getdocumentelement();         nodelist artists = docelement.getelementsbytagname("artist");          int totalresults = xmlutil.getdescendenttextasint(docelement, "opensearch:totalresults", -1);         int startindex = xmlutil.getdescendenttextasint(docelement, "opensearch:startindex", -1);         int itemsperpage = xmlutil.getdescendenttextasint(docelement, "opensearch:itemsperpage", -1);           list<artistitem> artistlist = new arraylist<artistitem>();         (int = 0; < artists.getlength(); i++) {             element artistnode = (element) artists.item(i);             string id = artistnode.getattribute("href");             string name = xmlutil.getdescendenttext(artistnode, "name");             float popularity = xmlutil.getdescendenttextasfloat(artistnode, "popularity", spotifyitem.unknown_popularity);             artistitem artist = new artistitem(id, name, popularity);             artistlist.add(artist);         }         results results = new results(startindex, totalresults, itemsperpage, artistlist);         return results;     }      /**      * search albums      * @param query album name      * @return results of search      * @throws ioexception      */     public results<albumitem> searchalbum(string query) throws ioexception {         return searchalbum(query, 1);     }      private albumitem parsealbum(element albumnode) throws ioexception {         string id = albumnode.getattribute("href");         string name = xmlutil.getdescendenttext(albumnode, "name");         float popularity = xmlutil.getdescendenttextasfloat(albumnode, "popularity", spotifyitem.unknown_popularity);          albumitem album = new albumitem(id, name, popularity);         element artistnode = (element) xmlutil.getdescendent(albumnode, "artist");         if (artistnode != null) {             string artistid = artistnode.getattribute("href");             string artistname = xmlutil.getdescendenttext(artistnode, "name");             album.setartistid(artistid);             album.setartistname(artistname);         }          element availability = (element) xmlutil.getdescendent(albumnode, "availability");         string territories = xmlutil.getdescendenttext(availability, "territories");         string[] tfields = territories.split("\\s+");          int released = xmlutil.getdescendenttextasint(albumnode, "released", -1);           nodelist idnodes = albumnode.getelementsbytagname("id");         (int j = 0; j < idnodes.getlength(); j++) {             element idnode = (element) idnodes.item(j);             string idtype = idnode.getattribute("type");             string idval = idnode.gettextcontent();             album.addid(idtype, idval);         }          album.setavailableterritories(tfields);         album.setreleased(released);         return album;     }      /**      * search album      * @param query query      * @param page page of results       * @return      * @throws ioexception      */     public results<albumitem> searchalbum(string query, int page) throws ioexception {         string encodedalbum = urlencoder.encode(query, "utf-8");         document doc = controller.sendcontroller("search/1/album?page=" + page + "&q=" + encodedalbum);         element docelement = doc.getdocumentelement();         nodelist albums = docelement.getelementsbytagname("album");          int totalresults = xmlutil.getdescendenttextasint(docelement, "opensearch:totalresults", -1);         int startindex = xmlutil.getdescendenttextasint(docelement, "opensearch:startindex", -1);         int itemsperpage = xmlutil.getdescendenttextasint(docelement, "opensearch:itemsperpage", -1);           list<albumitem> albumlist = new arraylist<albumitem>();         (int = 0; < albums.getlength(); i++) {             element albumnode = (element) albums.item(i);             albumitem album = parsealbum(albumnode);             albumlist.add(album);         }         results results = new results(startindex, totalresults, itemsperpage, albumlist);         return results;     }      /**      * search tracks       * @param artist name of artist      * @param track name of track      * @return results of search      * @throws ioexception      */     public results<trackitem> searchtrack(string artist, string track) throws ioexception {         string query = "artist:\"" + artist + "\"  track:\"" + track + "\"";         return searchtrack(query, 1);     }      /**      * search tracks      * @param artist name of artist      * @param track name of track      * @param page page number      * @return results of search      * @throws ioexception      */     public results<trackitem> searchtrack(string artist, string track, int page) throws ioexception {         string query = "artist:\"" + artist + "\"  track:\"" + track + "\"";         return searchtrack(query, page);     }      /**      * search tracks      * @param artist artist      * @param album album      * @param track track      * @return results of search      * @throws ioexception      */     public results<trackitem> searchtrack(string artist, string album, string track) throws ioexception {         string query = "artist:\"" + artist + "\" album:\"" + album + "\"  track:\"" + track + "\"";         return searchtrack(query, 1);     }      /**      * search tracks      * @param query searc query      * @return results of search      * @throws ioexception      */     public results<trackitem> searchtrack(string query) throws ioexception {         return searchtrack(query, 1);     }      /**      * search tracks      * @param query search query      * @param page page number      * @return search results      * @throws ioexception      */     public results<trackitem> searchtrack(string query, int page) throws ioexception {         string encodedtrack = urlencoder.encode(query, "utf-8");         document doc = controller.sendcontroller("search/1/track?page=" + page + "&q=" + encodedtrack);         element docelement = doc.getdocumentelement();         nodelist tracks = docelement.getelementsbytagname("track");          int totalresults = xmlutil.getdescendenttextasint(docelement, "opensearch:totalresults", -1);         int startindex = xmlutil.getdescendenttextasint(docelement, "opensearch:startindex", -1);         int itemsperpage = xmlutil.getdescendenttextasint(docelement, "opensearch:itemsperpage", -1);          list<trackitem> tracklist = new arraylist<trackitem>();         (int = 0; < tracks.getlength(); i++) {             element tracknode = (element) tracks.item(i);              string trackid = tracknode.getattribute("href");             string trackname = xmlutil.getdescendenttext(tracknode, "name");             float trackpopularity = xmlutil.getdescendenttextasfloat(tracknode, "popularity", spotifyitem.unknown_popularity);              element artistnode = (element) xmlutil.getdescendent(tracknode, "artist");             string artistid = artistnode.getattribute("href");             string artistname = xmlutil.getdescendenttext(artistnode, "name");              element albumnode = (element) xmlutil.getdescendent(tracknode, "album");             albumitem album = parsealbum(albumnode);             album.setartistid(artistid);             album.setartistname(artistname);              int tracknumber = xmlutil.getdescendenttextasint(tracknode, "track-number", -1);             float tracklength = xmlutil.getdescendenttextasfloat(tracknode, "length", -1);              trackitem track = new trackitem(trackid, trackname, trackpopularity);             track.setalbum(album);             track.setartistid(artistid);             track.setartistname(artistname);             track.settracknumber(tracknumber);             track.setlength(tracklength);              nodelist idnodes = tracknode.getelementsbytagname("id");             (int j = 0; j < idnodes.getlength(); j++) {                 element idnode = (element) idnodes.item(j);                 string idtype = idnode.getattribute("type");                 string idval = idnode.gettextcontent();                 track.addid(idtype, idval);             }             tracklist.add(track);         }         results results = new results(startindex, totalresults, itemsperpage, tracklist);         return results;     }       public static void test() throws ioexception {         spotifyaccess spotify = new spotifyaccess();         system.out.println(spotify.searchartist("weezer"));         system.out.println(spotify.searchtrack("my name jonas"));         system.out.println(spotify.searchtrack("miley cyrus", "goodbye"));         system.out.println(spotify.searchtrack("the nice", "america"));         system.out.println(spotify.searchtrack("the nice", "elegy", "america"));          // print out of tracks weezer         results<trackitem> results = null;         int page = 1;         int count = 1;         {             results = spotify.searchtrack("artist:weezer", page);             page = results.getnextpage();             (trackitem track : results.getitems()) {                 system.out.printf("%d %s\n", count++, track.getname());             }         } while (!results.islast());     }      private static string concat(string[] args) {         stringbuilder sb = new stringbuilder();         (string s : args) {             sb.append(s);             sb.append(" ");         }         return sb.tostring().trim();     }      public static void main(string[] args) throws ioexception {         if (args.length == 0) {             system.out.println("usage: spotify artist name");         } else {             string artist = concat(args);             spotifyaccess spotify = new spotifyaccess();             results<trackitem> results = null;             int page = 1;             {                 artist = "weezer";                 results = spotify.searchtrack("artist:" + artist, page);                 page = results.getnextpage();                 (trackitem track : results.getitems()) {                     system.out.printf("%.2f %s // %s // %s\n",                                 track.getpopularity(), track.getartistname(),                                 track.getalbum().getname(), track.getname());                 }             } while (!results.islast());         }      }   } 


Comments

Popular posts from this blog

windows - Single EXE to Install Python Standalone Executable for Easy Distribution -

c# - Access objects in UserControl from MainWindow in WPF -

javascript - How to name a jQuery function to make a browser's back button work? -