#!/usr/bin/env python3
"""Native MP4 job. Describes the request unless --submit is supplied."""
import argparse
import json
import os
from urllib.request import Request, urlopen


def main():
    parser = argparse.ArgumentParser(description=__doc__)
    parser.add_argument('--endpoint', default='https://silken.io')
    parser.add_argument('--profile', default='sdr_720p')
    parser.add_argument('--input-url', required=True)
    parser.add_argument('--output-url', required=True)
    parser.add_argument('--verify-url', required=True)
    parser.add_argument('--submit', action='store_true', help='Create a billable job')
    args = parser.parse_args()
    job = dict(profile=args.profile, input_url=args.input_url,
               output_url=args.output_url, verify_url=args.verify_url)
    if not args.submit:
        # URLs are capabilities; print field names, not signed query strings.
        print('Ready: native MP4 job; profile=' + args.profile + '. Add --submit to create it.')
        return
    request = Request(args.endpoint.rstrip('/') + '/v1/jobs',
                      data=json.dumps(job).encode(), method='POST',
                      headers={'Content-Type': 'application/json',
                               'Authorization': 'Bearer ' + os.environ['SILKEN_API_KEY']})
    with urlopen(request, timeout=30) as response:
        result = json.load(response)
    print(result['id'], result['status'])


if __name__ == '__main__':
    main()
