package com.itstherules.mediacentre.controller;
import java.io.File;
import java.io.IOException;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import com.itstherules.mediacentre.Extension;
import com.itstherules.mediacentre.freemarker.method.NiceifyName;
import com.itstherules.stream.model.DirectoriesModel;
import com.itstherules.stream.model.ItemsModel;
import com.itstherules.stream.model.ParameterBasedMp3;
import freemarker.template.SimpleScalar;
import freemarker.template.TemplateModelException;
public class AlbumController extends BaseController {
@Override
public void list(Map<String, Object> parameters, HttpServletResponse response) throws IOException {
DirectoriesModel model = new DirectoriesModel("music/"+parameters.get("directory"));
parameters.put("directories", model.asList());
merge("album/list.freemarker", parameters, response.getWriter());
}
@Override
public void show(Map<String, Object> parameters, HttpServletResponse response) throws IOException {
merge("album/show.freemarker", parameters, response.getWriter());
}
@Override
public void update(Map<String, Object> parameters, HttpServletResponse response) throws IOException {
DirectoriesModel model = new DirectoriesModel("music/"+parameters.get("directory"));
File directory = model.getDirectory();
File parent = new File(directory.getParent());
File parentParent = new File(parent.getParent());
String album = parent.getName();
String artist = parentParent.getName();
List<File> files = new ItemsModel(directory.getAbsolutePath(),"", Extension.mp3.toString()).asList();
for (File file : files) {
try {
String track = ((SimpleScalar) new NiceifyName().exec(Collections.singletonList(file.getName()))).getAsString();
Map<String, Object> map = new HashMap<String, Object>();
map.put("title", track);
map.put("album", album);
map.put("artist", artist);
new ParameterBasedMp3(map).persist(directory.getAbsolutePath());
} catch (TemplateModelException e) {
}
}
}
}