server/sbin/hypothesis_feed.py
changeset 0 5f4fcbc80b37
equal deleted inserted replaced
-1:000000000000 0:5f4fcbc80b37
       
     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