git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Thu, 7 Nov 2019 12:56:08 +0000 (12:56 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Thu, 7 Nov 2019 12:56:08 +0000 (12:56 +0000)
server/hu.user.mediacube.executors.tests/src/hu/user/mediacube/executors/tests/SupportAttachLowres.java [new file with mode: 0644]
server/user.jobengine.executors/src/user/jobengine/server/steps/AttachLowresStep.java [new file with mode: 0644]
server/user.jobengine.executors/src/user/jobengine/server/steps/FakeStep.java
server/user.jobengine.osgi.server/pages/searchitems.zul

diff --git a/server/hu.user.mediacube.executors.tests/src/hu/user/mediacube/executors/tests/SupportAttachLowres.java b/server/hu.user.mediacube.executors.tests/src/hu/user/mediacube/executors/tests/SupportAttachLowres.java
new file mode 100644 (file)
index 0000000..a31ee53
--- /dev/null
@@ -0,0 +1,62 @@
+package hu.user.mediacube.executors.tests;\r
+\r
+import java.sql.Connection;\r
+import java.sql.SQLException;\r
+\r
+import org.junit.AfterClass;\r
+import org.junit.BeforeClass;\r
+import org.junit.Test;\r
+\r
+import user.jobengine.db.IItemManager;\r
+import user.jobengine.db.ItemManager;\r
+import user.jobengine.db.Media;\r
+import user.jobengine.server.IJobRuntime;\r
+import user.jobengine.server.JobRuntime;\r
+import user.jobengine.server.steps.AttachLowresStep;\r
+\r
+public class SupportAttachLowres {\r
+       protected static IItemManager manager = null;\r
+       private static final String LOWRES_ROOT = "//10.11.1.90/data/lowres";\r
+       private static final String LOWRES_OUTPUT = "//10.11.1.100/Promise/TRANSCODER/FFASTRANSCODER/Out";\r
+\r
+       private static final long[] duplicateLength = { 0 };\r
+\r
+       @BeforeClass\r
+       static public void setUpConnection() {\r
+               System.setProperty("jobengine.nosql.db.url", "jdbc:db2://10.11.1.90:50000/mc:retrieveMessagesFromServerOnGetMessage=true;");\r
+               System.setProperty("jobengine.nosql.db.user", "db2admin");\r
+               System.setProperty("jobengine.nosql.db.password", "password");\r
+               System.setProperty(ItemManager.DBURL, "jdbc:db2://10.11.1.90:50000/mc:retrieveMessagesFromServerOnGetMessage=true;");\r
+               System.setProperty(ItemManager.DBUSERNAME, "db2admin");\r
+               System.setProperty(ItemManager.DBPASSWORD, "password");\r
+               manager = new ItemManager();\r
+               manager.connect();\r
+       }\r
+\r
+       @AfterClass\r
+       static public void tearDownConnection() {\r
+               manager.disconnect();\r
+       }\r
+\r
+       @Test\r
+       public void process() throws SQLException {\r
+               final Connection[] con = { null };\r
+               final AttachLowresStep step = new AttachLowresStep();\r
+               final IJobRuntime runtime = new JobRuntime();\r
+               runtime.setPersister(manager);\r
+\r
+               manager.executeQuery("select mediaid from vw_mediafiles where mediafilecount = 1", rs -> {\r
+                       long mediaId = rs.getLong("mediaId");\r
+                       Media m = manager.getMedia(mediaId);\r
+                       try {\r
+                               step.run(null, runtime, new Object[] { m, LOWRES_OUTPUT, LOWRES_ROOT });\r
+                       } catch (Throwable e) {\r
+                               System.out.println("Error: " + e.getMessage());\r
+                       }\r
+                       return true;\r
+               }, null);\r
+\r
+               con[0].close();\r
+       }\r
+\r
+}\r
diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/AttachLowresStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/AttachLowresStep.java
new file mode 100644 (file)
index 0000000..c6ca8c9
--- /dev/null
@@ -0,0 +1,100 @@
+package user.jobengine.server.steps;\r
+\r
+import java.io.IOException;\r
+import java.nio.file.Files;\r
+import java.nio.file.Path;\r
+import java.nio.file.Paths;\r
+import java.util.List;\r
+\r
+import org.apache.commons.io.FilenameUtils;\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+import org.apache.logging.log4j.Marker;\r
+import org.apache.logging.log4j.message.Message;\r
+import org.apache.logging.log4j.message.ParameterizedMessage;\r
+\r
+import user.jobengine.db.FileType;\r
+import user.jobengine.db.IItemManager;\r
+import user.jobengine.db.Media;\r
+import user.jobengine.db.MediaFile;\r
+import user.jobengine.db.Store;\r
+\r
+public class AttachLowresStep extends JobStep {\r
+       private static final int POLL_INTERVALL = 3000;\r
+       private static final String MP4EXT = ".MP4";\r
+       private static final String MXFEXT = ".MXF";\r
+       private static final String LOWRES_FILETYPE = "Low-res";\r
+       private static final Logger logger = LogManager.getLogger();\r
+       private IItemManager manager;\r
+       private Store store;\r
+       private FileType fileType;\r
+       private Media mediaCubeMedia;\r
+       private Marker marker;\r
+\r
+       @StepEntry\r
+       public Object[] execute(Media mediaCubeMedia, String localLowresTargetPath, String webPath) throws Exception {\r
+\r
+               this.marker = jobRuntime.getMarker();\r
+               this.manager = (IItemManager) jobRuntime.getPersister();\r
+               this.store = check(manager.getSystemStore(true), "lowres Store");\r
+               this.fileType = check(manager.getFileType(LOWRES_FILETYPE), "lowres FileType");\r
+               this.mediaCubeMedia = check(mediaCubeMedia, "mediaCubeMedia");\r
+               check(localLowresTargetPath, "localLowresTargetPath");\r
+               check(webPath, "webPath");\r
+\r
+               List<MediaFile> mediaFiles = mediaCubeMedia.getMediaFiles();\r
+               if (mediaFiles.size() != 1)\r
+                       throw new Exception("Media must have one media file");\r
+               String sourceFileName = mediaFiles.get(0).getHouseId();\r
+               Path targetPath = null;\r
+               try {\r
+                       String targetFileName = FilenameUtils.removeExtension(sourceFileName) + MP4EXT;\r
+                       targetPath = Paths.get(localLowresTargetPath, targetFileName);\r
+                       System.out.println("Processing " + sourceFileName);\r
+\r
+                       if (!targetPath.toFile().exists())\r
+                               System.out.println("File not exists: " + targetPath.toString());\r
+                       else\r
+                               postprocess(targetPath, webPath);\r
+\r
+               } catch (Exception e) {\r
+                       logger.catching(e);\r
+                       Message m = new ParameterizedMessage("{} átkódolás hiba: {}", e.getClass().getSimpleName(), e.getMessage());\r
+                       logger.error(marker, m);\r
+                       throw new Exception(m.getFormattedMessage());\r
+               }\r
+               return null;\r
+       }\r
+\r
+       private void postprocess(Path transcodedFilePath, String webPath) throws IOException {\r
+               Path lowresPath = null;\r
+               try {\r
+                       String transcodedFileName = transcodedFilePath.getFileName().toString();\r
+                       String targetPath = null;\r
+                       if (transcodedFileName.indexOf(".") > 2) {\r
+                               Path subdir = Paths.get(transcodedFileName.substring(0, 1), transcodedFileName.substring(1, 2), transcodedFileName.substring(2, 3));\r
+                               EscortFiles.ensureUNCFolder(webPath, subdir.toString());\r
+                               targetPath = Paths.get(subdir.toString(), transcodedFileName).toString();\r
+                       } else {\r
+                               targetPath = transcodedFileName;\r
+                       }\r
+                       lowresPath = Paths.get(webPath, targetPath);\r
+                       int version = 1;\r
+                       while (lowresPath.toFile().exists()) {\r
+                               String fileName = transcodedFileName + version + MP4EXT;\r
+                               lowresPath = Paths.get(lowresPath.toString().replace(transcodedFileName, fileName));\r
+                               targetPath = targetPath.replace(transcodedFileName, fileName);\r
+                               transcodedFileName = fileName;\r
+                               version++;\r
+                       }\r
+\r
+                       Files.move(transcodedFilePath, lowresPath);\r
+                       manager.createMediaFile(targetPath, fileType, store, mediaCubeMedia).add();\r
+               } catch (IOException e) {\r
+                       logger.catching(e);\r
+                       logger.error(marker, "A '{}' állomány mozgatása a '{}' helyre nem sikerült.", transcodedFilePath, lowresPath);\r
+                       throw e;\r
+               }\r
+       }\r
+\r
+}\r
index 9573db74b8660806590e59b5e8cf52b539ea5f91..fba24139e0b3f72fe528097a650eb45949e50157 100644 (file)
@@ -35,8 +35,8 @@ public class FakeStep extends JobStep {
                                jobRuntime.incrementProgress((i + 1) * count);\r
                                Thread.sleep(100);\r
 \r
-                               //                              if (i == 2)\r
-                               //                                      throw new Exception("TESZT");\r
+                               if (i == 2)\r
+                                       throw new Exception("TESZT");\r
                                logger.info("Progress {}", jobRuntime.getProgress());\r
                        }\r
                } catch (Exception e) {\r
index d4fefba09d604025ba306c4a29a4d74bb39e39ed..8d2335687a1c27c58d28a7ac8f1d0465463e047a 100644 (file)
@@ -51,6 +51,8 @@
 \r
        <!-- csak igy jo a list sebessege -->\r
        <custom-attributes org.zkoss.zul.listbox.rod="true" />\r
+       <custom-attributes org.zkoss.zul.listbox.selectOnHighlight.disabled="true" />\r
+       \r
        <!--    <custom-attributes org.zkoss.zul.listbox.initRodSize="50" /> -->\r
        <!--    <custom-attributes org.zkoss.zul.listbox.preloadSize="50" /> -->\r
        <style>\r