package com.mercandalli.android.apps.files.file.audio.metadata.read;
import android.support.annotation.Nullable;
import java.io.File;
/* package */ abstract class FSParser {
private static final TagFormat UTILS = new TagFormat();
//private static final NameRectifier nameRectifier = new NameRectifier();
public FSParser() {
}
public static ParsedFilename parseFolder(File file) {
return parseFolder(file.getName());
}
public static ParsedFilename parseFolder(String s) {
ParsedFilename result = new ParsedFilename(s);
int hyphenCount = TextUtils.split(s, "-").length - 1;
if (hyphenCount != 1) {
return result;
} else {
String artist = s.substring(0, s.indexOf(45));
String album = s.substring(s.indexOf(45) + 1);
//artist = nameRectifier.rectifyArtist(artist);
//album = nameRectifier.rectifyAlbum(album);
if (artist == null && album == null) {
return result;
} else {
result.setArtist(artist);
result.setAlbum(album);
return result;
}
}
}
public static boolean isTrackNumber(String s) {
if (s == null) {
return false;
} else {
s = s.trim();
if (s.length() >= 1 && s.length() <= 3) {
if (TextUtils.kALPHABET.indexOf(s.charAt(0)) >= 0) {
s = s.substring(1);
if (s.length() < 1) {
return false;
}
}
return TextUtils.filter(s, "0123456789").equals(s);
} else {
return false;
}
}
}
@Nullable
private static Number getTrackNumber(String s) {
try {
return Integer.valueOf(s);
} catch (Throwable var2) {
return null;
}
}
@Nullable
public static MusicMetadata parseFilename(String fileName, String folderName) {
if (fileName == null) {
return null;
} else if (!fileName.toLowerCase().endsWith(".mp3")) {
return null;
} else {
fileName = fileName.substring(0, fileName.length() - 4);
String[] splits = fileName.split("-");
String artist;
String song_title;
Number track_number;
if (splits.length == 2) {
if (isTrackNumber(splits[0])) {
artist = null;
track_number = getTrackNumber(splits[0].trim());
song_title = UTILS.processSongTitle(splits[1]);
} else if (isTrackNumber(splits[1])) {
artist = null;
song_title = UTILS.processSongTitle(splits[0]);
track_number = getTrackNumber(splits[1].trim());
} else {
artist = UTILS.processArtist(splits[0]);
song_title = UTILS.processSongTitle(splits[1]);
track_number = null;
}
} else {
if (splits.length != 3) {
return null;
}
if (isTrackNumber(splits[0])) {
track_number = getTrackNumber(splits[0].trim());
artist = UTILS.processArtist(splits[1]);
song_title = UTILS.processSongTitle(splits[2]);
} else {
if (!isTrackNumber(splits[1])) {
return null;
}
artist = UTILS.processArtist(splits[0]);
track_number = getTrackNumber(splits[1].trim());
song_title = UTILS.processSongTitle(splits[2]);
}
}
if (isTrackNumber(artist)) {
return null;
} else if (isTrackNumber(song_title)) {
return null;
} else {
if (folderName != null && folderName.endsWith("(!)")) {
folderName = folderName.substring(0, folderName.length() - 3);
}
String kVariousArtists = "Various Artists";
String album = null;
if (folderName != null && !folderName.startsWith("@")) {
if (artist != null) {
if (folderName.toLowerCase().startsWith(kVariousArtists.toLowerCase())) {
folderName = folderName.substring(kVariousArtists.length());
} else if (folderName.toLowerCase().startsWith(artist.toLowerCase())) {
folderName = folderName.substring(artist.length());
} else {
if (!folderName.toLowerCase().endsWith(artist.toLowerCase())) {
return null;
}
folderName = folderName.substring(0, folderName.length() - artist.length());
}
album = UTILS.processAlbum(folderName);
} else {
int result = folderName.indexOf(45);
int lastHyphen = folderName.lastIndexOf(45);
if (result < 0 || result != lastHyphen) {
return null;
}
artist = UTILS.processArtist(folderName.substring(0, result));
album = UTILS.processAlbum(folderName.substring(result + 1));
}
}
if (artist == null) {
return null;
} else {
if (artist.equalsIgnoreCase(kVariousArtists)) {
artist = null;
}
MusicMetadata result1 = new MusicMetadata("filename");
result1.setAlbum(album);
result1.setArtist(artist);
result1.setSongTitle(song_title);
if (track_number != null) {
result1.setTrackNumber(track_number);
}
return result1;
}
}
}
}
}