git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorSweidan Omar <TFS\sweidan.omar>
Thu, 24 Mar 2022 08:42:15 +0000 (08:42 +0000)
committerSweidan Omar <TFS\sweidan.omar>
Thu, 24 Mar 2022 08:42:15 +0000 (08:42 +0000)
server/user.jobengine.executors/src/user/jobengine/server/steps/GenerateJSONMetadataStep.java [new file with mode: 0644]

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 (file)
index 0000000..210d735
--- /dev/null
@@ -0,0 +1,65 @@
+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