annotate video_ingest.py @ 22:ff73b95fc72f

frontend cleanups and improvements. this commit contains some future work too
author drewp@bigasterisk.com
date Mon, 17 Apr 2023 13:33:05 -0700
parents 071943adf000
children 9e56e86a6814
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
17
071943adf000 dnd a file or a url which we'll queue and fetch
drewp@bigasterisk.com
parents:
diff changeset
1 import asyncio
071943adf000 dnd a file or a url which we'll queue and fetch
drewp@bigasterisk.com
parents:
diff changeset
2 from dataclasses import dataclass
071943adf000 dnd a file or a url which we'll queue and fetch
drewp@bigasterisk.com
parents:
diff changeset
3 from typing import Any, Coroutine
071943adf000 dnd a file or a url which we'll queue and fetch
drewp@bigasterisk.com
parents:
diff changeset
4
071943adf000 dnd a file or a url which we'll queue and fetch
drewp@bigasterisk.com
parents:
diff changeset
5 import dl_queue
071943adf000 dnd a file or a url which we'll queue and fetch
drewp@bigasterisk.com
parents:
diff changeset
6 from video_file_store import VideoFileStore
071943adf000 dnd a file or a url which we'll queue and fetch
drewp@bigasterisk.com
parents:
diff changeset
7
071943adf000 dnd a file or a url which we'll queue and fetch
drewp@bigasterisk.com
parents:
diff changeset
8
071943adf000 dnd a file or a url which we'll queue and fetch
drewp@bigasterisk.com
parents:
diff changeset
9 @dataclass
071943adf000 dnd a file or a url which we'll queue and fetch
drewp@bigasterisk.com
parents:
diff changeset
10 class VideoIngest:
071943adf000 dnd a file or a url which we'll queue and fetch
drewp@bigasterisk.com
parents:
diff changeset
11 store: VideoFileStore
071943adf000 dnd a file or a url which we'll queue and fetch
drewp@bigasterisk.com
parents:
diff changeset
12
071943adf000 dnd a file or a url which we'll queue and fetch
drewp@bigasterisk.com
parents:
diff changeset
13 async def addContent(self, name: str, body: Coroutine[Any, Any, bytes]):
071943adf000 dnd a file or a url which we'll queue and fetch
drewp@bigasterisk.com
parents:
diff changeset
14 await self.store.save(name, iter([await body]))
071943adf000 dnd a file or a url which we'll queue and fetch
drewp@bigasterisk.com
parents:
diff changeset
15
071943adf000 dnd a file or a url which we'll queue and fetch
drewp@bigasterisk.com
parents:
diff changeset
16 async def ingestUrl(self, url: str):
071943adf000 dnd a file or a url which we'll queue and fetch
drewp@bigasterisk.com
parents:
diff changeset
17 dl_queue.queue.put({'url': url, 'outDir': str(self.store.top)})
071943adf000 dnd a file or a url which we'll queue and fetch
drewp@bigasterisk.com
parents:
diff changeset
18
071943adf000 dnd a file or a url which we'll queue and fetch
drewp@bigasterisk.com
parents:
diff changeset
19 async def events(self):
071943adf000 dnd a file or a url which we'll queue and fetch
drewp@bigasterisk.com
parents:
diff changeset
20 prev = None
071943adf000 dnd a file or a url which we'll queue and fetch
drewp@bigasterisk.com
parents:
diff changeset
21 while True:
071943adf000 dnd a file or a url which we'll queue and fetch
drewp@bigasterisk.com
parents:
diff changeset
22 p = dl_queue.pending()
071943adf000 dnd a file or a url which we'll queue and fetch
drewp@bigasterisk.com
parents:
diff changeset
23 if p != prev:
071943adf000 dnd a file or a url which we'll queue and fetch
drewp@bigasterisk.com
parents:
diff changeset
24 prev = p
071943adf000 dnd a file or a url which we'll queue and fetch
drewp@bigasterisk.com
parents:
diff changeset
25 yield p
071943adf000 dnd a file or a url which we'll queue and fetch
drewp@bigasterisk.com
parents:
diff changeset
26 await asyncio.sleep(1)