forked from uploadcare/pyuploadcare
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathucare
executable file
·110 lines (79 loc) · 2.8 KB
/
ucare
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#!/usr/bin/python
# encoding: utf-8
import argparse
import logging
import pprint
from os.path import exists
from pyuploadcare import UploadCare, UploadCareException
pp = pprint.PrettyPrinter(indent=2)
logger = logging.getLogger('pyuploadcare')
def get_key(name, key=None):
"""Helper function, reads .name file for key if it is not provided"""
if key is None:
fname = '.{}'.format(name)
if exists(fname):
with open(fname, 'rt') as f:
key = f.readline().strip()
else:
print '{key} arg is not provided and .{key} file does not exist'.format(
key=name
)
exit()
return key
def create_ucare(pub_key=None, secret=None):
return UploadCare(
pub_key=get_key('pub_key', pub_key),
secret=get_key('secret', secret)
)
def list(args):
ucare = create_ucare(args.pub_key, args.secret)
pp.pprint(ucare.make_request('GET', '/files/'))
def get(args):
ucare = create_ucare(args.pub_key, args.secret)
pp.pprint(ucare.make_request('GET', args.path))
def keep(args):
ucare = create_ucare(args.pub_key, args.secret)
ucare.make_request('POST', args.path, data={'keep': 1})
def delete(args):
ucare = create_ucare(args.pub_key, args.secret)
ucare.make_request('DELETE', args.path)
def upload(args):
ucare = create_ucare(args.pub_key, args.secret)
ucare.make_request('POST', '/files/download/', {'source_url': args.url})
def get_args():
parser = argparse.ArgumentParser()
subparsers = parser.add_subparsers()
# list
subparser = subparsers.add_parser('list', help='list all files')
subparser.set_defaults(func=list)
# get
subparser = subparsers.add_parser('get', help='get file info')
subparser.set_defaults(func=get)
subparser.add_argument('path', help='file path')
# keep
subparser = subparsers.add_parser('keep', help='claim keep')
subparser.set_defaults(func=keep)
subparser.add_argument('path', help='file path')
# delete
subparser = subparsers.add_parser('delete', help='request delete')
subparser.set_defaults(func=delete)
subparser.add_argument('path', help='file path')
# upload
subparser = subparsers.add_parser('upload', help='upload file from url')
subparser.set_defaults(func=upload)
subparser.add_argument('url', help='file url')
# common arguments
parser.add_argument('--pub_key',
help='API key, if not set is read from .pub_key file')
parser.add_argument('--secret',
help='API secret, if not set is read from .secret file')
args = parser.parse_args()
return args
def main():
args = get_args()
try:
args.func(args)
except UploadCareException as e:
print e
if __name__ == '__main__':
main()