import { GeneratedPanel } from "@/types" import { cleanJson } from "./cleanJson" import { parseBadJSON } from "./parseBadJSON" export function dirtyGeneratedPanelsParser(input: string): GeneratedPanel[] { if (input.includes("```")) { input = input.split("```")[0] } // we only keep what's after the first [ let jsonOrNot = cleanJson(input) const jsonData = parseBadJSON(jsonOrNot) as GeneratedPanel[] const results = jsonData.map((item, i) => { let panel = i let speech = item.speech ? item.speech.trim() : '' let caption = item.caption ? item.caption.trim() : '' let instructions = item.instructions ? item.instructions.trim() : '' if (!instructions && !caption && speech) { instructions = speech } else if (!instructions && caption) { instructions = caption } if (!caption && instructions) { caption = instructions } return { panel, speech, caption, instructions } }) return results }