{\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
"targets": [\r
{\r
"label": "Teszt",\r
- "processor": "FXPTargetProcessor",\r
+ "processor": "FTPTargetProcessor",\r
"outputFormat": "%ID%-%SOURCENAME%",\r
"tag": "Betöltés",\r
"killDateDays": 7,\r
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
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
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
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
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
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
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
}).OrderBy(r => {\r
return r.ID;\r
});\r
- }\r
- catch (Exception e) {\r
+ } catch (Exception e) {\r
OnError(e);\r
}\r
return result;\r
}).OrderBy(r => {\r
return r.ID;\r
});\r
- }\r
- catch (Exception e) {\r
+ } catch (Exception e) {\r
OnError(e);\r
}\r
return result;\r
//logger.Debug($"{r}");\r
return r;\r
});\r
- }\r
- catch (Exception e) {\r
+ } catch (Exception e) {\r
OnError(e);\r
}\r
return result;\r
}).OrderBy(r => {\r
return r.ID;\r
});\r
- }\r
- catch (Exception e) {\r
+ } catch (Exception e) {\r
OnError(e);\r
}\r
return result;\r
//logger.Debug($"{r}");\r
return r;\r
});\r
- }\r
- catch (Exception e) {\r
+ } catch (Exception e) {\r
OnError(e);\r
}\r
return result;\r
//logger.Debug($"{r}");\r
return r;\r
});\r
- }\r
- catch (Exception e) {\r
+ } catch (Exception e) {\r
OnError(e);\r
}\r
return result;\r
//logger.Debug($"{r}");\r
return r;\r
});\r
- }\r
- catch (Exception e) {\r
+ } catch (Exception e) {\r
OnError(e);\r
}\r
return result;\r
}).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
}\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
// 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
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
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
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
\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
"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
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
}\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