Add a Director section to save and reload multi-shot video scripts.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Towsty
2026-08-29 17:25:57 -05:00
co-authored by Cursor
parent 334bbba8af
commit 852b07bb97
11 changed files with 779 additions and 2 deletions
+8
View File
@@ -0,0 +1,8 @@
import { listDirectorScripts } from '~/server/utils/directorScripts'
export default defineEventHandler((event) => {
const { owner } = assertLibraryOwner(event)
return {
scripts: listDirectorScripts(owner)
}
})
+19
View File
@@ -0,0 +1,19 @@
import { listDirectorScripts, saveDirectorScript } from '~/server/utils/directorScripts'
export default defineEventHandler(async (event) => {
const { owner } = assertLibraryOwner(event)
const body = await readBody<{
name?: string
text?: string
overwrite?: boolean
}>(event).catch(() => ({}))
const script = await saveDirectorScript(owner, {
name: body?.name || '',
text: body?.text || '',
overwrite: body?.overwrite === true
})
return {
script,
scripts: listDirectorScripts(owner)
}
})
@@ -0,0 +1,11 @@
import { deleteDirectorScript, listDirectorScripts } from '~/server/utils/directorScripts'
export default defineEventHandler(async (event) => {
const { owner } = assertLibraryOwner(event)
const id = String(getRouterParam(event, 'id') || '')
await deleteDirectorScript(owner, id)
return {
ok: true,
scripts: listDirectorScripts(owner)
}
})
+9
View File
@@ -0,0 +1,9 @@
import { getDirectorScript } from '~/server/utils/directorScripts'
export default defineEventHandler((event) => {
const { owner } = assertLibraryOwner(event)
const id = String(getRouterParam(event, 'id') || '')
return {
script: getDirectorScript(owner, id)
}
})
+15
View File
@@ -0,0 +1,15 @@
import { listDirectorScripts, updateDirectorScript } from '~/server/utils/directorScripts'
export default defineEventHandler(async (event) => {
const { owner } = assertLibraryOwner(event)
const id = String(getRouterParam(event, 'id') || '')
const body = await readBody<{ name?: string; text?: string }>(event).catch(() => ({}))
const script = await updateDirectorScript(owner, id, {
name: body?.name,
text: body?.text
})
return {
script,
scripts: listDirectorScripts(owner)
}
})