| | |
| | | import de.uhilger.tango.store.FileStorage; |
| | | import de.uhilger.tango.store.Storage; |
| | | import de.uhilger.tango.store.StorageFile; |
| | | import de.uhilger.tango.store.Track; |
| | | import java.io.File; |
| | | import java.io.FileFilter; |
| | | import java.io.IOException; |
| | |
| | | import java.util.Set; |
| | | import java.util.logging.Level; |
| | | import java.util.logging.Logger; |
| | | import org.farng.mp3.MP3File; |
| | | import org.farng.mp3.TagException; |
| | | import org.farng.mp3.id3.AbstractID3v2; |
| | | import org.farng.mp3.id3.ID3v1; |
| | | |
| | | /** |
| | | * |
| | |
| | | |
| | | private static final String[] specialChars = {new String("\u00c4"), new String("\u00d6"), |
| | | new String("\u00dc"), new String("\u00e4"), new String("\u00f6"), new String("\u00fc"), new String("\u00df")}; |
| | | |
| | | public static final String UNWANTED_PATTERN = "[^a-zA-Z_0-9 ]"; |
| | | |
| | | Map extMap = new HashMap(); |
| | | |
| | |
| | | Object o = extMap.get(ext); |
| | | if(o instanceof String) { |
| | | sf.setTyp(o.toString()); |
| | | getTrack(file, sf); |
| | | getMetadata(file, sf); |
| | | } else { |
| | | sf.setTyp(StorageFile.TYP_FILE); |
| | | } |
| | |
| | | } |
| | | } |
| | | //Collections.sort(list); |
| | | String json = escapeHtml(jsonWithCustomType(list, "Medialiste")); |
| | | String rawjson = jsonWithCustomType(list, "Medialiste"); |
| | | String json = escapeHtml(rawjson); |
| | | |
| | | logger.fine(json); |
| | | Headers headers = e.getResponseHeaders(); |
| | |
| | | return text; |
| | | } |
| | | |
| | | private void getTrack(File file, StorageFile sf) { |
| | | private void getMetadata(File file, StorageFile sf) { |
| | | if(sf.getTyp().equalsIgnoreCase(StorageFile.TYP_AUDIO)) { |
| | | Track track = new Track(file); |
| | | sf.setInterpret(track.getArtist()); |
| | | String trackTitel = track.getTitle(); |
| | | if(trackTitel != null && trackTitel.length() > 0) { |
| | | sf.setTitelAnzName(trackTitel); |
| | | try { |
| | | MP3File mp3 = new MP3File(file); |
| | | ID3v1 tag = mp3.getID3v1Tag(); |
| | | if(tag == null) { |
| | | AbstractID3v2 tag2 = mp3.getID3v2Tag(); |
| | | sf.setInterpret(tag2.getLeadArtist().replaceAll(UNWANTED_PATTERN, "")); |
| | | String trackTitel = tag2.getSongTitle().replaceAll(UNWANTED_PATTERN, ""); |
| | | if(trackTitel != null && trackTitel.length() > 0) { |
| | | sf.setTitelAnzName(trackTitel); |
| | | } |
| | | sf.setAlbum(tag2.getAlbumTitle().replaceAll(UNWANTED_PATTERN, "")); |
| | | } else { |
| | | sf.setInterpret(tag.getArtist().replaceAll(UNWANTED_PATTERN, "")); |
| | | String trackTitel = tag.getTitle().replaceAll(UNWANTED_PATTERN, ""); |
| | | if(trackTitel != null && trackTitel.length() > 0) { |
| | | sf.setTitelAnzName(trackTitel); |
| | | } |
| | | sf.setAlbum(tag.getAlbumTitle().replaceAll(UNWANTED_PATTERN, "")); |
| | | } |
| | | } catch (IOException ex) { |
| | | Logger.getLogger(ListFileHandler.class.getName()).log(Level.SEVERE, null, ex); |
| | | } catch (TagException ex) { |
| | | Logger.getLogger(ListFileHandler.class.getName()).log(Level.SEVERE, null, ex); |
| | | } |
| | | sf.setAlbum(track.getAlbum()); |
| | | } |
| | | } |
| | | |