in online_nearline/src/main/scala/VidispineMessageProcessor.scala [481:520]
protected def buildMetaForXML(vault:Vault, rec:NearlineRecord, itemId:String, nowTime:ZonedDateTime=ZonedDateTime.now()) = {
def makeBaseMeta(basePath:Path) = {
val filePath = basePath.resolve(s"$itemId.XML")
MxsMetadata(
stringValues = Map(
"MXFS_FILENAME_UPPER" -> filePath.toString.toUpperCase,
"MXFS_FILENAME"-> s"$itemId.xml",
"MXFS_PATH"-> filePath.toString,
"MXFS_MIMETYPE"-> "application/xml",
"MXFS_DESCRIPTION"->s"Vidispine metadata for $itemId",
"MXFS_PARENTOID"->"",
"MXFS_FILEEXT"->".xml",
"ATT_ORIGINAL_OID"->rec.objectId
),
boolValues = Map(
"MXFS_INTRASH"->false,
),
longValues = Map(
"MXFS_MODIFICATION_TIME"->nowTime.toInstant.toEpochMilli,
"MXFS_CREATION_TIME"->nowTime.toInstant.toEpochMilli,
"MXFS_ACCESS_TIME"->nowTime.toInstant.toEpochMilli,
),
intValues = Map(
"MXFS_CREATIONDAY"->nowTime.getDayOfMonth,
"MXFS_COMPATIBLE"->1,
"MXFS_CREATIONMONTH"->nowTime.getMonthValue,
"MXFS_CREATIONYEAR"->nowTime.getYear,
"MXFS_CATEGORY"->4, //"document"
)
)
}
getOriginalMediaMeta(vault, rec.objectId).map(maybeMeta=>{
for {
updatedMeta <- maybeMeta.map(_.copy(itemType = CustomMXSMetadata.TYPE_META))
baseMeta <- Some(makeBaseMeta(Paths.get(rec.originalFilePath).getParent))
mxsMeta <- Some(updatedMeta.toAttributes(baseMeta))
} yield mxsMeta
})
}