Upload filter script
Functions of this script are being called for each upload task and for each child task (e.g. file upload, thumbnail upload, url shortening)
- Since
- version 1.3.2
Example:
if (taskUnion.type() == "TypeFile") {
local task = taskUnion.getFileTask();
local ext = GetFileExtension(task.getFileName());
if ( ext.tolower() == "png" ) {
local displayName = ExtractFileNameNoExt(task.getDisplayName());
local tempName = GetTempDirectory() + displayName + "_" + GetCurrentThreadId() + "_" + random()%50000 + ".png";
if ( CopyFile(task.getFileName(), tempName, true) ) {
task.setStatusText("Optimizing png...");
task.addTempFile(tempName);
local process = Process("optipng.exe", true);
process.setArguments([tempName]);
process.setHidden(true);
process.start();
local exitCode = process.waitForExit();
if ( exitCode == 0 ) {
task.setFileName(tempName);
task.setDisplayName( displayName +".png")
} else {
WriteLog("error", "Optipng returned code " + exitCode);
return false;
}
} else {
WriteLog(
"error",
"Cannot copy file to " + tempName);
return false;
}
}
}
return true;
}
return true;
}
void WriteLog(string type, string message)
bool PostUpload(ScriptAPI::UploadTaskUnion taskUnion, int reserved)
bool PreUpload(ScriptAPI::UploadTaskUnion taskUnion, int reserved)