Package com.echonest.api.v4.util

Examples of com.echonest.api.v4.util.Shell


    }

    public void randomWalk(String seedName, int count) throws EchoNestException {
        List<Artist> artists = en.searchArtists(seedName);
        if (artists.size() > 0) {
            Artist seed = artists.get(0);
            for (int i = 0; i < count; i++) {
                dumpArtist(seed);
                List<Artist> sims = seed.getSimilar(10);
                if (sims.size() > 0) {
                    Collections.shuffle(sims);
                    seed = sims.get(0);
                } else {
                    break;
View Full Code Here


        EchoNestAPI echoNest = new EchoNestAPI();
        echoNest.setTraceSends(true);
        List<Artist> artists = echoNest.searchArtists("Weezer");

        if (artists.size() > 0) {
            Artist weezer = artists.get(0);
            System.out.println("Similar artists for " + weezer.getName());
            for (Artist simArtist : weezer.getSimilar(10)) {
                System.out.println("   " + simArtist.getName());
            }
        }
    }
View Full Code Here

        });

    }

    private Artist getArtist(String name) throws EchoNestException {
        Artist artist = null;

        artist = artistCache.get(name);
        if (artist == null) {
            List<Artist> artists = en.searchArtists(name);
            if (artists.size() > 0) {
View Full Code Here

    }

    private void addEchoNestCommands() {
        shell.add("enid", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                Artist artist = getArtist(Shell.mash(args, 1));
                if (artist != null) {
                    System.out.println(artist.getName() + " " + artist.getID());
                }
                return "";
            }

            public String getHelp() {
                return "gets the ENID for an arist";
            }
        });

        shell.add("search_artist", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                List<Artist> artists = en.searchArtists(Shell.mash(args, 1));
                for (Artist artist : artists) {
                    System.out.println(artist.getID() + " " + artist.getName());
                }
                return "";
            }

            public String getHelp() {
                return "searches for artists exact match  ";
            }
        });

        shell.add("suggest_artist", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                List<Artist> artists = en.suggestArtists(Shell.mash(args, 1));
                for (Artist artist : artists) {
                    System.out.println(artist.getID() + " " + artist.getName());
                }
                return "";
            }

            public String getHelp() {
                return "searches for artists exact match  ";
            }
        });

        shell.add("top_hottt", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                Params p = new Params();
                p.add("results", 100);

                List<Artist> artists = en.topHotArtists(p);
                for (Artist artist : artists) {
                    System.out.println(artist.getID() + " " + artist.getName());
                }
                return "";
            }

            public String getHelp() {
                return "searches for artists exact match  ";
            }
        });


        shell.add("list_terms", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                List<String> terms = en.listTerms(EchoNestAPI.TermType.ANY);
                for (String term : terms) {
                    System.out.println(term);
                }
                return "";
            }

            public String getHelp() {
                return "list available terms";
            }
        });

        shell.add("list_genres", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                List<String> genres = en.listGenres();
                for (String genre : genres) {
                    System.out.println(genre);
                }
                return "";
            }

            public String getHelp() {
                return "list available genres";
            }
        });


        shell.add("random_walk", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                int count = 10;
                String artistName = "justin bieber";

                if (args.length > 1) {
                    count = Integer.parseInt(args[1]);
                }

                if (args.length > 2) {
                    artistName = Shell.mash(args, 2);
                }

                Artist curSeed = getArtist(artistName);

                for (int i = 0; i < count; i++) {
                    System.out.println("Similars for " + curSeed.getName());
                    List<Artist> similars = curSeed.getSimilar(15);
                    for (Artist sim : similars) {
                        System.out.println("  " + sim.getName());
                    }
                    Collections.shuffle(similars);
                    curSeed = similars.get(0);
                }
                return "";
            }

            public String getHelp() {
                return "random similarity walk. Usage: random_walk [count] [initial seed] ";
            }
        });

        shell.add("top_terms", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                int count = 100;
                if (args.length > 1) {
                    count = Integer.parseInt(args[1]);
                }
                List<Term> terms = en.getTopTerms(count);
                for (Term term : terms) {
                    System.out.println(term.getFrequency() + " "
                            + term.getName());
                }
                return "";
            }

            public String getHelp() {
                return "searches for artists exact match  ";
            }
        });

        shell.add("pp_songs", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                Params p = new Params();
                populateParams(p, args);

                List<Song> songs = en.searchSongs(p);
                for (Song song : songs) {
                    System.out.println(song.toString());
                }
                return "";
            }

            public String getHelp() {
                return "searches for songs ";
            }
        });

        shell.add("track", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                if (args.length == 1 && currentTrack != null) {
                    dumpTrack(currentTrack, false);
                } else {
                    for (int i = 1; i < args.length; i++) {
                        String id = args[i];
                        Track track = null;
                        if (id.startsWith("TR")) {
                            track = en.newTrackByID(id);
                        } else {
                            track = en.newTrackByMD5(id);
                        }
                        dumpTrack(track, false);
                    }
                }
                return "";
            }

            public String getHelp() {
                return "dumps tracks by ID or MD5";
            }
        });

        shell.add("trackDetails", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                if (args.length == 1 && currentTrack != null) {
                    dumpTrack(currentTrack, true);
                } else {
                    for (int i = 1; i < args.length; i++) {
                        String id = args[i];
                        Track track = null;
                        if (id.startsWith("TR")) {
                            track = en.newTrackByID(id);
                        } else {
                            track = en.newTrackByMD5(id);
                        }
                        dumpTrack(track, true);
                    }
                }
                return "";
            }

            public String getHelp() {
                return "dumps tracks by ID or MD5";
            }
        });

        shell.add("psearch_artists", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                Params p = new Params();
                populateParams(p, args);
                List<Artist> artists = en.searchArtists(p);
                for (Artist artist : artists) {
                    System.out.println(artist.toString());
                }
                return "";
            }

            public String getHelp() {
                return "searches for artists (using params) ";
            }
        });

        shell.add("qbd", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                ArtistParams p = new ArtistParams();
                p.setResults(displayCount);
                p.sortBy(ArtistParams.SORT_HOTTTNESSS, false);
                // p.sortBy(ArtistParams.SORT_FAMILIARITY, false);

                String description = Shell.mash(args, 1);
                p.addDescription(description);
                List<Artist> artists = en.searchArtists(p);
                for (Artist artist : artists) {
                    System.out.println(artist.getName());
                }
                return "";
            }

            public String getHelp() {

                return "query by description";
            }
        });
        shell.add("psimilar_songs", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                Params p = new Params();
                populateParams(p, args);

                List<Song> songs = en.similarSongs(p);
                for (Song song : songs) {
                    System.out.println(song.toString());
                }
                return "";
            }

            public String getHelp() {
                return "finds similar songs to the seed song ";
            }
        });

        shell.add("most_danceable", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                SongParams p = new SongParams();
                p.setArtistID(getArtist(Shell.mash(args, 1)).getID());
                p.sortBy(SongParams.SORT_DANCEABILITY, false);
                p.includeAudioSummary();

                List<Song> songs = en.searchSongs(p);
                for (Song song : songs) {
                    System.out.printf("%.2f %s\n", song.getDanceability(), song
                            .getTitle());
                }
                return "";
            }

            public String getHelp() {
                return "finds most danceable songs by an artist ";
            }
        });

        shell.add("least_danceable", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                SongParams p = new SongParams();
                p.setArtistID(getArtist(Shell.mash(args, 1)).getID());
                p.sortBy(SongParams.SORT_DANCEABILITY, true);
                p.includeAudioSummary();

                List<Song> songs = en.searchSongs(p);
                for (Song song : songs) {
                    System.out.printf("%.2f %s\n", song.getDanceability(), song
                            .getTitle());
                }
                return "";
            }

            public String getHelp() {
                return "finds least danceable songs by an artist ";
            }
        });

        shell.add("most_energy", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                SongParams p = new SongParams();
                p.setArtistID(getArtist(Shell.mash(args, 1)).getID());
                p.sortBy(SongParams.SORT_ENERGY, false);
                p.includeAudioSummary();

                List<Song> songs = en.searchSongs(p);
                for (Song song : songs) {
                    System.out.printf("%.2f %s\n", song.getEnergy(), song
                            .getTitle());
                }
                return "";
            }

            public String getHelp() {
                return "finds most energetic songs by an artist ";
            }
        });

        shell.add("least_energy", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                SongParams p = new SongParams();
                p.setArtistID(getArtist(Shell.mash(args, 1)).getID());
                p.sortBy(SongParams.SORT_ENERGY, true);
                p.includeAudioSummary();

                List<Song> songs = en.searchSongs(p);
                for (Song song : songs) {
                    System.out.printf("%.2f %s\n", song.getEnergy(), song
                            .getTitle());
                }
                return "";
            }

            public String getHelp() {
                return "finds least danceable songs by an artist ";
            }
        });

        shell.add("psimilar_artists", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                Params p = new Params();

                for (int i = 1; i < args.length; i++) {
                    String arg = args[i];
                    String[] pv = arg.split("=");
                    if (pv.length == 2) {
                        p.add(pv[0], pv[1]);
                    } else {
                        System.out.println("Don't understand " + arg);
                    }
                }
                List<Artist> artists = en.getSimilarArtists(p);
                for (Artist artist : artists) {
                    System.out.println(artist.toString());
                }
                return "";
            }

            public String getHelp() {
                return "searches for artists (using params) ";
            }
        });

        shell.add("get_songs", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                Params p = new Params();

                for (int i = 1; i < args.length; i++) {
                    String arg = args[i];
                    String[] pv = arg.split("=");
                    if (pv.length == 2) {
                        p.add(pv[0], pv[1]);
                    } else {
                        System.out.println("Don't understand " + arg);
                    }
                }
                List<Song> songs = en.getSongs(p);
                for (Song song : songs) {
                    System.out.println(song.toString());
                }
                return "";
            }

            public String getHelp() {
                return "gets info for a song ";
            }
        });
       
        shell.add("get_song", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                SongParams p = new SongParams();
                p.setID(args[1]);
                List<Song> songs = en.getSongs(p);
                if (songs.size() >= 1) {
                    Song song = songs.get(0);
                    System.out.println(song.toString());

                }
                return "";
            }

            public String getHelp() {
                return "gets info for a song ";
            }
        });

        shell.add("hot_songs", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                boolean old_way = true;
                SongParams p = new SongParams();
                p.sortBy(SongParams.SORT_SONG_HOTTTNESSS, false);

                String description = Shell.mash(args, 1);

                if (old_way) {
                    p.addDescription(description);
                } else {
                    if (description.length() > 0) {
                        String[] fields = description.split(",");
                        for (String f : fields) {
                            p.addDescription(f.trim());
                        }
                    }
                }
                List<Song> songs = en.searchSongs(p);
                for (Song song : songs) {
                    System.out.println(song.toString());
                }
                return "";
            }

            public String getHelp() {
                return "show hot songs";
            }
        });

        shell.add("display_count", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                if (args.length == 2) {
                    displayCount = Integer.parseInt(args[1]);
                } else {
                    System.out.println("Display count: " + displayCount);
                }
                return "";
            }

            public String getHelp() {
                return "sets/gets the number of items to display";
            }
        });

        shell.add("get_similar", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                Artist artist = getArtist(Shell.mash(args, 1));
                if (artist != null) {
                    System.out.println("Similarity for " + artist.getName());
                    List<Artist> artists = artist.getSimilar(displayCount);
                    for (Artist sartist : artists) {
                        System.out.printf("  %s\n", sartist.getName());
                    }

                } else {
                    System.out.println("Can't find artist");
                }
                return "";
            }

            public String getHelp() {
                return "finds similar artists";
            }
        });

        shell.add("get_blogs", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                Artist artist = getArtist(Shell.mash(args, 1));
                if (artist != null) {
                    dumpDocs("blogs", artist.getBlogs());
                } else {
                    System.out.println("Can't find artist");
                }
                return "";
            }

            public String getHelp() {
                return "gets blogs for an artist";
            }
        });

        shell.add("get_images", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                Artist artist = getArtist(Shell.mash(args, 1));
                if (artist != null) {
                    dumpDocs("images", artist.getImages());
                } else {
                    System.out.println("Can't find artist");
                }
                return "";
            }

            public String getHelp() {
                return "gets images for an artist";
            }
        });

        shell.add("get_audio", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                Artist artist = getArtist(Shell.mash(args, 1));
                if (artist != null) {
                    dumpDocs("audio", artist.getAudio());
                } else {
                    System.out.println("Can't find artist");
                }
                return "";
            }

            public String getHelp() {
                return "gets audio for an artist";
            }
        });

        shell.add("get_bio", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                Artist artist = getArtist(Shell.mash(args, 1));
                if (artist != null) {
                    dumpDocs("audio", artist.getBiographies());
                } else {
                    System.out.println("Can't find artist");
                }
                return "";
            }

            public String getHelp() {
                return "gets bios for an artist";
            }
        });

        shell.add("get_album_art", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                SongParams p = new SongParams();
                p.setArtist(args[1]);
                p.setTitle(args[2]);
                p.includeTracks();
                p.setLimit(true);
                p.addIDSpace("7digital-US");
                List<Song> songs = en.searchSongs(p);
                for (Song song : songs) {
                    System.out.println(song.toString());
                    String url = song.getString("tracks[0].release_image");
                    System.out.println("release image" + url);
                }
                return "";
            }

            public String getHelp() {
                return "shows cover art for a song";
            }
        });


        shell.add("get_song_foreign_ids", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                SongParams p = new SongParams();
                p.setArtist(args[1]);
                p.setTitle(args[2]);
                p.includeTracks();
                p.setLimit(true);
                p.addIDSpace("rdio-us-streaming");
                List<Song> songs = en.searchSongs(p);
                for (Song song : songs) {
                    System.out.println(song.toString());
                    String fid = song.getString("foreign_ids[0].foreign_id");
                    System.out.println("fid is " + fid);
                }
                return "";
            }

            public String getHelp() {
                return "demonstrate how to extract song foreign ids from a song";
            }
        });

        shell.add("get_urls", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                Artist artist = getArtist(Shell.mash(args, 1));
                if (artist != null) {
                    System.out.println("URLS for " + artist.getName());
                    Map<String, String> urlMap = artist.getUrls();
                    List<String> keys = new ArrayList<String>(urlMap.keySet());
                    Collections.sort(keys);
                    for (String key : keys) {
                        System.out.printf("%20s : %s\n", key, urlMap.get(key));
                    }
                } else {
                    System.out.println("Can't find artist");
                }
                return "";
            }

            public String getHelp() {
                return "gets urls for an artist";
            }
        });

        shell.add("get_video", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                Artist artist = getArtist(Shell.mash(args, 1));
                if (artist != null) {
                    dumpDocs("video", artist.getVideos());
                } else {
                    System.out.println("Can't find artist");
                }
                return "";
            }

            public String getHelp() {
                return "gets videos for an artist";
            }
        });

        shell.add("get_news", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                Artist artist = getArtist(Shell.mash(args, 1));
                if (artist != null) {
                    dumpDocs("news", artist.getNews());
                } else {
                    System.out.println("Can't find artist");
                }
                return "";
            }

            public String getHelp() {
                return "gets news for an artist";
            }
        });

        shell.add("get_reviews", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                Artist artist = getArtist(Shell.mash(args, 1));
                if (artist != null) {
                    dumpDocs("reviews", artist.getReviews());
                } else {
                    System.out.println("Can't find artist");
                }
                return "";
            }

            public String getHelp() {
                return "gets reviews for an artist";
            }
        });

        shell.add("get_artist_location", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                Artist artist = getArtist(Shell.mash(args, 1));
                if (artist != null) {
                    ArtistLocation location = artist.getArtistLocation();
                    System.out.println("Location is " + location.getLocation());
                } else {
                    System.out.println("Can't find artist");
                }
                return "";
            }

            public String getHelp() {
                return "gets location for an artist";
            }
        });

        shell.add("get_terms", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                Artist artist = getArtist(Shell.mash(args, 1));
                if (artist != null) {
                    System.out.println("Terms for " + artist.getName());
                    List<Term> terms = artist.getTerms();
                    for (Term term : terms) {
                        System.out.printf("%.2f %s\n", term.getWeight(), term
                                .getName());
                    }
                } else {
                    System.out.println("Can't find artist");
                }
                return "";
            }

            public String getHelp() {
                return "gets terms for an artist";
            }
        });

        shell.add("get_fam", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                Artist artist = getArtist(Shell.mash(args, 1));
                if (artist != null) {
                    System.out.println("Familiarity for " + artist.getName()
                            + " " + artist.getFamiliarity());
                } else {
                    System.out.println("Can't find artist");
                }
                return "";
            }

            public String getHelp() {
                return "gets familiarity for an artist";
            }
        });

        shell.add("get_hot", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                Artist artist = getArtist(Shell.mash(args, 1));
                if (artist != null) {
                    System.out.println("Hotttnesss for " + artist.getName()
                            + " " + artist.getHotttnesss());
                } else {
                    System.out.println("Can't find artist");
                }
                return "";
            }

            public String getHelp() {
                return "gets hotttnesss for an artist";
            }
        });

        shell.add("trackUpload", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                String arg = null;
                if (args.length >= 2) {
                    arg = Shell.mash(args, 1);
                } else {
                    arg = Utilities.createNewAudioFile("au").getAbsolutePath();
                }
                try {
                    Track track;
                    if (arg.startsWith("http:")) {
                        track = en.uploadTrack(new URL(arg), true);
                    } else {
                        System.out.println("md5 is " + Utilities.md5(arg));
                        track = en.uploadTrack(new File(arg));
                    }
                    track.waitForAnalysis(30000);
                    System.out.println("ID: " + track.getID() + " status "
                            + track.getStatus());

                    currentTrack = track;
                    System.out.println("Tempo is "
                            + track.getAnalysis().getTempo());
                } catch (IOException e) {
                    System.out.println("Trouble uploading");
                }
                return "";
            }

            public String getHelp() {
                return "uploads a track";
            }
        });

        shell.add("trackBeats", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                TrackAnalysis a = currentTrack.getAnalysis();
                List<TimedEvent> beats = a.getBeats();
                for (TimedEvent beat : beats) {
                    System.out.printf("%.6f, %.6f\n", beat.getStart(), beat
                            .getDuration());
                }
                return "";
            }

            public String getHelp() {
                return "uploads a track";
            }
        });

        shell.add("trackReanalyze", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                if (args.length == 2) {
                    Track track = en.newTrackByID(args[1]);
                    Track.AnalysisStatus status = track.reanalyze(true);
                    System.out.println("Analysis status " + status);
                } else {
                    System.out.println("trackReanalyze TRID");
                }
                return "";
            }

            public String getHelp() {
                return "reanalyzes a trak";
            }
        });

        shell.add("stats", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                en.showStats();
                return "";
            }

            public String getHelp() {
                return "shows stats";
            }
        });

        shell.add("acov" + "", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {

                int count = 100;
                String[] buckets = {"audio", "biographies", "blogs",
                    "familiarity", "hotttnesss", "images", "news",
                    "reviews", "urls", "video"};

                if (args.length >= 2) {
                    count = Integer.parseInt(args[1]);
                }

                if (todo.size() == 0) {
                    Artist seed = getArtist("The Beatles");
                    todo.add(seed);
                }

                for (int i = 0; i < count; i++) {
                    Artist next = null;

                    while (todo.size() > 0 && next == null) {
                        next = todo.remove(0);
                        if (!done.contains(next)) {
                            break;
                        }
                    }

                    if (next != null) {
                        done.add(next);

                        next.fetchBuckets(buckets);
                        float score = scoreArtist(next);
                        if (i % 20 == 0) {
                            System.out
                                    .printf(
                                    "%5s %3s %3s %3s %3s %3s %3s %3s %3s %5s %5s %s\n",
                                    "score", "aud", "bio", "blg",
                                    "img", "nws", "rvs", "vid", "url",
                                    "hot", "fam", "");
                        }

                        System.out
                                .printf(
                                "%5.1f %3d %3d %3d %3d %3d %3d %3d %3d %.3f %.3f %s\n",
                                score, next.getAudio().size(), next
                                .getBiographies().size(), next
                                .getBlogs().size(), next
                                .getImages().size(), next
                                .getNews().size(), next
                                .getReviews().size(), next
                                .getVideos().size(), next
                                .getUrls().size(), next
                                .getHotttnesss(), next
                                .getFamiliarity(), next
                                .getName());
                        todo.addAll(next.getSimilar(20));
                        Collections.shuffle(todo);
                    }
                }
                return "";
            }

            public String getHelp() {
                return "shows artist coverage";
            }
        });

        shell.add("mbidtest", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                int count = 100;
                if (args.length >= 2) {
                    count = Integer.parseInt(args[1]);
                }
                for (Artist artist : en.topHotArtists(count)) {
                    String mbid = artist.getForeignID("musicbrainz");
                    if (mbid != null && mbid.length() > 0) {
                        Artist nArtist = en.newArtistByID(mbid);
                        String status = "FAIL";
                        if (artist.equals(nArtist)) {
                            status = "GOOD";
                        }
                        System.out.printf("   %s %s %s %s %s\n", status, mbid,
                                artist.getName(), nArtist
                                .getForeignID("musicbrainz"), nArtist
                                .getName());
                    } else {
                        System.out.printf("MISSING mbid for %s\n", artist
                                .getName());
                    }
                }
                return "";
            }

            public String getHelp() {
                return "test mbids for popular artists";
            }
        });

        shell.add("scov", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                int count = 100;
                boolean showSims = false;
                if (args.length >= 2) {
                    count = Integer.parseInt(args[1]);
                }

                if (args.length >= 3) {
                    showSims = true;
                }

                if (todo.size() == 0) {
                    Artist seed = getArtist("The Beatles");
                    todo.add(seed);
                }

                for (int i = 0; i < count; i++) {
                    Artist next = null;

                    while (todo.size() > 0 && next == null) {
                        next = todo.remove(0);
                        if (!done.contains(next)) {
                            break;
                        }
                    }

                    if (next != null) {
                        done.add(next);
                        System.out.printf("%s %s\n", next.getID(), next
                                .getName());
                        try {
                            List<Artist> sims = next.getSimilar(15);
                            if (showSims) {
                                for (Artist sim : sims) {
                                    System.out
                                            .printf("    %s\n", sim.getName());
                                }
                            }
                            todo.addAll(sims);
                        } catch (EchoNestException e) {
                            System.out.printf("WARNING, no sims for %s %s\n",
                                    next.getID(), next.getName());
                        }
                        Collections.shuffle(todo);
                    }
                }
                return "";
            }

            public String getHelp() {
                return "shows artist similarity coverage";
            }
        });

        shell.add("splaylist", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                PlaylistParams p = new PlaylistParams();
                p.setType(PlaylistType.ARTIST_RADIO);
                p.addArtist(Shell.mash(args, 1));
                p.setResults(10);
                p.setVariety(.5f);
                Playlist playlist = en.createStaticPlaylist(p);
                for (Song song : playlist.getSongs()) {
                    System.out.printf("%40.40s %s\n", song.getArtistName(),
                            song.getTitle());
                }
                return "";
            }

            public String getHelp() {
                return "generates an artist radio playlist";
            }
        });


        shell.add("bplaylist", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                BasicPlaylistParams p = new BasicPlaylistParams();
                p.setType(BasicPlaylistParams.PlaylistType.ARTIST_RADIO);
                p.addArtist(Shell.mash(args, 1));
                p.setResults(10);
                Playlist playlist = en.createBasicPlaylist(p);
                for (Song song : playlist.getSongs()) {
                    System.out.printf("%40.40s %s\n", song.getArtistName(),
                            song.getTitle());
                }
                return "";
            }

            public String getHelp() {
                return "generates a basic artist radio playlist";
            }
        });


        shell.add("wiki_bio_cov", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                List<Artist> artists = en.topHotArtists(1000);
                int count = 0;
                int which = 0;
                for (Artist artist : artists) {
                    which++;
                    List<Biography> bios = artist.getBiographies(0, 100,
                            "cc-by-sa");
                    if (bios.size() == 0) {
                        count++;
                        System.out.printf("%d %d %s\n", which, count, artist
                                .getName());
                    }
                }
                System.out.println("Missing coverage count " + count);
                return "";
            }

            public String getHelp() {
                return "shows artist wiki bio coverage";
            }
        });

        shell.add("trace", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                if (args.length == 2) {
                    en.setTraceSends(args[1].equals("true"));
                    en.setTraceRecvs(args[1].equals("true"));

                } else {
                    System.out.println("Usage: trace true|false");
                }
                return "";
            }

            public String getHelp() {
                return "enables/disables trace";
            }
        });

        shell.add("traceSends", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                if (args.length == 2) {
                    en.setTraceSends(args[1].equals("true"));
                } else {
                    System.out.println("Usage: traceSends true|false");
                }
                return "";
            }

            public String getHelp() {
                return "enables/disables trace sends";
            }
        });

        shell.add("traceRecvs", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                if (args.length == 2) {
                    en.setTraceRecvs(args[1].equals("true"));
                } else {
                    System.out.println("Usage: traceRecvs true|false");
                }
                return "";
            }

            public String getHelp() {
                return "enables/disables trace recvs";
            }
        });

        shell.add("ya_check", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                int count = 10;
                String artistName = "justin bieber";

                if (args.length > 1) {
                    count = Integer.parseInt(args[1]);
                }

                if (args.length > 2) {
                    artistName = Shell.mash(args, 2);
                }

                Artist curSeed = getArtist(artistName);

                List<Artist> queue = new ArrayList<Artist>();
                Set<String> visited = new HashSet<String>();

                queue.add(curSeed);

                while (queue.size() > 0) {
                    Artist artist = queue.remove(0);
                    if (!visited.contains(artist.getID())) {
                        visited.add(artist.getID());
                        if (visited.size() > count) {
                            break;
                        }
                        ArtistParams p = new ArtistParams();
                        p.includeYearsActive();
                        p.setID(artist.getID());
                        for (Artist sim : en.getSimilarArtists(p)) {
                            yaCheck(sim);
                            queue.add(sim);
                        }
                    }
View Full Code Here

            }
        });

        shell.add("aCatName", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                ArtistCatalog ac = en.getArtistCatalogByName(args[1]);
                if (ac != null) {
                    System.out.printf("%s %s\n", ac.getID(), ac.getName());
                }
                return "";
            }

            public String getHelp() {
                return "get an artist catalog by name";
            }
        });

        shell.add("aCatID", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                ArtistCatalog ac = en.getArtistCatalogByID(args[1]);
                if (ac != null) {
                    System.out.printf("%s %s\n", ac.getID(), ac.getName());
                }
                return "";
            }

            public String getHelp() {
                return "get an artist catalog by id";
            }
        });


        shell.add("sCatName", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                SongCatalog ac = en.getSongCatalogByName(args[1]);
                if (ac != null) {
                    System.out.printf("%s %s\n", ac.getID(), ac.getName());
                }
                return "";
            }

            public String getHelp() {
                return "get an song catalog by name";
            }
        });

        shell.add("sCatID", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                SongCatalog ac = en.getSongCatalogByID(args[1]);
                if (ac != null) {
                    System.out.printf("%s %s\n", ac.getID(), ac.getName());
                    for (SongCatalogItem sci : ac.read(0, 30)) {
                        System.out.println(sci);
                    }
                }
                return "";
            }
