--- /dev/null
+package user.jobengine.server.steps;\r
+\r
+import java.io.IOException;\r
+import java.nio.file.Paths;\r
+import java.sql.Timestamp;\r
+import java.util.Map;\r
+\r
+import org.apache.commons.io.FilenameUtils;\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+\r
+import user.commons.DownloadableMedia;\r
+import user.commons.StoreUri;\r
+import user.commons.mediaarea.MediaArea;\r
+import user.commons.remotestore.RemoteStoreProtocol;\r
+import user.jobengine.server.steps.shared.EscortFiles;\r
+\r
+public class GenerateJSONMetadataStep extends JobStep {\r
+ private static final Logger logger = LogManager.getLogger();\r
+\r
+ @StepEntry\r
+ public Object[] execute(Map<String, MediaArea> files, String sourceStoreName, String targetStoreName,\r
+ String escortStoreFolder) {\r
+ if (!files.isEmpty()) {\r
+ for (String fullPath : files.keySet()) {\r
+ MediaArea mediaArea = files.get(fullPath);\r
+ String title = FilenameUtils.getBaseName(fullPath).replace(FilenameUtils.getExtension(fullPath), "");\r
+ String pathOnly = fullPath.substring(0, fullPath.lastIndexOf("\\") + 1);\r
+ String filenameOnly = FilenameUtils.getBaseName(fullPath);\r
+ Timestamp created = null;\r
+ Timestamp modified = null;\r
+ long frameCount = mediaArea.getFrameCount();\r
+ long mediaId = 0;\r
+ StoreUri sourceStoreUri = getManager().getStoreUri(sourceStoreName, RemoteStoreProtocol.LOCAL);\r
+ StoreUri targetStoreUri = getManager().getStoreUri(targetStoreName, RemoteStoreProtocol.LOCAL);\r
+ StoreUri escortStoreUri = getManager().getStoreUri(escortStoreFolder, RemoteStoreProtocol.LOCAL);\r
+\r
+ try {\r
+ String outputPath = Paths.get(escortStoreUri.toString(true)).toString();\r
+ } catch (Exception e1) {\r
+ e1.printStackTrace();\r
+ }\r
+\r
+ DownloadableMedia downloadable = DownloadableMedia.create(title, filenameOnly, modified, created,\r
+ frameCount, 0, sourceStoreUri.getId(), targetStoreUri.getId(), mediaId);\r
+ String escortFileName = targetStoreName + "." + downloadable.getString("fileName"); // needed without\r
+ // extension\r
+ try {\r
+ if (EscortFiles.createMetadataIfNotExists(pathOnly, escortFileName,\r
+ downloadable.toPrettyString(""))) {\r
+ logger.info(getMarker(), "Archive status file created for {}", fullPath);\r
+ } else {\r
+ logger.info(getMarker(), "Archive status file already exists for {}", fullPath);\r
+ }\r
+ } catch (IOException e) {\r
+ logger.error("{}", e.getCause());\r
+ e.printStackTrace();\r
+ }\r
+ }\r
+ } else {\r
+ logger.info("files is empty!");\r
+ }\r
+ return null;\r
+ }\r
+}\r