git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C31327
import java.io.OutputStream;\r
import java.net.InetAddress;\r
import java.net.URI;\r
+import java.util.ArrayList;\r
import java.util.Calendar;\r
import java.util.Date;\r
import java.util.List;\r
private int nexioKillDateDays;\r
private String nexioAgency;\r
private Marker systemMarker;\r
+ private List<String> transferredFileNames = null;\r
\r
private int check(int value, String name) {\r
if (value == 0) {\r
String fileName = String.format("%s-%s", origFileName, rundownArchive.getItemHouseId());\r
String videoFileName = fileName + MXFEXT;\r
\r
+ if (transferredFileNames == null)\r
+ transferredFileNames = new ArrayList<>();\r
+\r
//A mar letezo mozikat nem archivaljuk le ujra, csak a metaadatot\r
- long existingMediaId = ItemManagerExtensions.getExistingRundownMedia(manager, origFileName);\r
- if (existingMediaId == 0)\r
- transferFile(origFileName + MXFEXT, videoFileName);\r
- else\r
+ long existingMediaId = 0;\r
+ if (transferredFileNames.contains(origFileName)) {\r
+ logger.info(systemMarker, "A '{}' file archiválásra felkészítése egy másik story kapcsán már megtörtént, ezért csak metaadat archiválás szükséges.",\r
+ origFileName);\r
transferChunk(videoFileName);\r
+ } else {\r
+ existingMediaId = ItemManagerExtensions.getExistingRundownMedia(manager, origFileName);\r
+ if (existingMediaId == 0) {\r
+ transferredFileNames.add(origFileName);\r
+ transferFile(origFileName + MXFEXT, videoFileName);\r
+ } else {\r
+ logger.info(systemMarker, "A '{}' file archiválása már megtörtént, ezért csak metaadat archiválás szükséges.", origFileName);\r
+ transferChunk(videoFileName);\r
+ }\r
+ }\r
\r
BasicDBObject metadata = createMetadata(rundownArchive, storyArchive, fileArchive, existingMediaId);\r
transferMetadata(videoFileName, metadata);\r
\r
//A dupla ellenorzes a napon beluli ismetlesek miatt kell\r
long existingMediaId = archiveItem.getExistingMediaId();\r
+ if (sourceMediaFile.length() == 0 && existingMediaId == 0) {\r
+ existingMediaId = ItemManagerExtensions.getExistingRundownMedia(manager, sourceFileName.replace(MXFEXT, ""));\r
+ if (existingMediaId == 0)\r
+ existingMediaId = -1;\r
+ }\r
+\r
if (existingMediaId == 0)\r
existingMediaId = ItemManagerExtensions.getExistingRundownMedia(manager, sourceFileName.replace(MXFEXT, ""));\r
\r
}\r
});\r
RemoteFile remoteFile = sourceUri.transferFrom(targetUri, sourceFileName, sourceFileName);\r
- } else {\r
+ } else\r
logger.info(marker, "Az '{}' TSM mentése nem szükséges, mert már megtalálható az archívumban.", sourceFileName);\r
+\r
+ //Fel kell szabadítani, hogy a kovetkezo archivalaskor is nekifusson\r
+ if (existingMediaId == -1) {\r
+ logger.info(marker, "Az '{}' mentése jelenleg nem lehetséges, mert a szükséges metaadat még nem található meg az archívumban.", sourceFileName);\r
+ if (!archiveItem.removeCatchedFile())\r
+ logger.error(marker,\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
+ logger.info(marker, "Az '{}' archiválása sikeres.", sourceFileName);\r
+ if (killDateDays > 0)\r
+ EscortFiles.createUNCKillDate(sourceMediaFile.getParent(), sourceFileName, killDateDays, marker);\r
}\r
- saveMetadata(mediaCubeMedia, sourceFileName, existingMediaId);\r
- logger.info(marker, "Az '{}' archiválása sikeres.", sourceFileName);\r
\r
- if (killDateDays > 0)\r
- EscortFiles.createUNCKillDate(sourceMediaFile.getParent(), sourceFileName, killDateDays, marker);\r
} catch (Exception e) {\r
logger.catching(e);\r
Message m = new ParameterizedMessage("Az '{}' állomány archiválása sikertelen. A rendszer hibaüzenete: {}", details, e.getMessage());\r
File sourceMediaFile = new File(archiveItem.getMediaFile());\r
sourceFileName = sourceMediaFile.getName();\r
\r
- //Nincs mit transzkódolni, a TSMBackupStep csinal masolatot a mediafileokrol\r
+ //Nincs mit transzkodolni, a TSMBackupStep csinal masolatot a mediafileokrol\r
//A dupla ellenorzes a napon beluli ismetlesek miatt kell\r
long existingMediaId = archiveItem.getExistingMediaId();\r
if (existingMediaId == 0)\r
existingMediaId = ItemManagerExtensions.getExistingRundownMedia(manager, sourceFileName.replace(MXFEXT, ""));\r
- if (existingMediaId != 0)\r
+ if (existingMediaId != 0 || sourceMediaFile.length() == 0)\r
return null;\r
\r
String details = String.format("%s (%d bytes)", sourceFileName, sourceMediaFile.length());\r
IResultSetConsumer consumer = rs -> {\r
long mediaFileId = rs.getLong("mediafileid");\r
MediaFile mediaFile = (MediaFile) manager.get(MediaFile.class, mediaFileId);\r
- String mediaFileHouseId = rs.getString("mediafilehouseid");\r
if (masterMediaFile[0] == null) {\r
masterMediaFile[0] = mediaFile;\r
- //System.out.println("Skipping: " + mediaFileHouseId);\r
return true;\r
}\r
\r
String path = rs.getString("relativepath");\r
- // System.out.println("Inspecting: " + path + " filename " + fileName + " mediaFileHouseId " + mediaFileHouseId);\r
-\r
File file = Paths.get(LOWRES_ROOT, path).toFile();\r
duplicateLength[0] += file.length();\r
- //System.out.println("Inspecting: " + mediaFileHouseId + " now available " + duplicateLength[0]);\r
+\r
+ if (file.delete()) {\r
+ System.out.println(String.format("%d %s %s", mediaFile.getMediaId(), mediaFile.getRelativePath(), masterMediaFile[0].getRelativePath()));\r
+ mediaFile.setRelativePath(masterMediaFile[0].getRelativePath());\r
+ manager.modify(mediaFile);\r
+ }\r
return true;\r
};\r
manager.executeQuery(query, consumer, decorator);\r
return false;\r
}, null);\r
\r
+ int limit[] = { 1, 0 };\r
int progress[] = { 0, 0 };\r
manager.executeQuery("select filename from vw_items_rd_dup order by filecount desc", rs -> {\r
String fileName = rs.getString("filename");\r
progress[0] = progress[1];\r
}\r
System.out.println("Completed " + progress[0] + " " + count[1] + "/" + count[0] + " available " + duplicateLength[0]);\r
- return true;\r
+ limit[1]++;\r
+\r
+ if (limit[0] == limit[1])\r
+ return false;\r
+ else\r
+ return true;\r
}, null);\r
}\r
\r