diff options
Diffstat (limited to 'subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/TagService.java')
-rw-r--r-- | subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/TagService.java | 128 |
1 files changed, 0 insertions, 128 deletions
diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/TagService.java b/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/TagService.java deleted file mode 100644 index f7373b4e..00000000 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/TagService.java +++ /dev/null @@ -1,128 +0,0 @@ -/* - This file is part of Subsonic. - - Subsonic is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - Subsonic is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Subsonic. If not, see <http://www.gnu.org/licenses/>. - - Copyright 2009 (C) Sindre Mehus - */ -package net.sourceforge.subsonic.ajax; - -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.service.MediaFileService; -import net.sourceforge.subsonic.service.metadata.MetaData; -import net.sourceforge.subsonic.service.metadata.MetaDataParser; -import net.sourceforge.subsonic.service.metadata.MetaDataParserFactory; -import org.apache.commons.io.FilenameUtils; -import org.apache.commons.lang.ObjectUtils; -import org.apache.commons.lang.StringUtils; - -/** - * Provides AJAX-enabled services for editing tags in music files. - * This class is used by the DWR framework (http://getahead.ltd.uk/dwr/). - * - * @author Sindre Mehus - */ -public class TagService { - - private static final Logger LOG = Logger.getLogger(TagService.class); - - private MetaDataParserFactory metaDataParserFactory; - private MediaFileService mediaFileService; - - /** - * Updated tags for a given music file. - * - * @param id The ID of the music file. - * @param track The track number. - * @param artist The artist name. - * @param album The album name. - * @param title The song title. - * @param year The release year. - * @param genre The musical genre. - * @return "UPDATED" if the new tags were updated, "SKIPPED" if no update was necessary. - * Otherwise the error message is returned. - */ - public String setTags(int id, String track, String artist, String album, String title, String year, String genre) { - - track = StringUtils.trimToNull(track); - artist = StringUtils.trimToNull(artist); - album = StringUtils.trimToNull(album); - title = StringUtils.trimToNull(title); - year = StringUtils.trimToNull(year); - genre = StringUtils.trimToNull(genre); - - Integer trackNumber = null; - if (track != null) { - try { - trackNumber = new Integer(track); - } catch (NumberFormatException x) { - LOG.warn("Illegal track number: " + track, x); - } - } - - Integer yearNumber = null; - if (year != null) { - try { - yearNumber = new Integer(year); - } catch (NumberFormatException x) { - LOG.warn("Illegal year: " + year, x); - } - } - - try { - - MediaFile file = mediaFileService.getMediaFile(id); - MetaDataParser parser = metaDataParserFactory.getParser(file.getFile()); - - if (!parser.isEditingSupported()) { - return "Tag editing of " + FilenameUtils.getExtension(file.getPath()) + " files is not supported."; - } - - MetaData existingMetaData = parser.getRawMetaData(file.getFile()); - - if (StringUtils.equals(artist, existingMetaData.getArtist()) && - StringUtils.equals(album, existingMetaData.getAlbumName()) && - StringUtils.equals(title, existingMetaData.getTitle()) && - ObjectUtils.equals(yearNumber, existingMetaData.getYear()) && - StringUtils.equals(genre, existingMetaData.getGenre()) && - ObjectUtils.equals(trackNumber, existingMetaData.getTrackNumber())) { - return "SKIPPED"; - } - - MetaData newMetaData = new MetaData(); - newMetaData.setArtist(artist); - newMetaData.setAlbumName(album); - newMetaData.setTitle(title); - newMetaData.setYear(yearNumber); - newMetaData.setGenre(genre); - newMetaData.setTrackNumber(trackNumber); - parser.setMetaData(file, newMetaData); - mediaFileService.refreshMediaFile(file); - return "UPDATED"; - - } catch (Exception x) { - LOG.warn("Failed to update tags for " + id, x); - return x.getMessage(); - } - } - - public void setMediaFileService(MediaFileService mediaFileService) { - this.mediaFileService = mediaFileService; - } - - public void setMetaDataParserFactory(MetaDataParserFactory metaDataParserFactory) { - this.metaDataParserFactory = metaDataParserFactory; - } -} |