View Full Code Here

        return tp.waitForUpdates(ticket, 30000);
    }

    public ArtistCatalog createTasteProfile(String name) throws EchoNestException {
        System.out.println("Creating Taste Profile " + name);
        ArtistCatalog tp = en.createArtistCatalog(name);
        String[] artists = {"weezer", "the beatles", "ben folds", "explosions in the sky",
            "this will destroy you", "muse", "bjork"};
        addArtists(tp, artists);
        return tp;
    }
View Full Code Here

    public static void main(String[] args) throws EchoNestException {
        String tpName = "Some of my Favorite Artists";
        TasteProfileExample tpe = new TasteProfileExample();

        ArtistCatalog tp = tpe.findTasteProfile(tpName);
        if (tp == null) {
            tp = tpe.createTasteProfile(tpName);
        }
        tpe.createPlaylist(tp);
    }
View Full Code Here

    public boolean addArtists(ArtistCatalog tp, String[] names) throws EchoNestException {
        CatalogUpdater updater = new CatalogUpdater();
        int id = 1;

        for (String name : names) {
            ArtistCatalogItem item = new ArtistCatalogItem("id-" + id);
            item.setArtistName(name);
            updater.update(item);
            id++;
        }
        String ticket = tp.update(updater);
        return tp.waitForUpdates(ticket, 30000);
View Full Code Here

        shell.add("get_artist_location", new ShellCommand() {
            public String execute(Shell ci, String[] args) throws Exception {
                Artist artist = getArtist(Shell.mash(args, 1));
                if (artist != null) {
                    ArtistLocation location = artist.getArtistLocation();
                    System.out.println("Location is " + location.getLocation());
                } else {
                    System.out.println("Can't find artist");
                }
                return "";
            }
View Full Code Here

        }
    }

    public void searchForFastestSongsByArtist(String artist, int results)
            throws EchoNestException {
        ArtistParams ap = new ArtistParams();
        ap.addName(artist);
        List<Artist> artists = en.searchArtists(ap);
        if (artists.size() > 0) {
            Params p = new Params();
            p.add("artist_id", artists.get(0).getID());
            p.add("bucket", "audio_summary");
View Full Code Here

TOP

Related Classes of com.echonest.api.v4.util.Shell

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.