21 lines
727 B
Python
21 lines
727 B
Python
import asyncio
|
|
import json
|
|
|
|
from v6d3music.utils.tor_prefix import tor_prefix
|
|
|
|
|
|
async def tor_extract(params: dict, url: str, **kwargs):
|
|
print(f'tor extracting {url}')
|
|
args = [*tor_prefix(), 'python', '-m', 'v6d3music.run-extract']
|
|
ap = await asyncio.create_subprocess_exec(*args, stdin=asyncio.subprocess.PIPE, stdout=asyncio.subprocess.PIPE)
|
|
assert ap.stdin is not None
|
|
ap.stdin.write(f'{json.dumps(params)}\n'.encode())
|
|
ap.stdin.write(f'{json.dumps(url)}\n'.encode())
|
|
ap.stdin.write(f'{json.dumps(kwargs)}\n'.encode())
|
|
ap.stdin.write_eof()
|
|
code = await ap.wait()
|
|
if code:
|
|
raise RuntimeError(code)
|
|
assert ap.stdout is not None
|
|
return json.loads(await ap.stdout.read())
|