import { ClapSegment } from "@aitube/clap" import { LayoutName } from "@/app/layouts" import { layouts } from "@/app/layouts/settings" import { getImageDimension } from "./getImageDimension" export async function parseLayoutFromStoryboards(storyboards: ClapSegment[]): Promise { let bestCandidate: LayoutName = "Layout0" for (const [layoutName, layoutPanels] of Object.entries(layouts)) { let nbMatchingStoryboards = 0 let i = 0 for (const { panel, orientation, width, height } of layoutPanels) { const storyboard = storyboards[i] if (!storyboard) { continue } if (!storyboard?.assetUrl) { continue } const imgDimension = await getImageDimension(storyboard.assetUrl) if (orientation === imgDimension.orientation) { nbMatchingStoryboards++ } i++ } if (nbMatchingStoryboards === 4) { bestCandidate = layoutName as LayoutName } } return bestCandidate }