Integer nexioPort = 2098;\r
String nexioUserName = "administrator";\r
String nexioPassword = "system";\r
- Object[] inputs = { mediaCubeMedia, targetPath, targetNamePattern, successRecipient, killDateDays, localRetrievePath, globalRetrievePath,\r
- useNexioTarget, nexioAgency, nexioPort, nexioUserName, nexioPassword };\r
+ Object[] inputs = { mediaCubeMedia, targetPath, targetNamePattern, successRecipient, killDateDays,\r
+ localRetrievePath, globalRetrievePath, useNexioTarget, nexioAgency, nexioPort, nexioUserName,\r
+ nexioPassword };\r
// Object[] inputs = { null, null, null, null, 0, null, null, false, null, 0, null, null };\r
sut.run(null, null, inputs);\r
}\r
\r
@Test\r
public void test9() throws Exception {\r
- List<Path> files = Arrays.asList(Paths.get("/opt/20200101100000.xxx.json"), Paths.get("/opt/xxx.json"), Paths.get("/opt/yyy.json"),\r
- Paths.get("/opt/20200202200000.xxx.json"));\r
+ List<Path> files = Arrays.asList(Paths.get("/opt/20200101100000.xxx.json"), Paths.get("/opt/xxx.json"),\r
+ Paths.get("/opt/yyy.json"), Paths.get("/opt/20200202200000.xxx.json"));\r
\r
files.sort((a, b) -> {\r
return a.compareTo(b);\r
@Test\r
public void test99() throws Exception {\r
System.setProperty("jobengine.ffmpeg.location", "/Programs/ffmpeg/bin/ffmpeg.exe");\r
- System.setProperty("java.library.path", System.getProperty("java.library.path") + ";/_workspace/USER/MediaCube/server/-dependencies/libs");\r
+ System.setProperty("java.library.path",\r
+ System.getProperty("java.library.path") + ";/_workspace/USER/MediaCube/server/-dependencies/libs");\r
Path input = Paths.get("/_XDCAM/Sub/0410_1006_DEMO_mariagyud_mixS01.MXF");\r
Path output = Paths.get("/_XDCAM/out");\r
\r
public void test992() throws Exception {\r
Timestamp nexio = Timestamp.from(Instant.now().minus(2, ChronoUnit.HOURS));\r
LocalDateTime ldt = LocalDateTime.ofInstant(Instant.now(), ZoneOffset.systemDefault());\r
- LocalDateTime ldn = LocalDateTime.ofInstant(Instant.now().minus(2, ChronoUnit.HOURS), ZoneOffset.systemDefault());\r
+ LocalDateTime ldn = LocalDateTime.ofInstant(Instant.now().minus(2, ChronoUnit.HOURS),\r
+ ZoneOffset.systemDefault());\r
long modifiedHours = Duration.between(ldt, ldn).toHours();\r
System.out.println(modifiedHours);\r
System.out.println(DateTimeFormatter.ISO_LOCAL_DATE_TIME.format(ldt));\r
}\r
}\r
System.out.println(String.format("TSM hiány %d, polcon van %d, omben van %d", fCount, pCount, oCount));\r
- System.out.println(String.format("Egyéb %d, Reklám %d, Promó %d, Anyag %d, Adásban volt %d", other, ad, promo, material, inrd));\r
+ System.out.println(String.format("Egyéb %d, Reklám %d, Promó %d, Anyag %d, Adásban volt %d", other, ad, promo,\r
+ material, inrd));\r
// Files.write(Paths.get("/opt/AMC/mcmissing.txt"), mcmissing);\r
}\r
\r
errorCount++;\r
}\r
float archivePercent = archivedCount * 100 / omCount;\r
- System.out.println(String.format("Archiválandó %d, archivált %d, nem archivált %d, százalék %f", omCount, archivedCount, errorCount, archivePercent));\r
+ System.out.println(String.format("Archiválandó %d, archivált %d, nem archivált %d, százalék %f", omCount,\r
+ archivedCount, errorCount, archivePercent));\r
// Files.write(Paths.get("/opt/AMC/mcmissing.txt"), mcmissing);\r
}\r
\r
}\r
\r
}\r
- String excludedReport = String.format("Kihagyva %d db, összméret %s", omExcludeCount, readableFileSize(omExcludeSizeSum));\r
+ String excludedReport = String.format("Kihagyva %d db, összméret %s", omExcludeCount,\r
+ readableFileSize(omExcludeSizeSum));\r
System.out.println(excludedReport);\r
\r
Files.write(Paths.get("/opt/mv-excluded-parlament-byid.txt"), out);\r
}\r
\r
}\r
- String excludedReport = String.format("%d db, összméret %s", omExcludeCount, readableFileSize(omExcludeSizeSum));\r
+ String excludedReport = String.format("%d db, összméret %s", omExcludeCount,\r
+ readableFileSize(omExcludeSizeSum));\r
System.out.println(excludedReport);\r
\r
Files.write(Paths.get("/opt/mv-excluded-parlament-name.txt"), out);\r
continue;\r
}\r
}\r
- System.out.println("All (no PTV) " + omcount + " missing " + count + " completed " + ((count * 100) / omcount) + "%");\r
+ System.out.println(\r
+ "All (no PTV) " + omcount + " missing " + count + " completed " + ((count * 100) / omcount) + "%");\r
// String excludedReport = String.format("Kihagyva %d db, összméret %s", omExcludeCount, readableFileSize(omExcludeSizeSum));\r
// System.out.println(excludedReport);\r
//\r
return id.split(" / ")[0];\r
else\r
return id;\r
- })\r
- .forEach(id1 -> {\r
- //System.out.println(id1.toString());\r
- mcjob.add(id1.toString());\r
+ }).forEach(id1 -> {\r
+ //System.out.println(id1.toString());\r
+ mcjob.add(id1.toString());\r
\r
- });\r
+ });\r
\r
// List<String> mc = Files.readAllLines(Paths.get("/opt/AMC/mc-all-modified.txt"));\r
Map<String, String> tsmmap = new HashMap<>();\r
\r
vchecked++;\r
\r
- if (!df.format(mcdate).substring(0, 10).equals(df.format(tsmdate).substring(0, 10)) && tsmdate.before(mcdate)) {\r
- System.out.println("Old version in TSM " + id + " mc " + df.format(mcdate) + " tsm " + df.format(tsmdate));\r
+ if (!df.format(mcdate).substring(0, 10).equals(df.format(tsmdate).substring(0, 10))\r
+ && tsmdate.before(mcdate)) {\r
+ System.out.println(\r
+ "Old version in TSM " + id + " mc " + df.format(mcdate) + " tsm " + df.format(tsmdate));\r
vreport.add(id);\r
vmissings++;\r
}\r
}\r
}\r
\r
- System.out.println(tsm.size() + " " + mc.size() + " " + missings + " vchecked" + vchecked + " vmissing" + vmissings);\r
+ System.out.println(\r
+ tsm.size() + " " + mc.size() + " " + missings + " vchecked" + vchecked + " vmissing" + vmissings);\r
Files.write(Paths.get("/opt/AMC/mreport.txt"), mreport);\r
Files.write(Paths.get("/opt/AMC/vreport.txt"), vreport);\r
}\r
GroovyClassLoader cl = new GroovyClassLoader(this.getClass().getClassLoader()) {\r
\r
@Override\r
- public Class loadClass(String name, boolean lookupScriptFiles, boolean preferClassOverScript, boolean resolve)\r
- throws ClassNotFoundException, CompilationFailedException {\r
+ public Class loadClass(String name, boolean lookupScriptFiles, boolean preferClassOverScript,\r
+ boolean resolve) throws ClassNotFoundException, CompilationFailedException {\r
return super.loadClass(name, lookupScriptFiles, preferClassOverScript, resolve);\r
}\r
\r
public void test99997() throws Exception {\r
\r
System.setProperty("jna.library.path", "/users/elgekko");\r
- List<String> files = Arrays.asList("c:\\opt\\AMC\\2021\\ISSUES\\#203\\IFL000000071_43.mxf", "c:\\opt\\AMC\\2021\\ISSUES\\#203\\MX_12290041.mxf",\r
- "c:\\opt\\AMC\\2021\\ISSUES\\#203\\DK_20344100_02_high_16_9.mxf", "c:\\opt\\AMC\\2021\\ISSUES\\#203\\IPR000011027_169.mxf");\r
+ List<String> files = Arrays.asList("c:\\opt\\AMC\\2021\\ISSUES\\#203\\IFL000000071_43.mxf",\r
+ "c:\\opt\\AMC\\2021\\ISSUES\\#203\\MX_12290041.mxf",\r
+ "c:\\opt\\AMC\\2021\\ISSUES\\#203\\DK_20344100_02_high_16_9.mxf",\r
+ "c:\\opt\\AMC\\2021\\ISSUES\\#203\\IPR000011027_169.mxf");\r
for (String file : files) {\r
try (user.commons.mediaarea.MediaInfo mi = new user.commons.mediaarea.MediaInfo(file)) {\r
//Display aspect ratio\r
});\r
}\r
\r
- \r
@Test\r
public void test999996() throws Exception {\r
- System.out.println("valami.txt".substring(0, "valami.txt".lastIndexOf(".")));\r
+ Path path = Paths.get("/opt/MV/file_list_original.txt");\r
+ List<String> lines = FileUtils.readLines(path.toFile());\r
+ Set<String> contents = new LinkedHashSet<>();\r
+\r
+ String lastDir = null;\r
+ for (String line : lines) {\r
+ line = line.trim();\r
+ if (line.startsWith("Directory of")) {\r
+ lastDir = line;\r
+ lastDir = lastDir.replace("Directory of", "");\r
+ lastDir = lastDir.replace("X:", "");\r
+ lastDir = lastDir.replace("\\", "/");\r
+ lastDir = lastDir.trim();\r
+ // if (!lastDir.endsWith(".STATUS"))\r
+ // System.out.println(">> " + lastDir);\r
+ }\r
+\r
+ if (lastDir != null && lastDir.endsWith(".STATUS"))\r
+ continue;\r
+\r
+ if (line.startsWith("2") && line.length() > 39) {\r
+ String file = line.substring(39).trim();\r
+\r
+ if (file.equals(".") || file.equals(".."))\r
+ continue;\r
+\r
+ String len = line.substring(21, 39).trim();\r
+ if (len.length() != 0)\r
+ System.out.println("/mnt/POLC/FINISHED_SHOWS" + lastDir + "/" + file + " : " + len);\r
+ }\r
+\r
+ }\r
}\r
}\r
import java.util.Arrays;\r
import java.util.Collections;\r
import java.util.Date;\r
+import java.util.LinkedHashSet;\r
import java.util.List;\r
+import java.util.Set;\r
\r
+import org.apache.commons.io.FileUtils;\r
import org.apache.commons.io.FilenameUtils;\r
import org.apache.logging.log4j.LogManager;\r
import org.apache.logging.log4j.Logger;\r
\r
private List<String> skipPathNames = Arrays.asList("!ARCHIVALAS_ALATT", EscortFiles.STATUSFOLDER,\r
EscortFiles.CONFLICTFOLDER);\r
+ private Set<String> includeList;\r
\r
private boolean canReadMediaInfo(Path mediaFilePath) {\r
boolean result = false;\r
return false;\r
\r
String itemHouseId = archiveItem.getItemHouseId() == null ? "" : archiveItem.getItemHouseId();\r
- if (!itemHouseId.equals(item.getHouseId()))\r
+ if (!itemHouseId.equals(item.getHouseId())) {\r
+ logger.error(getSessionMarker(), "ItemHouseId");\r
return false;\r
+ }\r
\r
String itemTitle = archiveItem.getItemTitle() == null ? "" : archiveItem.getItemTitle();\r
- if (!itemTitle.equals(item.getTitle()))\r
+ if (!itemTitle.equals(item.getTitle())) {\r
+ logger.error(getSessionMarker(), "ItemTitle");\r
return false;\r
-\r
+ }\r
String mediaHouseId = archiveItem.getMediaHouseId() == null ? "" : archiveItem.getMediaHouseId();\r
- if (!mediaHouseId.equals(media.getHouseId()))\r
+ if (!mediaHouseId.equals(media.getHouseId())) {\r
+ logger.error(getSessionMarker(), "MediaHouseId");\r
return false;\r
-\r
+ }\r
String mediaTitle = archiveItem.getMediaTitle() == null ? "" : archiveItem.getMediaTitle();\r
- if (!mediaTitle.equals(media.getTitle()))\r
+ if (!mediaTitle.equals(media.getTitle())) {\r
+ logger.error(getSessionMarker(), "MediaTitle");\r
return false;\r
+ }\r
\r
String mediaDescription = archiveItem.getMediaDescription() == null ? "" : archiveItem.getMediaDescription();\r
- if (!mediaDescription.equals(media.getDescription()))\r
+ String storedMediaDescription = media.getDescription() == null ? "" : media.getDescription();\r
+ if (!mediaDescription.equals(storedMediaDescription)) {\r
+ logger.error(getSessionMarker(), "MediaDescription");\r
return false;\r
+ }\r
\r
return true;\r
}\r
@StepEntry\r
public Object[] execute(String sourcePath) throws Exception {\r
logger.info(getSessionMarker(), "Starting in {}", sourcePath);\r
- logger.info(getSessionMarker(), "{};{};{};{};{};{};{};{};{};{};{};{};{};", "Napló időbélyeg", "Törlés sikeres",\r
- "Neve", "Elérése", "Mérete", "Létrehozva", "Módosítva", "Catched", "Killdate", "Archivált (MC)",\r
- "Archiválva (MC)", "Archivált (TSM)", "Archiválva (TSM)", "Méret (TSM)", "Metaadat egyezés");\r
+ logger.info(getSessionMarker(), "{};{};{};{};{};{};{};{};{};{};{};{};{};{};{};{};{};{};", "Napló időbélyeg",\r
+ "Neve", "Elérése", "Mérete", "Létrehozva", "Módosítva", "Archiválva (MC)", "Archiválva (TSM)",\r
+ "Méret (TSM)", ".catched", ".killdate", ".nomd", "Archivált (MC)", "Archivált (TSM)",\r
+ "Metaadat egyezés", "Méret egyezés", "Törölhető", "Kezelendő");\r
\r
try {\r
- if (getJobRuntime().forkPrepare()) {\r
- Files.walkFileTree(Paths.get(sourcePath), this);\r
- }\r
+ String location = "/opt/test-mediacube/file_list_original.txt";\r
+ includeList = loadIncludeList(location);\r
+ Files.walkFileTree(Paths.get(sourcePath), this);\r
} catch (Exception e) {\r
logger.error(getSessionMarker(), "Az '{}' mappa elérése sikertelen. A rendszer hibaüzenete: {}", sourcePath,\r
e.getMessage());\r
- } finally {\r
- getJobRuntime().forkWaitComplete();\r
}\r
return null;\r
}\r
Path dirName = dir.getFileName();\r
\r
if (skipPathNames.contains(dirName.toString())) {\r
- logger.info(getSessionMarker(), "PreVisit skip {}", dir);\r
+ //logger.info(getSessionMarker(), "PreVisit skip {}", dir);\r
return FileVisitResult.SKIP_SUBTREE;\r
- } else\r
- logger.info(getSessionMarker(), "PreVisit {}", dir);\r
+ } //else\r
+ //logger.info(getSessionMarker(), "PreVisit {}", dir);\r
\r
return FileVisitResult.CONTINUE;\r
}\r
\r
private boolean processPathItem(Path mediaPath) throws Exception {\r
+ if (getJobRuntime().isWaitingCancel()) {\r
+ cancel();\r
+ return false;\r
+ }\r
+\r
BasicFileAttributes attr = Files.readAttributes(mediaPath, BasicFileAttributes.class);\r
File mediaFSFile = mediaPath.toFile();\r
+ String fileName = mediaPath.getFileName().toString();\r
\r
if (mediaFSFile.isDirectory())\r
- return false;\r
+ return true;\r
+\r
+ if (fileName.startsWith(".") || fileName.endsWith(".nomd"))\r
+ return true;\r
\r
- String fileName = mediaPath.getFileName().toString();\r
Path nomdFile = Paths.get(mediaPath.toString() + ".nomd");\r
ArchiveItem archiveItem = createArchiveItem(mediaPath);\r
List<Path> killDateFiles = getKillDateFiles(mediaPath);\r
boolean mcArchived = mediaFile != null;\r
boolean metadataEquals = false;\r
boolean tsmArchived = false;\r
+ boolean sizeEquals = false;\r
Date mcArchivedDate = null;\r
long tsmSize = 0;\r
Date tsmBackupDate = null;\r
+ boolean includeContains = includeList.contains(mediaPath.toString());\r
\r
if (mcArchived) {\r
//metadata\r
if (tsmArchived) {\r
tsmSize = tsmFile.getSize();\r
tsmBackupDate = getTSMBackupDate(tsmFileName);\r
+ sizeEquals = tsmSize == size;\r
}\r
}\r
\r
- boolean canDelete = !noMDExists && catchedExists && killdateExists && mcArchived && tsmArchived;\r
+ boolean canDelete = !noMDExists && catchedExists && killdateExists && mcArchived && tsmArchived\r
+ && metadataEquals;\r
Date now = new Date(System.currentTimeMillis());\r
- logger.info(getSessionMarker(), "{};{};{};{};{};{};{};{};{};{};{};{};{};", df.format(now), YN(canDelete),\r
- fileName, mediaPath.getParent(), size, df.format(createDate), df.format(lastModifiedDate),\r
- YN(catchedExists), YN(killdateExists), YN(mcArchived), df.format(mcArchivedDate), YN(tsmArchived),\r
- df.format(tsmBackupDate), tsmSize, YN(metadataEquals));\r
+ logger.info(getSessionMarker(), "{};{};{};{};{};{};{};{};{};{};{};{};{};{};{};{};{};{};", D(now), fileName,\r
+ mediaPath.getParent(), size, D(createDate), D(lastModifiedDate), D(mcArchivedDate), D(tsmBackupDate),\r
+ tsmSize, YN(catchedExists), YN(killdateExists), YN(noMDExists), YN(mcArchived), YN(tsmArchived),\r
+ YN(metadataEquals), YN(sizeEquals), YN(canDelete), YN(includeContains));\r
\r
return true;\r
}\r
return value ? 'Y' : 'N';\r
}\r
\r
+ private String D(Date value) {\r
+ return value == null ? "" : df.format(value);\r
+ }\r
+\r
@Override\r
public FileVisitResult visitFile(Path filePath, BasicFileAttributes paramBasicFileAttributes) throws IOException {\r
- // logger.info(getSessionMarker(), "Will checked {}", filePath);\r
+ //logger.info(getSessionMarker(), "Will checked {}", filePath);\r
try {\r
- processPathItem(filePath);\r
+ if (!processPathItem(filePath))\r
+ return FileVisitResult.TERMINATE;\r
} catch (Exception e) {\r
logger.catching(e);\r
}\r
return result;\r
}\r
\r
+ private Set<String> loadIncludeList(String location) throws IOException {\r
+ Set<String> result = new LinkedHashSet<>();\r
+\r
+ Path path = Paths.get(location);\r
+ List<String> lines = FileUtils.readLines(path.toFile());\r
+\r
+ String lastDir = null;\r
+ for (String line : lines) {\r
+ line = line.trim();\r
+ if (line.startsWith("Directory of")) {\r
+ lastDir = line;\r
+ lastDir = lastDir.replace("Directory of", "");\r
+ lastDir = lastDir.replace("X:", "");\r
+ lastDir = lastDir.replace("\\", "/");\r
+ lastDir = lastDir.trim();\r
+ // if (!lastDir.endsWith(".STATUS"))\r
+ // System.out.println(">> " + lastDir);\r
+ }\r
+\r
+ if (lastDir != null && lastDir.endsWith(".STATUS"))\r
+ continue;\r
+\r
+ if (line.startsWith("2") && line.length() > 39) {\r
+ String file = line.substring(39).trim();\r
+\r
+ if (file.equals(".") || file.equals(".."))\r
+ continue;\r
+\r
+ String len = line.substring(21, 39).trim();\r
+ if (len.length() != 0) {\r
+ String fullpath = "/mnt/POLC/FINISHED_SHOWS" + lastDir + "/" + file;\r
+ //System.out.println("/mnt/POLC/FINISHED_SHOWS" + lastDir + "/" + file + " : " + len);\r
+ result.add(fullpath);\r
+ }\r
+ }\r
+\r
+ }\r
+\r
+ return result;\r
+ }\r
+\r
}\r
-version=2.7.5\r
+version=2.7.6\r
+#2.7.6 TSM Metadata provider, javitott GroovyClassLoader\r
#2.7.5 ArchiveItem disableProxy, MediaFile disableProxy\r
footer=2016-2021 © Copyright User Rendszerház Kft.\r
\r
ServiceReference<?>[] serviceReferences = bundleContext.getServiceReferences((String) null, null);\r
for (ServiceReference<?> r : serviceReferences) {\r
Object s = bundleContext.getService(r);\r
- System.err.println("Found " + s);\r
}\r
} catch (InvalidSyntaxException e) {\r
e.printStackTrace();\r