git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Thu, 15 Nov 2018 20:35:07 +0000 (20:35 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Thu, 15 Nov 2018 20:35:07 +0000 (20:35 +0000)
client/Maestro/Configuration/configuration.json
client/Maestro/MaestroForm.Metadata.cs
client/OctopusClient/OctopusAPI.cs
client/OctopusClient/Properties/AssemblyInfo.cs
server/hu.user.mediacube.executors.tests/src/hu/user/mediacube/executors/tests/Support.java
server/user.jobengine.executors/src/user/jobengine/server/steps/CopyForArchiveNEXIORecordingsStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/TSMBackupStep.java

index 6abfefc134eacaa019189f3bb9c077570baf52fb..24c4828a5dae57f4a0e479bfc732472df749830a 100644 (file)
@@ -20,7 +20,7 @@
     {\r
       "$type": "OctopusMetadata",\r
       "server": {\r
-        "address": "http://10.10.1.27/services/rest/octopus",\r
+        "address": "http://localhost:8888/services/rest/octopus",\r
         "timeout": 1000\r
       }\r
     },\r
@@ -46,7 +46,7 @@
   "targets": [\r
     {\r
       "label": "Teszt",\r
-      "processor": "FXPTargetProcessor",\r
+      "processor": "FTPTargetProcessor",\r
       "outputFormat": "%ID%-%SOURCENAME%",\r
       "tag": "Betöltés",\r
       "killDateDays": 7,\r
index e2b5613737ff863c86662da5c162c3c13c420efd..c5b8876d62ece01e126e0d546db3ee71f5cb34c2 100644 (file)
@@ -1,17 +1,17 @@
 using Maestro.Metadata;\r
+using MaestroShared.Commons;\r
+using MaestroShared.Configuration;\r
+using MaestroShared.Metadata;\r
+using MaestroShared.Model;\r
+using MaestroShared.Targets;\r
+using MediaCubeClient;\r
 using OctopusClient;\r
-using System.Linq;\r
 using System;\r
-using System.Windows.Forms;\r
-using TrafficClient;\r
 using System.Collections.Generic;\r
 using System.ComponentModel;\r
-using MediaCubeClient;\r
-using MaestroShared.Configuration;\r
-using MaestroShared.Metadata;\r
-using MaestroShared.Targets;\r
-using MaestroShared.Commons;\r
-using MaestroShared.Model;\r
+using System.Linq;\r
+using System.Windows.Forms;\r
+using TrafficClient;\r
 \r
 namespace Maestro {\r
     public partial class MaestroForm {\r
@@ -40,7 +40,7 @@ namespace Maestro {
             get => archiveMetadata;\r
             set {\r
                 archiveMetadata = value;\r
-                btnEditMetadata.ToolTipText = archiveMetadata == null ? "Metaadat" :archiveMetadata.ToString();    \r
+                btnEditMetadata.ToolTipText = archiveMetadata == null ? "Metaadat" : archiveMetadata.ToString();\r
             }\r
         }\r
 \r
@@ -201,6 +201,10 @@ namespace Maestro {
                 case MetadataType.OctopusStory:\r
                 case MetadataType.OctopusPlaceHolder:\r
                     result = GetOctopusMetadata(metadataType);\r
+                    if (result == null) {\r
+                        MsgBox.Error("A metaadatok lekérdezése nem lehetséges!");\r
+                        result = new ArchiveMetadata();\r
+                    }\r
                     result.mediaType = "Hír nyers";\r
                     break;\r
                 case MetadataType.TrafficMaterial:\r
@@ -274,7 +278,7 @@ namespace Maestro {
             result.itemTitle = actualResult.ProgTitle;\r
             result.itemDescription = actualResult.ProgDescription;\r
             result.mediaHouseId = actualResult.EpisodeID;\r
-            result.mediaTitle = !String.IsNullOrEmpty(actualResult.EpisodeTitle) ? actualResult.EpisodeTitle : actualResult.ProgTitle;\r
+            result.mediaTitle = !string.IsNullOrEmpty(actualResult.EpisodeTitle) ? actualResult.EpisodeTitle : actualResult.ProgTitle;\r
             result.mediaDescription = actualResult.EpisodeDescription;\r
             result.ok = actualResult.OK;\r
             return result;\r
index 65c242e5fccdeb2e1619826079a3623183546665..7e850255c6fbba939d47fae5db5ca5f381f82d9b 100644 (file)
@@ -105,8 +105,7 @@ namespace OctopusClient {
                     return null;\r
                 JArray resultObject = JArray.Parse(response.Content);\r
                 result = resultObject.Children().Select(d => ToRundown(d));\r
-            }\r
-            catch (Exception e) {\r
+            } catch (Exception e) {\r
                 OnError(e);\r
             }\r
             return result;\r
@@ -122,8 +121,7 @@ namespace OctopusClient {
                     return null;\r
                 JArray resultObject = JArray.Parse(response.Content);\r
                 result = resultObject.Children().Select(d => ToRundown(d));\r
-            }\r
-            catch (Exception e) {\r
+            } catch (Exception e) {\r
                 OnError(e);\r
             }\r
             return result;\r
@@ -139,8 +137,7 @@ namespace OctopusClient {
                     return null;\r
                 JArray resultObject = JArray.Parse(response.Content);\r
                 result = resultObject.Children().Select(d => ToRundown(d));\r
-            }\r
-            catch (Exception e) {\r
+            } catch (Exception e) {\r
                 OnError(e);\r
             }\r
             return result;\r
@@ -162,8 +159,7 @@ namespace OctopusClient {
                 }).OrderBy(r => {\r
                     return r.ID;\r
                 });\r
-            }\r
-            catch (Exception e) {\r
+            } catch (Exception e) {\r
                 OnError(e);\r
             }\r
             return result;\r
@@ -185,8 +181,7 @@ namespace OctopusClient {
                 }).OrderBy(r => {\r
                     return r.ID;\r
                 });\r
-            }\r
-            catch (Exception e) {\r
+            } catch (Exception e) {\r
                 OnError(e);\r
             }\r
             return result;\r
@@ -206,8 +201,7 @@ namespace OctopusClient {
                     //logger.Debug($"{r}");\r
                     return r;\r
                 });\r
-            }\r
-            catch (Exception e) {\r
+            } catch (Exception e) {\r
                 OnError(e);\r
             }\r
             return result;\r
@@ -229,8 +223,7 @@ namespace OctopusClient {
                 }).OrderBy(r => {\r
                     return r.ID;\r
                 });\r
