Package com.itstherules.mediacentre.controller

Source Code of com.itstherules.mediacentre.controller.MetaDataController

package com.itstherules.mediacentre.controller;

import java.io.File;
import java.io.IOException;
import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import com.itstherules.io.FileEmbedder;
import com.itstherules.io.IOHelper;
import com.itstherules.mediacentre.Extension;
import com.itstherules.mediacentre.freemarker.method.ParentDirectoryFinder;
import com.itstherules.mediacentre.model.ItemScalar;
import com.itstherules.mediacentre.model.MetaDataScalar;
import com.itstherules.mediacentre.model.RecursiveItemsList;
import com.itstherules.metadata.FlvHeader;
import com.itstherules.metadata.MetaDataGen;
import com.itstherules.metadata.TagBroker;
import com.itstherules.stream.model.ItemsModel;

public class MetaDataController extends BaseController {
  private static final String MOVIES = "movies";

  @Override
  public void list(Map<String, Object> parameters, HttpServletResponse response) throws IOException {
    RecursiveItemsList model = new RecursiveItemsList(MOVIES, Extension.flv.toString());
    parameters.put("items", model.values())
    parameters.put("parentDirectory", new ParentDirectoryFinder())
    merge("metadata/list.freemarker", parameters, response.getWriter());
  }
 
  @Override
  public void show(Map<String, Object> parameters, HttpServletResponse response) throws IOException {
    ItemScalar itemScalar = new ItemScalar(MOVIES, (String) parameters.get("directory"));
    File file = itemScalar.value((String) parameters.get("item"));
    MetaDataScalar metaDataScalar = new MetaDataScalar();
    parameters.put("metaData", metaDataScalar.value(file));
    merge("metadata/show.freemarker", parameters, response.getWriter());
  }
 
  @Override
  public void edit(Map<String, Object> parameters, HttpServletResponse response) throws IOException {
    merge("metadata/edit.freemarker", parameters, response.getWriter());
  }
 
  @Override
  public void update(Map<String, Object> parameters, HttpServletResponse response) throws IOException {
    String metaAuthor = (String) parameters.get("metaCreator");
    String[] addedEmbedParameters = nullGuard((String) parameters.get("parameters")).split(" ");
    File flvFile = getFile(parameters);
    if(flvFile  != null) {
      IOHelper ioHelper = new IOHelper(flvFile);
      File tempOutFile = new File(flvFile.getAbsolutePath() + ".tmp");
      ioHelper.setOutFile(tempOutFile);
      FlvHeader flvHeader = new FlvHeader(ioHelper);
      TagBroker tagBroker = new TagBroker(ioHelper, flvHeader);
      MetaDataGen metaDataGen = new MetaDataGen(tagBroker, flvHeader);
      metaDataGen.buildOnLastSecond();
      metaDataGen.buildOnMetaData();
      FileEmbedder fileEmbedder = new FileEmbedder(metaDataGen.getMetaData());
      if("".equals(metaAuthor)) metaAuthor = "MediaCentre";
      fileEmbedder.embedVar("metacreator", metaAuthor);
      if(addedEmbedParameters.length > -1 && !"".equals(addedEmbedParameters[0])) fileEmbedder.embedVars(addedEmbedParameters);
      metaDataGen.sealMetaData();
      tagBroker.writeTags();
      ioHelper.closeAll();
      tempOutFile.renameTo(flvFile);
      response.sendRedirect("../list/index.html");
    }
  }
 
  private String nullGuard(String parameter) {
    if(parameter == null) return "";
    return parameter;
  }

  private File getFile(Map<String, Object> parameters) {
    String directory = (String) parameters.get("directory");
    String item = (String) parameters.get("item");
    return itemPath(directory, item);
  }

  private File itemPath(String subDirectory, String item) {
    ItemsModel items = new ItemsModel(MOVIES, subDirectory, Extension.flv.toString());
    for (File file : items.asList()) {
      if (item.equals(file.getName())) {
        return file;
      }
    }
    throw new RuntimeException();
  }}
TOP

Related Classes of com.itstherules.mediacentre.controller.MetaDataController

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.