diff -r 0931f368cb9a -r 316a0101512e src/hp/utils.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hp/utils.py Thu Nov 15 04:11:59 2012 +0100 @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +''' +Created on Nov 14, 2012 + +@author: ymh +''' +import urlparse +import requests +from . import settings +import logging + +logger = logging.getLogger(__name__) + +def get_abs_url(url, default_domain): + + if not url: + return url + url_part = urlparse.urlparse(url) + if url_part.netloc: + return url + else: + pr = urlparse.ParseResult('http', default_domain, url_part.path, url_part.params, url_part.query, url_part.fragment) + return pr.geturl() + + +def get_all_objects(res_url, field_filter): + contents = [] + url = res_url + while url: + r = requests.get(url) + if r.status_code != requests.codes.ok: #@UndefinedVariable + logger.error("Error when requesting contents " + repr(r.status_code) + " : " + repr(r.text)) + break + contents.extend([ c for c in r.json['objects'] if c.get(field_filter, None) ]) + url = get_abs_url(r.json.get('meta',{}).get('next',None), settings.LDT_NETLOC) + return contents