-            }\r
-            catch (Exception e) {\r
+            } catch (Exception e) {\r
                 OnError(e);\r
             }\r
             return result;\r
@@ -249,8 +242,7 @@ namespace OctopusClient {
                     //logger.Debug($"{r}");\r
                     return r;\r
                 });\r
-            }\r
-            catch (Exception e) {\r
+            } catch (Exception e) {\r
                 OnError(e);\r
             }\r
             return result;\r
@@ -270,8 +262,7 @@ namespace OctopusClient {
                     //logger.Debug($"{r}");\r
                     return r;\r
                 });\r
-            }\r
-            catch (Exception e) {\r
+            } catch (Exception e) {\r
                 OnError(e);\r
             }\r
             return result;\r
@@ -295,8 +286,7 @@ namespace OctopusClient {
                     //logger.Debug($"{r}");\r
                     return r;\r
                 });\r
-            }\r
-            catch (Exception e) {\r
+            } catch (Exception e) {\r
                 OnError(e);\r
             }\r
             return result;\r
@@ -318,20 +308,19 @@ namespace OctopusClient {
                 }).OrderBy(r => {\r
                     return r.ID;\r
                 });\r
-            }\r
-            catch (Exception e) {\r
+            } catch (Exception e) {\r
                 OnError(e);\r
             }\r
             return result;\r
         }\r
 \r
         private bool CheckResponse(IRestResponse<JsonArray> response) {\r
+            if (response.ErrorException != null)\r
+                throw new Exception(response.ErrorMessage);\r
             if (String.IsNullOrEmpty(response.Content))\r
                 return false;\r
             //if (response.ContentLength != 0)\r
             //    return false;\r
-            if (response.ErrorException != null)\r
-                throw new Exception(response.ErrorMessage);\r
             else return true;\r
         }\r
 \r
@@ -383,54 +372,36 @@ namespace OctopusClient {
         }\r
 \r
         private static Story ToRundownStory(JToken d, string id) {\r
-            Story result = ToPartialStory(d);\r
+            Story result = ToStory(d);\r
             result.Position = result.Rundowns.Where(r => id.Equals(r.ID)).FirstOrDefault()?.StoryPosition;\r
             return result;\r
         }\r
 \r
         private static Story ToStoryFolderStory(JToken d, string id) {\r
-            Story result = ToPartialStory(d);\r
+            Story result = ToStory(d);\r
             result.Position = result.StoryFolders.Where(r => id.Equals(r.ID)).FirstOrDefault()?.StoryPosition;\r
             return result;\r
         }\r
 \r
-        private static Story ToPartialStory(JToken d) {\r
-            Story result = new Story {\r
-                ID = d[ID]?.ToString(),\r
-                ParentStoryID = d["parentStoryId"]?.ToString(),\r
-                Name = d["name"]?.ToString() ?? UNNAMED,\r
-                Format = d["format"]?.ToString(),\r
-                Script = d["script"]?.ToString(),\r
-                ScriptContent = d["script_content"]?.ToString(),\r
-                MosObjects = GetMosObjectsFromStory(d)?.ToArray(),\r
-                StoryFolders = GetPartialStoryFolderFromStory(d)?.ToArray(),\r
-                Rundowns = GetPartialRundownFromStory(d)?.ToArray()\r
-            };\r
-\r
-            return result;\r
-        }\r
-\r
         private static Story ToStory(JToken d) {\r
-            Story result = new Story {\r
-                ID = d[ID]?.ToString(),\r
-                ParentStoryID = d["parentStoryId"]?.ToString(),\r
-                Name = d["name"]?.ToString() ?? UNNAMED,\r
-                Format = d["format"]?.ToString(),\r
-                Script = d["script"]?.ToString(),\r
-                ScriptContent = d["script_content"]?.ToString(),\r
-                MosObjects = GetMosObjectsFromStory(d)?.ToArray(),\r
-                StoryFolders = GetStoryFolderFromStory(d)?.ToArray(),\r
-                Rundowns = GetRundownFromStory(d)?.ToArray()\r
-            };\r
+            Story result = new Story();\r
+            result.ID = d[ID]?.ToString();\r
+            result.ParentStoryID = d["parentStoryId"]?.ToString();\r
+            result.Name = d["name"]?.ToString() ?? UNNAMED;\r
+            result.Format = d["format"]?.ToString();\r
+            result.Script = d["script"]?.ToString();\r
+            result.ScriptContent = d["script_content"]?.ToString();\r
+            result.MosObjects = GetMosObjectsFromStory(d)?.ToArray();\r
+            result.StoryFolders = GetStoryFolderFromStory(d)?.ToArray();\r
+            result.Rundowns = GetRundownFromStory(d)?.ToArray();\r
             return result;\r
         }\r
 \r
         private static Rundown ToRundown(JToken d) {\r
-            Rundown result = new Rundown {\r
-                ID = d[ID].ToString(),\r
-                Name = d["name"]?.ToString() ?? UNNAMED,\r
-                Start = DateTime.Parse(d["scheduledStart"]?.ToString()),\r
-            };\r
+            Rundown result = new Rundown();\r
+            result.ID = d[ID].ToString();\r
+            result.Name = d["name"]?.ToString() ?? UNNAMED;\r
+            result.Start = d["scheduledStart"] == null ? DateTime.MinValue : DateTime.Parse(d["scheduledStart"].ToString());\r
             if (result.Start == null)\r
                 result.FormattedStart = "?";\r
             else\r
index ca8e1297edf79532b187cb9c4f80a12e307a70a9..4b934f8dc20fceb7c3945d2ed0d0dd0c68c5a45d 100644 (file)
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
 // You can specify all the values or you can default the Build and Revision Numbers\r
 // by using the '*' as shown below:\r
 // [assembly: AssemblyVersion("1.0.*")]\r
-[assembly: AssemblyVersion("1.0.0.0")]\r
-[assembly: AssemblyFileVersion("1.0.0.0")]\r
+[assembly: AssemblyVersion("1.0.0.1")]\r
+[assembly: AssemblyFileVersion("1.0.0.1")]\r
index 936ba862338f7e4b707bb1ec78efa8b03dba5cb5..bb610fc8a29fb421eb255482b0808ee557063e0a 100644 (file)
@@ -3,13 +3,21 @@ package hu.user.mediacube.executors.tests;
 import static org.junit.Assert.assertNotNull;\r
 import static org.junit.Assert.assertTrue;\r
 \r
+import java.io.File;\r
+import java.nio.file.Files;\r
+import java.nio.file.attribute.BasicFileAttributes;\r
+import java.sql.Timestamp;\r
+\r
 import org.junit.AfterClass;\r
 import org.junit.BeforeClass;\r
 import org.junit.Test;\r
 \r
 import user.commons.logging.LogUtils;\r
 import user.jobengine.db.IItemManager;\r
+import user.jobengine.db.Item;\r
 import user.jobengine.db.ItemManager;\r
+import user.jobengine.db.Media;\r
+import user.jobengine.db.MediaFile;\r
 import user.jobengine.server.steps.PlanAirExtensions;\r
 \r
 public class Support {\r
@@ -49,4 +57,24 @@ public class Support {
                assertNotNull(actual);\r
                assertTrue(actual.length() > 0);\r
        }\r
+\r
+       @Test\r
+       public void test1() throws Exception {\r
+               File sourceFile = new File("c:\\thumbnail - generali\\ShellExtractLoadTest.exe");\r
+               BasicFileAttributes attr = Files.readAttributes(sourceFile.toPath(), BasicFileAttributes.class);\r
+               Timestamp timestamp = new Timestamp(attr.creationTime().toMillis());\r
+               System.out.println(timestamp);\r
+       }\r
+\r
+       @Test\r
+       public void test2() throws Exception {\r
+               Item i = manager.createItem("Generic", "Trigger teszt", "itemdesc1", "itemhouseid1");\r
+               Media m = manager.createMedia("Generic", "mediatitle1", "mediadesc1", "mediahouseid1");\r
+               i.appendMedia(m);\r
+               MediaFile mf = manager.createMediaFile("filename1", manager.getFileType("High-res"), manager.getSystemStore(false), m);\r
+               m.appendMediaFile(mf);\r
+               manager.mergeItemStructure(i);\r
+\r
+               System.out.println("itemid=" + i.getId() + " AND mediaid=" + m.getId() + " AND mediafileid=" + mf.getId());\r
+       }\r
 }\r
index 6bd369184d17cfe049e039757fda5ed6838a3338..1aaa8e1057efe9ce8d68e49a938ea1d849595fbe 100644 (file)
@@ -212,41 +212,41 @@ public class CopyForArchiveNEXIORecordingsStep extends JobStep {
                                        e.getMessage());\r
                        return null;\r
                }\r
