All checks were successful
Locusworks Team/eight-track/pipeline/head This commit looks good
174 lines
4.9 KiB
Java
174 lines
4.9 KiB
Java
/*
|
|
*
|
|
* Project: Eight Track, File: Mp3UploadResults.java
|
|
*
|
|
* Copyright 2019-2021 Locusworks LLC.
|
|
* All rights reserved. Federal copyright law prohibits unauthorized reproduction by
|
|
* any means and imposes fines up to $25,000 for violation. No part of this material
|
|
* may be reproduced, transmitted, transcribed, stored in a retrieval system, copied,
|
|
* modified, duplicated, adapted or translated into another program language in any
|
|
* form or by any means, electronic, mechanical, photocopying, recording, or
|
|
* otherwise, without the prior written permission from Locusworks. Locusworks
|
|
* affirms that Eight-Track(R) software and data is subject to United States
|
|
* Government Purpose Rights. Contact Locusworks, 1313 Lawnview Drive
|
|
* Forney TX 75126, (802) 488-0438, for commercial licensing opportunities.
|
|
*
|
|
* IN NO EVENT SHALL LOCUSWORKS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL,
|
|
* INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT
|
|
* OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF LOCUSWORKS HAS BEEN
|
|
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. NO RESPONSIBILITY IS ASSUMED BY
|
|
* LOCUSWORKS FOR ITS USE, OR FOR ANY INFRINGEMENTS OF PATENTS OR OTHER RIGHTS OF
|
|
* THIRD PARTIES RESULTING FROM ITS USE. LOCUSWORKS SPECIFICALLY DISCLAIMS ANY
|
|
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE AND
|
|
* ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED HEREUNDER IS PROVIDED "AS
|
|
* IS". LOCUSWORKS HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
|
|
* ENHANCEMENTS, OR MODIFICATIONS.
|
|
*/
|
|
package net.locusworks.discord.eighttrack.audio;
|
|
|
|
import org.jaudiotagger.tag.FieldKey;
|
|
import org.jaudiotagger.tag.Tag;
|
|
|
|
public class Mp3UploadResults {
|
|
|
|
private String genre;
|
|
private String composure;
|
|
private String album;
|
|
private String trackNumber;
|
|
private String discNumber;
|
|
private String artist;
|
|
private String title;
|
|
private String releaseDate;
|
|
|
|
private byte[] rawData;
|
|
private Throwable err;
|
|
|
|
public Mp3UploadResults(Tag tag, byte[] data) {
|
|
parseResults(tag);
|
|
this.rawData = data;
|
|
}
|
|
|
|
public Mp3UploadResults(Throwable err) {
|
|
this.err = err;
|
|
}
|
|
|
|
private void parseResults(Tag tag) {
|
|
genre = tag.getFirst(FieldKey.GENRE);
|
|
composure = tag.getFirst(FieldKey.COMPOSER);
|
|
album = tag.getFirst(FieldKey.ALBUM);
|
|
trackNumber = tag.getFirst(FieldKey.TRACK);
|
|
discNumber = tag.getFirst(FieldKey.DISC_NO);
|
|
artist = tag.getFirst(FieldKey.ARTIST);
|
|
title = tag.getFirst(FieldKey.TITLE);
|
|
releaseDate = tag.getFirst(FieldKey.ORIGINAL_YEAR);
|
|
}
|
|
|
|
public final byte[] getData() {
|
|
return this.rawData;
|
|
}
|
|
|
|
/**
|
|
* @return the genre
|
|
*/
|
|
public final String getGenre() {
|
|
return genre;
|
|
}
|
|
|
|
/**
|
|
* @return the composure
|
|
*/
|
|
public final String getComposure() {
|
|
return composure;
|
|
}
|
|
|
|
/**
|
|
* @return the album
|
|
*/
|
|
public final String getAlbum() {
|
|
return album;
|
|
}
|
|
|
|
/**
|
|
* @return the trackNumber
|
|
*/
|
|
public final String getTrackNumber() {
|
|
return trackNumber;
|
|
}
|
|
|
|
/**
|
|
* @return the discNumber
|
|
*/
|
|
public final String getDiscNumber() {
|
|
return discNumber;
|
|
}
|
|
|
|
/**
|
|
* @return the artist
|
|
*/
|
|
public final String getArtist() {
|
|
return artist;
|
|
}
|
|
|
|
/**
|
|
* @return the title
|
|
*/
|
|
public final String getTitle() {
|
|
return title;
|
|
}
|
|
|
|
/**
|
|
* @return the releaseDate
|
|
*/
|
|
public final String getReleaseDate() {
|
|
return releaseDate;
|
|
}
|
|
|
|
public boolean validFile() {
|
|
return (getTitle() != null && !getTitle().isEmpty() && getArtist() != null && !getArtist().trim().isEmpty()) || this.err != null;
|
|
}
|
|
|
|
public boolean hasError() {
|
|
return this.err != null;
|
|
}
|
|
|
|
public Throwable getError() {
|
|
return this.err;
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
if (this.hasError()) {
|
|
return "Unable to parse file due to exception: " + this.err.getMessage();
|
|
}
|
|
|
|
StringBuilder sb = new StringBuilder();
|
|
if (getTitle() != null)
|
|
sb.append(String.format("%-10s: %s%n", "Title", getTitle()));
|
|
|
|
if (getArtist() != null)
|
|
sb.append(String.format("%-10s: %s%n", "Artist", getArtist()));
|
|
|
|
if (getAlbum() != null)
|
|
sb.append(String.format("%-10s: %s%n", "Album", getAlbum()));
|
|
|
|
if (getTrackNumber() != null)
|
|
sb.append(String.format("%-10s: %s%n", "Track", getTrackNumber()));
|
|
|
|
if (getDiscNumber() != null)
|
|
sb.append(String.format("%-10s: %s%n", "Disc", getDiscNumber()));
|
|
|
|
if (getReleaseDate() != null)
|
|
sb.append(String.format("%-10s: %s%n", "Year", getReleaseDate()));
|
|
|
|
if (getGenre() != null)
|
|
sb.append(String.format("%-10s: %s%n", "Genre", getGenre()));
|
|
|
|
return sb.toString();
|
|
}
|
|
|
|
public void clear() {
|
|
rawData = new byte[0];
|
|
}
|
|
}
|