Package org.socialmusicdiscovery.server.plugins.mediaimport

Examples of org.socialmusicdiscovery.server.plugins.mediaimport.TagData


     * @return The tag data or null if no tag data could be retrieved
     */
    protected TagData getTagData(TagField tagField) {
        if (tagField instanceof TagTextField) {
            TagTextField vtf = (TagTextField) tagField;
            return new TagData(vtf.getId(), vtf.getContent(), vtf.getContent().toUpperCase());
        }
        return null;
    }
View Full Code Here


            AudioFile f = AudioFileIO.read(file);
            Tag tag = f.getTag();
            Iterator<TagField> it = tag.getFields();
            while (it.hasNext()) {
                TagField tf = it.next();
                TagData tagData = getTagData(tf);
                if (tagData != null) {
                    String[] values;
                    if (separatorCharacters != null && separatorCharacters.trim().length() > 0) {
                        values = tagData.getValue().split("[" + separatorCharacters + "]");
                    } else {
                        values = new String[]{tagData.getValue()};
                    }
                    for (String value : values) {
                        if (value != null && value.trim().length() > 0) {
                            String name = getMappedTagName(tagData.getName());
                            if (name != null) {
                                if (normalTags.containsKey(name)) {
                                    normalTags.get(name).add(value);
                                } else {
                                    normalTags.put(name, new ArrayList<String>(Arrays.asList(value)));
                                }
                            } else if (getSortTag(tagData.getName()) != null) {
                                String sortName = getSortTag(tagData.getName());
                                if (sortTags.containsKey(sortName)) {
                                    sortTags.get(sortName).add(value);
                                } else {
                                    sortTags.put(sortName, new ArrayList<String>(Arrays.asList(value)));
                                }
                            }
                        }
                    }
                }
            }
            for (Map.Entry<String, List<String>> entry : normalTags.entrySet()) {
                List<String> values = entry.getValue();
                List<String> sortValues = null;
                if (sortTags.containsKey(entry.getKey())) {
                    sortValues = sortTags.get(entry.getKey());
                }
                int i = 0;
                for (String value : values) {
                    String sortValue = null;
                    if (sortValues != null && sortValues.size() > i) {
                        sortValue = sortValues.get(i);
                    }
                    result.getTags().add(new TagData(entry.getKey(), value, sortValue));
                }
            }
            return result;
        } catch (TagException e) {
            throw new IOException(e);
View Full Code Here

                        track.setFile(trackData.getUri());
                        track.setFormat("spotify");
                        track.setSmdID(trackData.getUri());
                        track.setUrl(trackData.getUri());
                        track.setTags(new ArrayList<TagData>());
                        track.getTags().add(new TagData(TagData.ALBUM, trackData.getAlbum()));
                        track.getTags().add(new TagData(TagData.TITLE, trackData.getName()));
                        track.getTags().add(new TagData(TagData.SPOTIFY_TRACK_ID, trackData.getUri()));
                        track.getTags().add(new TagData("SPOTIFYIMAGE", trackData.getCover()));
                        track.getTags().add(new TagData("DURATION", "" + trackData.getDuration()));

                        if (trackData.getIndex() != null) {
                            if (trackData.getIndex() != null && trackData.getIndex() != 0) {
                                track.getTags().add(new TagData(TagData.TRACKNUM, "" + trackData.getIndex()));
                            }
                            if (trackData.getDisc() != null && trackData.getDisc() != 0) {
                                track.getTags().add(new TagData(TagData.DISC, "" + trackData.getDisc()));
                            }
                            if (trackData.getAlbumuri() != null) {
                                track.getTags().add(new TagData(TagData.SPOTIFY_ALBUM_ID, trackData.getAlbumuri()));
                            }
                            if (trackData.getArtists() != null) {
                                for (SpotifyArtistData artistData : trackData.getArtists()) {
                                    track.getTags().add(new TagData(TagData.ARTIST, artistData.getName()));
                                    track.getTags().add(new TagData(TagData.SPOTIFY_ARTIST_ID, artistData.getUri()));
                                }
                            }
                        } else {
                            //TODO: Remove this as soon as 2.2.7 of spotifyd has been officially released
                            response = c.resource(SERVICE_URL + "/" + trackData.getUri() + "/browse.json").accept("application/json").get(JSONObject.class);
                            try {
                                if (response.has("index") && !response.getString("index").equals("0")) {
                                    track.getTags().add(new TagData(TagData.TRACKNUM, response.getString("index")));
                                }
                                if (response.has("disc") && !response.getString("disc").equals("0")) {
                                    track.getTags().add(new TagData(TagData.DISC, response.getString("disc")));
                                }
                                if (response.has("albumuri") && response.getString("albumuri").length() > 0) {
                                    track.getTags().add(new TagData(TagData.SPOTIFY_ALBUM_ID, response.getString("albumuri")));
                                }
                                if (response.has("artists")) {
                                    JSONArray artistsArray = response.getJSONArray("artists");
                                    for (int j = 0; j < artistsArray.length(); j++) {
                                        JSONObject artistObject = artistsArray.getJSONObject(j);
                                        track.getTags().add(new TagData(TagData.ARTIST, artistObject.getString("name")));
                                        track.getTags().add(new TagData(TagData.SPOTIFY_ARTIST_ID, artistObject.getString("uri")));
                                    }
                                }
                            } catch (JSONException e) {
                                e.printStackTrace();
                                //TODO: Implement error handling
View Full Code Here

    protected TagData getTagData(TagField tagField) {
        if (tagField instanceof TagTextField) {
            TagTextField vtf = (TagTextField) tagField;
            if (tagField instanceof AbstractID3v2Frame && ((AbstractID3v2Frame) tagField).getBody() instanceof FrameBodyTXXX) {
                FrameBodyTXXX t = (FrameBodyTXXX) ((AbstractID3v2Frame) tagField).getBody();
                return new TagData(t.getDescription(), vtf.getContent(), vtf.getContent().toUpperCase());
            } else if (tagField instanceof AbstractID3v2Frame) {
                return new TagData(vtf.getId(), vtf.getContent(), vtf.getContent().toUpperCase());
            }
        }
        return null;
    }
View Full Code Here

TOP

Related Classes of org.socialmusicdiscovery.server.plugins.mediaimport.TagData

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.