From f63c4d3b4bbcae173f8ef27f0f62b7d48dace6b1 Mon Sep 17 00:00:00 2001 From: makefu Date: Wed, 11 Mar 2020 21:26:18 +0100 Subject: ebk-raw: init --- ebknotify/raw.py | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 ebknotify/raw.py (limited to 'ebknotify') diff --git a/ebknotify/raw.py b/ebknotify/raw.py new file mode 100644 index 0000000..5e4adfd --- /dev/null +++ b/ebknotify/raw.py @@ -0,0 +1,52 @@ +""" 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)) -- cgit v1.2.3