"""ACRCloud CLI Wrapper for dedup endpoints.""" # https://docs.acrcloud.com/reference/console-api/buckets/dedup-files import argparse import json import acr_client def main(): parser = argparse.ArgumentParser( formatter_class=argparse.ArgumentDefaultsHelpFormatter) # main args parser.add_argument( '--bucket', type=int, required=False, help='override default bucket ID') subparsers = parser.add_subparsers() # args for create fingerprint operation parser_create = subparsers.add_parser('create') parser_create.add_argument( '-w', action='store_true', help='upload fingerprint IF it does not exist in db') parser_create.add_argument( '--filename', type=str, required=True, help='local filename location to fingerprint') parser_create.add_argument( '--start', type=int, required=False, default=0, help='start range to fingerprint in seconds') parser_create.add_argument( '--end', type=int, required=False, default=-1, help='end range to fingerprint in seconds') parser_create.add_argument( '--fid', type=str, required=False) parser_create.set_defaults(func='create') # args for fetch single file operation parser_single = subparsers.add_parser('single') parser_single.add_argument( '--fid', type=str, required=True) parser_single.set_defaults(func='single') # args for list all fingerprints in bucket operation parser_list = subparsers.add_parser('list') parser_list.add_argument( '--page', type=int, required=False, default=1) parser_list.add_argument( '--pagelen', type=int, required=False, default=10) parser_list.set_defaults(func='list') # read in and verify args args = parser.parse_args() # initialize client client = acr_client.ACRCloud(args.bucket) # run function based on 'func' set by subparser if 'func' in args: response = None if args.func == 'list': response = client.list(args.page, args.pagelen) elif args.func == 'single': response = client.single(args.fid) elif args.func == 'create': response = client.create(args.filename, args.start, args.end, args.fid) # noqa:E501 print(json.dumps({ 'code': response[0], 'body': response[1] })) else: parser.print_help() if __name__ == '__main__': main()