marker = jobRuntime.getMarker();\r
List<ArchiveItem> archiveList = new LinkedList<ArchiveItem>();\r
DirectoryStream<Path> directoryStream = null;\r
- int counter = 0;\r
try {\r
DirectoryStream<Path> stream = Files.newDirectoryStream(Paths.get(sourcePath));\r
for (Path p : stream) {\r
- boolean processed = processPathItem(p, archiveList, limit);\r
- if (processed) {\r
- counter++;\r
- if (limit > 0 && counter == limit) {\r
- logger.info(marker, "A folyamat elérte a beállított {} limitet.", limit);\r
- break;\r
- }\r
- }\r
+ boolean processed = processPathItem(p, archiveList);\r
}\r
} catch (Exception e) {\r
logger.catching(e);\r
}\r
}\r
}\r
- logger.info(marker, "Az archiváló folyamat {} új anyagot érzékelt.", archiveList == null ? 0 : archiveList.size());\r
+\r
+ if (limit > 0) {\r
+ int correctedLimit = limit > archiveList.size() ? archiveList.size() : limit;\r
+ archiveList = archiveList.subList(0, correctedLimit - 1);\r
+ logger.info(marker, "A folyamat elérte a beállított {} limitet.", limit);\r
+ } else\r
+ logger.info(marker, "Az archiváló folyamat {} új anyagot érzékelt.", archiveList == null ? 0 : archiveList.size());\r
+\r
+ for (ArchiveItem archiveItem : archiveList) {\r
+ createCatchedFile(Paths.get(archiveItem.getCatchedFile()));\r
+ }\r
\r
return new Object[] { archiveList };\r
}\r
return result;\r
}\r
\r
- private boolean processPathItem(Path mediaFilePath, final List<ArchiveItem> archiveList, int limit) {\r
+ private boolean processPathItem(Path mediaFilePath, final List<ArchiveItem> archiveList) {\r
File mediaFile = mediaFilePath.toFile();\r
\r
// if (mediaFile.length() > 0)\r
archiveList.add(archiveItem);\r
else\r
archiveList.add(0, archiveItem);\r
- createCatchedFile(catchedFilePath);\r
+ //createCatchedFile(catchedFilePath);\r
return true;\r
}\r
}\r
\r
public static long getExistingRundownMedia(IItemManager manager, String houseid) {\r
final long[] result = { 0 };\r
- final String idToCheck = houseid.substring(0, houseid.lastIndexOf("-"));\r
- MetadataType metadataType = MetadataTypeDetector.GuessMetadataType(idToCheck);\r
- if (metadataType == MetadataType.OctopusPlaceholder) {\r
- StringBuilder query = new StringBuilder();\r
- query.append("select mediaid, mediafilehouseid, filename");\r
- query.append(" ");\r
- query.append(String.format("from vw_rundown_items where mediafilehouseid like '%s%%'", idToCheck));\r
- query.append(" ");\r
- query.append("order by filename, mediaid");\r
- IResultSetConsumer consumer = rs -> {\r
- String fileName = rs.getString("filename");\r
- if (idToCheck.equals(fileName)) {\r
- result[0] = rs.getLong("mediaid");\r
- return false;\r
- } else\r
- return true;\r
- };\r
- manager.executeQuery(query.toString(), consumer, null);\r
+ int indexOf = houseid.lastIndexOf("-");\r
+ if (indexOf > 0) {\r
+ final String idToCheck = houseid.substring(0, houseid.lastIndexOf("-"));\r
+ MetadataType metadataType = MetadataTypeDetector.GuessMetadataType(idToCheck);\r
+ if (metadataType == MetadataType.OctopusPlaceholder) {\r
+ StringBuilder query = new StringBuilder();\r
+ query.append("select mediaid, mediafilehouseid, filename");\r
+ query.append(" ");\r
+ query.append(String.format("from vw_rundown_items where mediafilehouseid like '%s%%'", idToCheck));\r
+ query.append(" ");\r
+ query.append("order by filename, mediaid");\r
+ IResultSetConsumer consumer = rs -> {\r
+ String fileName = rs.getString("filename");\r
+ if (idToCheck.equals(fileName)) {\r
+ result[0] = rs.getLong("mediaid");\r
+ return false;\r
+ } else\r
+ return true;\r
+ };\r
+ manager.executeQuery(query.toString(), consumer, null);\r
+ }\r
}\r
\r
return result[0];\r