Spaces:
Running
Running
| 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 { FlattenPathsPlugin } from './flatten-paths.js'; | |
| import { SpeedPlugin } from './speed.js'; | |
| const pluginRegistry = { | |
| 'split-media-render': SplitRenderPlugin, | |
| 'frames': FramesPlugin, | |
| 'generate-captions': CaptionPlugin, | |
| 'flatten-paths': FlattenPathsPlugin, | |
| 'speed': SpeedPlugin, | |
| }; | |
| 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)) | |
| } |