Media pool: this project and all assets
This project lists every symbol in the document and the video it uses or was given this session, each with a frame from its proxy as a thumbnail. All assets lists every upload on the server and every other saved project's symbols, from a new /api/symbols that reads symbol leaf paths. Every row is a drag source (symbol:, import:, footage:). Uploading no longer runs straight into detection; it lands in the project's media. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
c81f91c442
commit
d5f044c6da
11 changed files with 270 additions and 105 deletions
|
|
@ -737,16 +737,14 @@ async function main() {
|
|||
nodeId: root.nodeId, selector: 'input[type=file]',
|
||||
});
|
||||
await page.send('DOM.setFileInputFiles', { files: [video], nodeId });
|
||||
// Waited for in the MEDIA POOL rather than in the status line. Dropping or
|
||||
// choosing a video now runs straight on into detection, so "video
|
||||
// extracted" is a state the app passes through in one turn of the event
|
||||
// loop and not one a poller can be relied on to catch. The row appearing in
|
||||
// the pool is the durable evidence, and it is what a person would look at.
|
||||
// Waited for in the MEDIA POOL rather than in the status line: the row
|
||||
// appearing under this project's media is the durable evidence, and it is
|
||||
// what a person would look at.
|
||||
let extracted = null;
|
||||
for (let i = 0; i < 160 && extracted === null; i++) {
|
||||
await sleep(250);
|
||||
if (await page.eval(`[...document.querySelectorAll('.pool-item')]
|
||||
.some((b) => (b.firstChild?.textContent ?? '').trim() === 'browser-upload.mp4')`)) {
|
||||
.some((b) => (b.querySelector('.text')?.firstChild?.textContent ?? '').trim() === 'browser-upload.mp4')`)) {
|
||||
extracted = 'listed in the media pool';
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue