ayon-core/pype/premiere/extensions/com.pype/jsx/batchRenamer.jsx
2020-04-16 18:31:50 +02:00

125 lines
3.4 KiB
JavaScript

/* global $, JSON, app, XMPMeta, ExternalObject, CSXSEvent, Folder */
/* --------------------------------------
-. == [ part 0f PyPE CluB ] == .-
_______________.___._____________________
\______ \__ | |\______ \_ _____/
| ___// | | | ___/| __)_
| | \____ | | | | \
|____| / ______| |____| /_______ /
\/ \/
.. __/ CliP R3N4M3R \__ ..
*/
// variable br is defined in pypeAvalon.jsx
$.batchrenamer = {
getSelectedVideoTrackItems: function () {
var seq = app.project.activeSequence;
var selected = [];
var videoTracks = seq.videoTracks;
var numOfVideoTracks = videoTracks.numTracks;
// VIDEO CLIPS IN SEQUENCES
for (var l = 0; l < numOfVideoTracks; l++) {
var videoTrack = seq.videoTracks[l];
if (videoTrack.isTargeted()) {
$.writeln(videoTrack.name);
var numOfClips = videoTrack.clips.numTracks;
for (var m = 0; m < numOfClips; m++) {
var clip = videoTrack.clips[m];
selected.push({
name: clip.name,
clip: clip,
sequence: seq,
videoTrack: videoTrack
});
}
}
}
var names = [];
var items = {};
var sorted = [];
for (var c = 0; c < selected.length; c++) {
items[selected[c].name] = selected[c];
names.push(selected[c].name);
}
names.sort();
for (var cl = 0; cl < names.length; cl++) {
sorted.push(items[names[cl]]);
}
return sorted;
},
renameTargetedTextLayer: function (data) {
$.writeln(data);
var selected = $.batchrenamer.getSelectedVideoTrackItems();
var seq = app.project.activeSequence;
var metadata = $.pype.getSequencePypeMetadata(seq, true);
var startCount = 10;
var stepCount = 10;
var padding = 3;
var newItems = {};
var episode = data.ep;
var episodeSuf = data.epSuffix;
var shotPref = 'sh';
var count = 0;
var seqCheck = '';
for (var c = 0; c < selected.length; c++) {
// fill in hierarchy if set
var parents = [];
var hierarchy = [];
var name = selected[c].name;
var sequenceName = name.slice(0, 5);
var shotNum = Number(name.slice((name.length - 3), name.length));
// if (sequenceName !== seqCheck) {
// seqCheck = sequenceName;
// count = 0;
// };
//
// var seqCount = (count * stepCount) + startCount;
// count += 1;
var newName = episode + sequenceName + shotPref + (shotNum).pad(padding);
$.writeln(newName);
selected[c].clip.name = newName;
parents.push({
'entityType': 'Episode',
'entityName': episode + '_' + episodeSuf
});
hierarchy.push(episode + '_' + episodeSuf);
parents.push({
'entityType': 'Sequence',
'entityName': episode + sequenceName
});
hierarchy.push(episode + sequenceName);
newItems[newName] = {
'parents': parents,
'hierarchy': hierarchy.join('/')
};
}
metadata.clips = newItems;
$.pype.setSequencePypeMetadata(seq, metadata);
return JSON.stringify(metadata);
}
};
Number.prototype.pad = function (size) {
var s = String(this);
while (s.length < (size || 2)) {
s = "0" + s;
}
return s;
}
var messageText = 'this module is loaded> batchRenamer.jsx';
$._PPP_.updateEventPanel(messageText);
$.writeln(messageText);