feat: daily timeline advanced UI and calendar integration
This commit is contained in:
@@ -29,7 +29,9 @@ export interface RenderJob {
|
||||
fps: number;
|
||||
durationInFrames: number;
|
||||
compositionId: string;
|
||||
brandId?: string;
|
||||
inputProps: Record<string, any>;
|
||||
targetPath?: string;
|
||||
outputPath?: string;
|
||||
downloadUrl?: string;
|
||||
error?: string;
|
||||
@@ -51,7 +53,9 @@ export interface RenderJobCreateParams {
|
||||
fps: number;
|
||||
durationInFrames: number;
|
||||
compositionId: string;
|
||||
brandId?: string;
|
||||
inputProps: Record<string, any>;
|
||||
targetPath?: string;
|
||||
}
|
||||
|
||||
// ═══ Constants ═══
|
||||
@@ -190,7 +194,13 @@ async function renderJob(job: RenderJob): Promise<void> {
|
||||
const serveUrl = process.env.BRADLY_SERVE_URL || DEFAULT_SERVE_URL;
|
||||
const isStill = job.format === 'png' || job.format === 'jpeg';
|
||||
const ext = job.format;
|
||||
const outputPath = path.join(RENDERS_DIR, `${job.id}.${ext}`);
|
||||
const outputPath = job.targetPath || path.join(RENDERS_DIR, `${job.id}.${ext}`);
|
||||
|
||||
// Ensure the directory for the target path exists
|
||||
const targetDir = path.dirname(outputPath);
|
||||
if (!fs.existsSync(targetDir)) {
|
||||
fs.mkdirSync(targetDir, { recursive: true });
|
||||
}
|
||||
|
||||
console.log(`🎬 Rendering [${job.id}] → ${job.format} (${job.width}×${job.height})`);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user