X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/03c5ba6e50339d7bc470eb6d7f051483eff1e96b..b9055c7fc8caed025fd28c12532bd462edb8c78d:/lib/wlapi.py diff --git a/lib/wlapi.py b/lib/wlapi.py deleted file mode 100644 index 6f49dfee..00000000 --- a/lib/wlapi.py +++ /dev/null @@ -1,70 +0,0 @@ -""" - Abstraction over API for wolnelektury.pl -""" -import urllib2 -import functools -import django.utils.simplejson as json -import logging -logger = logging.getLogger("fnp.lib.wlapi") - -class APICallException(Exception): - pass - -def api_call(path, format="json"): - def wrapper(func): - - @functools.wraps(func) - def wrapped(self, *args, **kwargs): - generator = func(self, *args, **kwargs) - - data = generator.next() - - # prepare request - rq = urllib2.Request(self.base_url + path + ".json") - - # will send POST when there is data, GET otherwise - if data is not None: - rq.add_data(json.dumps(data)) - rq.add_header("Content-Type", "application/json") - - try: - anwser = json.load(self.opener.open(rq)) - return generator.send(anwser) - except StopIteration: - # by default, just return the anwser as a shorthand - return anwser - except urllib2.HTTPError, error: - return self._http_error(error) - except Exception, error: - return self._error(error) - return wrapped - - return wrapper - - - -class WLAPI(object): - - def __init__(self, config_dict): - self.base_url = config_dict['URL'] - self.auth_realm = config_dict['AUTH_REALM'] - self.auth_user = config_dict['AUTH_USER'] - - auth_handler = urllib2.HTTPDigestAuthHandler(); - auth_handler.add_password( - realm=self.auth_realm, uri=self.base_url, - user=self.auth_user, passwd=config_dict['AUTH_PASSWD']) - - self.opener = urllib2.build_opener(auth_handler) - - def _http_error(self, error): - return self._error() - - def _error(self, error): - raise APICallException(cause = error) - - @api_call("books") - def publish_book(self, document): - yield {"text": document.text, "compressed": False} - - \ No newline at end of file