From 84345df53a8ee8b3d49217d5b0880fd34c36ec9d Mon Sep 17 00:00:00 2001 From: Sweidan Omar Date: Thu, 24 Mar 2022 08:42:15 +0000 Subject: [PATCH] git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C33098 --- .../steps/GenerateJSONMetadataStep.java | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 server/user.jobengine.executors/src/user/jobengine/server/steps/GenerateJSONMetadataStep.java diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/GenerateJSONMetadataStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/GenerateJSONMetadataStep.java new file mode 100644 index 00000000..210d7354 --- /dev/null +++ b/server/user.jobengine.executors/src/user/jobengine/server/steps/GenerateJSONMetadataStep.java @@ -0,0 +1,65 @@ +package user.jobengine.server.steps; + +import java.io.IOException; +import java.nio.file.Paths; +import java.sql.Timestamp; +import java.util.Map; + +import org.apache.commons.io.FilenameUtils; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import user.commons.DownloadableMedia; +import user.commons.StoreUri; +import user.commons.mediaarea.MediaArea; +import user.commons.remotestore.RemoteStoreProtocol; +import user.jobengine.server.steps.shared.EscortFiles; + +public class GenerateJSONMetadataStep extends JobStep { + private static final Logger logger = LogManager.getLogger(); + + @StepEntry + public Object[] execute(Map files, String sourceStoreName, String targetStoreName, + String escortStoreFolder) { + if (!files.isEmpty()) { + for (String fullPath : files.keySet()) { + MediaArea mediaArea = files.get(fullPath); + String title = FilenameUtils.getBaseName(fullPath).replace(FilenameUtils.getExtension(fullPath), ""); + String pathOnly = fullPath.substring(0, fullPath.lastIndexOf("\\") + 1); + String filenameOnly = FilenameUtils.getBaseName(fullPath); + Timestamp created = null; + Timestamp modified = null; + long frameCount = mediaArea.getFrameCount(); + long mediaId = 0; + StoreUri sourceStoreUri = getManager().getStoreUri(sourceStoreName, RemoteStoreProtocol.LOCAL); + StoreUri targetStoreUri = getManager().getStoreUri(targetStoreName, RemoteStoreProtocol.LOCAL); + StoreUri escortStoreUri = getManager().getStoreUri(escortStoreFolder, RemoteStoreProtocol.LOCAL); + + try { + String outputPath = Paths.get(escortStoreUri.toString(true)).toString(); + } catch (Exception e1) { + e1.printStackTrace(); + } + + DownloadableMedia downloadable = DownloadableMedia.create(title, filenameOnly, modified, created, + frameCount, 0, sourceStoreUri.getId(), targetStoreUri.getId(), mediaId); + String escortFileName = targetStoreName + "." + downloadable.getString("fileName"); // needed without + // extension + try { + if (EscortFiles.createMetadataIfNotExists(pathOnly, escortFileName, + downloadable.toPrettyString(""))) { + logger.info(getMarker(), "Archive status file created for {}", fullPath); + } else { + logger.info(getMarker(), "Archive status file already exists for {}", fullPath); + } + } catch (IOException e) { + logger.error("{}", e.getCause()); + e.printStackTrace(); + } + } + } else { + logger.info("files is empty!"); + } + return null; + } +} -- 2.54.0