private void updateId3Tags() { ID3Wrapper oldId3Wrapper = new ID3Wrapper(mp3file.getId3v1Tag(), mp3file.getId3v2Tag()); ID3Wrapper newId3Wrapper = new ID3Wrapper(new ID3v1Tag(), new ID3v23Tag()); preProcess(oldId3Wrapper); newId3Wrapper.setTrack(cleanTrack(oldId3Wrapper.getTrack())); newId3Wrapper.setArtist(trimField(oldId3Wrapper.getArtist())); newId3Wrapper.setTitle(trimField(oldId3Wrapper.getTitle())); newId3Wrapper.setArtist(trimField(oldId3Wrapper.getArtist())); newId3Wrapper.setAlbum(trimField(oldId3Wrapper.getAlbum())); newId3Wrapper.setYear(trimField(oldId3Wrapper.getYear())); newId3Wrapper.setGenre(oldId3Wrapper.getGenre()); if (comment != null) { newId3Wrapper.setComment(trimField(comment)); } else { newId3Wrapper.setComment(trimField(oldId3Wrapper.getComment())); newId3Wrapper.setComposer(trimField(oldId3Wrapper.getComposer())); newId3Wrapper.setOriginalArtist(trimField(oldId3Wrapper.getOriginalArtist())); newId3Wrapper.setCopyright(trimField(oldId3Wrapper.getCopyright())); newId3Wrapper.setUrl(trimField(oldId3Wrapper.getUrl())); if (encoder != null) { newId3Wrapper.setEncoder(trimField(encoder)); } else { newId3Wrapper.setEncoder(trimField(oldId3Wrapper.getEncoder())); newId3Wrapper.setAlbumImage(oldId3Wrapper.getAlbumImage(), cleanImageMimeType(oldId3Wrapper.getAlbumImageMimeType())); newId3Wrapper.getId3v2Tag().setPadding(true); postProcess(newId3Wrapper); mp3file.setId3v1Tag(newId3Wrapper.getId3v1Tag());
private void catalogId3Fields(StringBuffer cat) { ID3v1 id3v1tag = mp3file.getId3v1Tag(); ID3v2 id3v2tag = mp3file.getId3v2Tag(); ID3Wrapper id3wrapper = new ID3Wrapper(id3v1tag, id3v2tag); if (id3v1tag != null) catalogField(cat, "1." + id3v1tag.getVersion()); else catalogField(cat, null); if (id3v2tag != null) catalogField(cat, "2." + id3v2tag.getVersion()); else catalogField(cat, null); catalogField(cat, id3wrapper.getTrack()); catalogField(cat, id3wrapper.getArtist()); catalogField(cat, id3wrapper.getAlbum()); catalogField(cat, id3wrapper.getTitle()); catalogField(cat, id3wrapper.getYear()); catalogField(cat, id3wrapper.getGenreDescription()); catalogField(cat, id3wrapper.getComment()); catalogField(cat, id3wrapper.getComposer()); catalogField(cat, id3wrapper.getOriginalArtist()); catalogField(cat, id3wrapper.getCopyright()); catalogField(cat, id3wrapper.getUrl()); catalogField(cat, id3wrapper.getEncoder()); catalogField(cat, id3wrapper.getAlbumImageMimeType()); }
private String makeDirectory(String filename, String destination) throws UnsupportedTagException, InvalidDataException, IOException { ID3Wrapper id3Wrapper = createId3Wrapper(filename); String artist = stripString(id3Wrapper.getArtist()); String album = stripString(id3Wrapper.getAlbum()); String dest = destination; if (dest.charAt(dest.length() - 1) != '/') dest += "/"; if (artist != null && artist.length() > 0) { dest += artist; dest += '/'; mkdir(dest); if (album != null && album.length() > 0) { dest += album; mkdir(dest); } } return dest; }
protected String composeNewFilename(String filename, String rename) throws UnsupportedTagException, InvalidDataException, IOException { ID3Wrapper id3Wrapper = createId3Wrapper(filename); String newFilename = rename; newFilename = BufferTools.substitute(newFilename, "@N", formatTrack(id3Wrapper.getTrack())); newFilename = BufferTools.substitute(newFilename, "@A", id3Wrapper.getArtist()); newFilename = BufferTools.substitute(newFilename, "@T", id3Wrapper.getTitle()); newFilename = BufferTools.substitute(newFilename, "@L", id3Wrapper.getAlbum()); newFilename = BufferTools.substitute(newFilename, "@Y", id3Wrapper.getYear()); newFilename = BufferTools.substitute(newFilename, "@G", id3Wrapper.getGenreDescription()); newFilename = BufferTools.substitute(newFilename, "?", null); newFilename = BufferTools.substitute(newFilename, "*", null); newFilename = BufferTools.substitute(newFilename, "/", null); newFilename = BufferTools.substitute(newFilename, "\\", null); newFilename = BufferTools.substitute(newFilename, " ", " "); return newFilename; }
private String chooseFilename(String mimeType) { String extension; int idx; if ((idx = mimeType.indexOf('/')) > 0) extension = "." + mimeType.substring(idx + 1).toLowerCase(); else mimeType = extension = "." + mimeType.toLowerCase(); ID3Wrapper id3Wrapper = new ID3Wrapper(mp3file.getId3v1Tag(), mp3file.getId3v2Tag()); String path = FileUtils.extractPath(mp3file.getFilename()); String baseFilename = path + toCompressedString(id3Wrapper.getArtist()) + "-" + toCompressedString(id3Wrapper.getAlbum()); String filename; if (!fileExists(filename = baseFilename + extension)) return filename; int i = 1; while (true) { if (!fileExists(filename = baseFilename + Integer.toString(i) + extension)) return filename; i++; } }
protected ID3Wrapper createId3Wrapper(String filename) throws IOException, UnsupportedTagException, InvalidDataException { Mp3File mp3file = new Mp3File(filename, false); ID3Wrapper id3Wrapper = new ID3Wrapper(mp3file.getId3v1Tag(), mp3file.getId3v2Tag()); return id3Wrapper; }
private boolean findAndSetAlbumImage(ID3Wrapper id3Wrapper) { String path = FileUtils.extractPath(mp3file.getFilename()); if (trySetAlbumImage(id3Wrapper, path + id3Wrapper.getArtist() + " - " + id3Wrapper.getAlbum())) { return true; } if (trySetAlbumImage(id3Wrapper, path + toCompressedString(id3Wrapper.getArtist()) + "-" + toCompressedString(id3Wrapper.getAlbum()))) { return true; } if (trySetAlbumImage(id3Wrapper, path + id3Wrapper.getAlbum())) { return true; } if (trySetAlbumImage(id3Wrapper, path + toCompressedString(id3Wrapper.getAlbum()))) { return true; } if (trySetAlbumImage(id3Wrapper, path + "folder")) { return true; } int andPosInArtist = id3Wrapper.getArtist().indexOf(" & "); if (andPosInArtist > 0) { if (trySetAlbumImage(id3Wrapper, path + id3Wrapper.getArtist().substring(0, andPosInArtist) + " - " + id3Wrapper.getAlbum())) { return true; } if (trySetAlbumImage(id3Wrapper, path + toCompressedString(id3Wrapper.getArtist().substring(0, andPosInArtist)) + "-" + toCompressedString(id3Wrapper.getAlbum()))) { return true; } } printError("WARNING processing \"" + FileUtils.extractFilename(mp3file.getFilename()) + "\" - no album image found"); return false; }
protected ID3Wrapper createId3Wrapper(String filename) throws IOException, UnsupportedTagException, InvalidDataException { Mp3File mp3file = new Mp3File(filename, false); ID3Wrapper id3Wrapper = new ID3Wrapper(mp3file.getId3v1Tag(), mp3file.getId3v2Tag()); return id3Wrapper; }