v6d3music/v6d3music/utils/tor_extract.py

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())