You are the man X!
Ok here is another version with a check for the dll.
#target bridge
if( BridgeTalk.appName == "bridge" ) {
addInfo = new MenuElement("command", "Update Entry Details", "at the end of Thumbnail");
}
addInfo .onSelect = function () {
main();
}
function main(){
var csv = File.openDialog("Please select CSV file.","CSV File:*.csv");
if(csv != null){
loadXMPScript();
csv.open("r");
while(!csv.eof){
strInputLine = csv.readln();
if (strInputLine.length > 3) {
strInputLine = strInputLine.replace(/\\/g,'/');
inputArray = strInputLine.split(",");
var csvFile = new File(inputArray[0]);
var title = inputArray[1];
var author = inputArray[2];
if(!csvFile.exists) {
alert(csvFile + " Does not exist"); //////////Check if file exists
return;
}
if(csvFile.exists){
var file = new Thumbnail(csvFile);
try{
var xmpFile = new XMPFile(file.path, XMPConst.UNKNOWN,XMPConst.OPEN_FOR_UPDATE);
}catch(e){
alert("Problem opening xmp for update:-\r" + file.path +"\r" +e.message);
return;
}
try{
var xmp = xmpFile.getXMP();
}catch(e){
alert("Problem opening xmp data:-\r" + e.message);
return;
}
xmp.deleteProperty(XMPConst.NS_DC, "creator");
xmp.deleteProperty(XMPConst.NS_DC, "title");
try{
xmp.appendArrayItem(XMPConst.NS_DC, "creator", author, 0,XMPConst.ARRAY_IS_ORDERED);
xmp.appendArrayItem(XMPConst.NS_DC, "title", title, 0,XMPConst.ARRAY_IS_ORDERED);
}catch(e){
alert("Problem writing xmp data:-\r" + e.message);
return;
}
if (xmpFile.canPutXMP(xmp)) {
xmpFile.putXMP(xmp);
}else{
alert("Can not write new metadata to " + csvFile.spec);
}
xmpFile.closeFile(XMPConst.CLOSE_UPDATE_SAFELY);
}
}
}
}
}
unloadXMPScript();
function loadXMPScript()
{
var results = new XMPLibMsg("XMPScript Library already loaded", 0, false);
if (!ExternalObject.AdobeXMPScript)
{
try
{
ExternalObject.AdobeXMPScript = new ExternalObject('lib:AdobeXMPScript');
results.message = "XMPScript Library loaded";
}
catch (e)
{
alert("Could not load AdobeXMPScript \r" + e.message);
results.message = "ERROR Loading AdobeXMPScript: " + e;
results.line = e.line;
results.error = true;
}
}
return results;
}
function unloadXMPScript()
{
var results = new XMPLibMsg("XMPScript Library not loaded", 0, false);
if( ExternalObject.AdobeXMPScript )
{
try
{
ExternalObject.AdobeXMPScript.unload();
ExternalObject.AdobeXMPScript = undefined;
results.message = "XMPScript Library successfully unloaded";
}
catch (e)
{
results.message = "ERROR unloading AdobeXMPScript: " + e;
results.line = e.line;
results.error = true;
}
}
return results;
}
function XMPLibMsg (inMessage, inLine, inError)
{
this.message = inMessage;
this.line = inLine;
this.error = inError;
}
... View more