Esempio n. 1
0
def fetch_template(url):
    m = template_url_re.search(url)
    if m:
        digest = m.groups()[0].upper()
        matcher = template_cache.get(digest)
    if not matcher:
        try:
            code, template = urlfetch(url)
        except:
            raise TemplateError('Cannot fetch template')
        if code != 200:
            raise TemplateError('Cannot fetch template')
        matcher = compile_template(template)
        calc_digest = hashlib.sha1(template).hexdigest().upper()
        if digest and calc_digest != digest:
            raise TemplateError('Template digest mismatch at URL %s' % url)
        template_cache[calc_digest] = matcher
    return matcher
Esempio n. 2
0
 def fetch(self):
     try:
         data = urlfetch(self.url)
     except HTTPError, e:
         current_app.logger.error("Error during fetching the document: %s" % e)
         return None