""" usage: ebk-raw [options] CONFIG URLPATH [PARAMS...] options: --lol=LOL Log Level [Default: INFO] --method=METHOD HTTP Method to use [Default: GET] --xml do not try to decode as json but xml instead PARAMS are the parameters sent via http method to URLPATH examples: ebk-raw ebk.yml /ads/search-metadata.json ebk-raw ebk.yml --xml /ads/search-metadata ebk-raw ebk.yml /ads.json categoryId=216 zipcode=70435 distance=50 distanceUnit=KM """ from docopt import docopt from .client import EbkClient import yaml import json import dateutil import logging from .common import set_lol log = logging.getLogger('ebk-raw') def create_params(cliparams): kv = {} for param in cliparams: k,v = param.split("=",1) kv[k] = v return kv def main(): args = docopt(__doc__) set_lol(args['--lol'],log) suffix = args['URLPATH'] config = yaml.safe_load(open(args['CONFIG'])) api = EbkClient(config['main']['appid'], config['main']['apppw'], config['main']['userid'], config['main']['userpw'] ) params = create_params(args['PARAMS'] or []) if args['--method'] == 'GET': ret = api._http_get(suffix,params) if args['--xml']: import xml.dom.minidom print(xml.dom.minidom.parseString(ret.content).toprettyxml()) else: print(json.dumps(ret.json(),indent=4))