-\r
-               if (clipName.startsWith("1900_")) {\r
-                       String clipNameNext = clipName.replace("1900_", "1908_");\r
-                       scheduledStart = getScheduledStart(clipNameNext, recordDate);\r
-                       rundown = octopusAPI.getRundown(scheduledStart);\r
-                       if (rundown == null) {\r
-                               Calendar calendar = CalendarUtils.createCalendar(scheduledStart);\r
-                               int dow = calendar.get(Calendar.DAY_OF_WEEK);\r
-                               if (dow == Calendar.SATURDAY || dow == Calendar.SUNDAY) {\r
-                                       logger.info(systemMarker, "A '{}' anyaghoz nem található tükör '{}' kezdéssel, de a hétvégi kivétel miatt archiválható.", clipName,\r
-                                                       scheduledStart);\r
-                                       return result;\r
-                               } else {\r
-                                       logger.error(systemMarker, "A '{}' anyaghoz nem található tükör '{}' kezdéssel, ezért nem archiválható.", clipName, scheduledStart);\r
-                                       return null;\r
+               /*\r
+                               if (clipName.startsWith("1900_")) {\r
+                                       String clipNameNext = clipName.replace("1900_", "1908_");\r
+                                       scheduledStart = getScheduledStart(clipNameNext, recordDate);\r
+                                       rundown = octopusAPI.getRundown(scheduledStart);\r
+                                       if (rundown == null) {\r
+                                               Calendar calendar = CalendarUtils.createCalendar(scheduledStart);\r
+                                               int dow = calendar.get(Calendar.DAY_OF_WEEK);\r
+                                               if (dow == Calendar.SATURDAY || dow == Calendar.SUNDAY) {\r
+                                                       logger.info(systemMarker, "A '{}' anyaghoz nem található tükör '{}' kezdéssel, de a hétvégi kivétel miatt archiválható.", clipName,\r
+                                                                       scheduledStart);\r
+                                                       return result;\r
+                                               } else {\r
+                                                       logger.error(systemMarker, "A '{}' anyaghoz nem található tükör '{}' kezdéssel, ezért nem archiválható.", clipName, scheduledStart);\r
+                                                       return null;\r
+                                               }\r
+                                       }\r
+               \r
+                                       RundownArchive item2 = null;\r
+               \r
+                                       try {\r
+                                               item2 = processRundow(rundown, clipName, duration);\r
+                                       } catch (Exception e) {\r
+                                               logger.catching(e);\r
+                                               logger.error(systemMarker, "A '{}' anyag metaadatainak transzformálása sikertelen, ezért az nem archiválható. A rendszer hibaüzenete: {}",\r
+                                                               e.getMessage());\r
+                                               return null;\r
+                                       }\r
+               \r
+                                       result.setItemTitle(result.getItemTitle() + " + NAPIAKT");\r
+                                       StoryArchive storyArchive = result.getStoryArchives().get(0);\r
+                                       StoryArchive storyArchive2 = item2.getStoryArchives().get(0);\r
+                                       storyArchive.setMediaDesc(storyArchive.getMediaDesc() + "\r\n\r\n****** NAPIAKT ******\r\n\r\n" + storyArchive2.getMediaDesc());\r
                                }\r
-                       }\r
-\r
-                       RundownArchive item2 = null;\r
-\r
-                       try {\r
-                               item2 = processRundow(rundown, clipName, duration);\r
-                       } catch (Exception e) {\r
-                               logger.catching(e);\r
-                               logger.error(systemMarker, "A '{}' anyag metaadatainak transzformálása sikertelen, ezért az nem archiválható. A rendszer hibaüzenete: {}",\r
-                                               e.getMessage());\r
-                               return null;\r
-                       }\r
-\r
-                       result.setItemTitle(result.getItemTitle() + " + NAPIAKT");\r
-                       StoryArchive storyArchive = result.getStoryArchives().get(0);\r
-                       StoryArchive storyArchive2 = item2.getStoryArchives().get(0);\r
-                       storyArchive.setMediaDesc(storyArchive.getMediaDesc() + "\r\n\r\n****** NAPIAKT ******\r\n\r\n" + storyArchive2.getMediaDesc());\r
-               }\r
-\r
+               */\r
                return result;\r
        }\r
 \r
index a891452bf2063b108c4e4d3cd94706f3a200ad71..71ad952e1559c5067a2c31351dbf8d24eed04061 100644 (file)
@@ -2,6 +2,8 @@ package user.jobengine.server.steps;
 \r
 import java.io.File;\r
 import java.io.IOException;\r
+import java.nio.file.Files;\r
+import java.nio.file.attribute.BasicFileAttributes;\r
 import java.sql.Timestamp;\r
 import java.util.Date;\r
 import java.util.List;\r
@@ -92,7 +94,7 @@ public class TSMBackupStep extends JobStep {
                                                        "Az '{}' állomány .catched jelző állománya nem törölhető. Az újabb archiválási kísérlethez annak kézi eltávolítása szükséges!",\r
                                                        sourceMediaFile.getName());\r
                        } else {\r
-                               saveMetadata(mediaCubeMedia, sourceFileName, existingMediaId);\r
+                               saveMetadata(mediaCubeMedia, sourceMediaFile, existingMediaId);\r
                                logger.info(marker, "Az '{}' archiválása sikeres.", sourceFileName);\r
                                if (killDateDays > 0)\r
                                        EscortFiles.createUNCKillDate(sourceMediaFile.getParent(), sourceFileName, killDateDays, marker);\r
@@ -111,11 +113,11 @@ public class TSMBackupStep extends JobStep {
                return null;\r
        }\r
 \r
-       private void saveMetadata(Media mediaCubeMedia, String sourceFileName, long existingMediaId) {\r
+       private void saveMetadata(Media mediaCubeMedia, File sourceFile, long existingMediaId) {\r
 \r
                if (existingMediaId == 0) {\r
-                       MediaFile mediaFile = manager.createMediaFile(sourceFileName, fileType, tsmStore, mediaCubeMedia);\r
-                       mediaFile.setHouseId(sourceFileName);\r
+                       MediaFile mediaFile = manager.createMediaFile(sourceFile.getName(), fileType, tsmStore, mediaCubeMedia);\r
+                       mediaFile.setHouseId(sourceFile.getName());\r
                        mediaFile.add();\r
                } else {\r
                        Media existingMedia = manager.getMedia(existingMediaId);\r
@@ -130,7 +132,15 @@ public class TSMBackupStep extends JobStep {
                        }\r
                }\r
                mediaCubeMedia.setPersister(manager);\r
-               mediaCubeMedia.setArchived(new Timestamp(new Date().getTime()));\r
+\r
+               try {\r
+                       BasicFileAttributes attr = Files.readAttributes(sourceFile.toPath(), BasicFileAttributes.class);\r
+                       mediaCubeMedia.setArchived(new Timestamp(attr.creationTime().toMillis()));\r
+               } catch (IOException e) {\r
+                       logger.catching(e);\r
+                       mediaCubeMedia.setArchived(new Timestamp(new Date().getTime()));\r
+               }\r
+\r
                mediaCubeMedia.modify();\r
        }\r
 \r