|
1 |
|
2 #!/usr/bin/env python |
|
3 # coding: utf-8 |
|
4 import argparse |
|
5 import json |
|
6 |
|
7 import requests |
|
8 |
|
9 |
|
10 def retrieve_group_annotations(args): |
|
11 |
|
12 url = args.url |
|
13 |
|
14 if url is None: |
|
15 raise argparse.ArgumentTypeError('URL must be provided') |
|
16 |
|
17 ids = [] |
|
18 |
|
19 params = {} |
|
20 for config_tag in ['group', 'user', 'tag', 'limit']: |
|
21 config_val = vars(args).get(config_tag) |
|
22 if config_val is not None: |
|
23 params[config_tag] = config_val |
|
24 |
|
25 headers = {} |
|
26 token = args.token |
|
27 if token is not None: |
|
28 headers["Authorization"] = "Bearer " + token |
|
29 |
|
30 res = requests.get(url, params = params, headers = headers) |
|
31 |
|
32 print(res.json()["total"]) |
|
33 return res.json() |
|
34 |
|
35 def save(data, path): |
|
36 with open(path, 'w') as outfile: |
|
37 json.dump(data, outfile, indent=4, separators=(',', ': ')) |
|
38 |
|
39 |
|
40 if __name__ == "__main__": |
|
41 |
|
42 parser = argparse.ArgumentParser(description='Import annotations.') |
|
43 |
|
44 parser.add_argument("url", type=str, help="the search url") |
|
45 parser.add_argument("--token", "-T", type=str, help="the access token") |
|
46 parser.add_argument("--group", "-g", type=str, help="filter by group") |
|
47 parser.add_argument("--user", "-u", type=str, help="filter by user") |
|
48 parser.add_argument("--tag", "-t", type=str, help="filter by tag") |
|
49 parser.add_argument("--limit", "-l", type=int, default=200, help="annoations limit") |
|
50 |
|
51 args = parser.parse_args() |
|
52 |
|
53 ids = retrieve_group_annotations(args) |
|
54 |
|
55 save(ids, "../assets/annotations.json") |
|
56 |