Spaces:
Running
Running
File size: 2,278 Bytes
6b85c8b 926fa9d 8dd5bba b0c8eb8 08ff55b f077067 4021252 b1a7870 e9fc3f5 6b85c8b 8dd5bba 08b8660 b0c8eb8 8dd5bba f077067 4021252 b1a7870 e9fc3f5 6b85c8b 256845f 6b85c8b 926fa9d 6b85c8b 926fa9d 6b85c8b 51570c3 6b85c8b 256845f 6b85c8b 51570c3 6b85c8b 51570c3 6b85c8b | 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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | import _ from 'lodash'
import fs from 'fs'
import { SplitRenderPlugin } from './split-render.js';
import { FramesPlugin } from './frames.js';
import { CaptionPlugin } from './generate-captions.js';
import { CropPlugin } from './crop.js';
import { FlattenPathsPlugin } from './normalize-flatten-paths.js';
import { SpeedPlugin } from './speed.js';
import { OverlayPlugin } from './overlay.js';
import { HookPlugin } from './hook.js';
import { SingleStaticVideoPlugin } from './single-static-video.js';
const pluginRegistry = {
'split-media-render': SplitRenderPlugin,
'frames': FramesPlugin,
'generate-captions': CaptionPlugin,
'crop': CropPlugin,
'flatten-paths': FlattenPathsPlugin,
'speed': SpeedPlugin,
'overlay': OverlayPlugin,
'hook': HookPlugin,
'static-video': SingleStaticVideoPlugin,
};
export async function applyPluginsPrerender(plugins, originalManuscript, originalManuscriptPath, jobId) {
for (let pluginInfo of plugins) {
let pluginName = pluginInfo.name;
let options = pluginInfo || {};
_.set(originalManuscript, 'meta.plugins', plugins)
console.log(`Applying plugin: ${pluginName} with options:`, options)
if (pluginRegistry[pluginName]) {
let pluginInstance = new pluginRegistry[pluginName](pluginName, options);
await pluginInstance.applyPrerender(originalManuscript, jobId);
} else {
console.warn(`Plugin ${pluginName} not found in registry.`);
}
fs.writeFileSync(originalManuscriptPath, JSON.stringify(originalManuscript, null, 2))
}
}
export async function applyPluginsPostrender(plugins, originalManuscript, originalManuscriptPath, jobId, outFiles) {
for (let pluginInfo of plugins) {
let pluginName = pluginInfo.name;
let options = pluginInfo || {};
console.log(`Applying post-render plugin: ${pluginName} with options:`, options)
if (pluginRegistry[pluginName]) {
let pluginInstance = new pluginRegistry[pluginName](pluginName, options);
await pluginInstance.applyPostrender(originalManuscript, jobId, outFiles);
} else {
console.warn(`Plugin ${pluginName} not found in registry.`);
}
}
fs.writeFileSync(originalManuscriptPath, JSON.stringify(originalManuscript, null, 2))
} |