Mercurial > code > home > repos > video
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 |
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) |