-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathcreate-sequences.jsx
41 lines (33 loc) · 1.45 KB
/
create-sequences.jsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// Creates sequences for all selected project files
// https://ppro-scripting.docsforadobe.dev/
var targetBinName = ""; // empty string for none. Better keep it this way to prevent issues with apply-warp-effect.jsx
var project = app.project;
var projectItems = app.getCurrentProjectViewSelection();
if (!projectItems) throw "Please select some files";
var targetBin = targetBinName && getBin(targetBinName);
if (targetBinName && !targetBin) targetBin = project.rootItem.createBin(targetBinName);
for (var i = 0; i < projectItems.length; i++) {
var projectItem = projectItems[i];
if (projectItem.type === 1 // CLIP, BIN, ROOT, or FILE
&& !projectItem.isSequence()) {
if (targetBin) {
project.createNewSequenceFromClips(projectItem.name, [projectItem], targetBin);
} else {
project.createNewSequenceFromClips(projectItem.name, [projectItem]);
}
}
}
app.setSDKEventMessage("Done", "info");
function getBin(name, root) {
if (!root) root = app.project.rootItem;
var projectItems = root.children;
for (var i = 0; i < projectItems.length; i++) {
var projectItem = projectItems[i];
if (projectItem.type === 2 && !projectItem.isSequence()) { // BIN
if (projectItem.name === name) return projectItem;
var innerItem = getBin(name, projectItem);
if (innerItem) return innerItem;
}
}
return null;
}