コード例 #1
0
 def create_broken_link_entry(self, e, field_name, object_url, obj, url):
     obj_name = obj._meta.verbose_name
     logger.warning('found broken url %s' % url)
     bl, created = BrokenLink.objects.get_or_create(
         entity=obj_name,
         field_name=field_name,
         url=url[:5000],
         status_code=e.code
     )
     if object_url:
         self.set_object_url(bl, obj, field_name, object_url)
コード例 #2
0
        logger.info('    Testing url %(url)s' % {'url': url})
        request = urllib2.Request(url)
        try:
            urllib2.urlopen(request, timeout=LINKCHECKER_TIMEOUT)
        except urllib2.HTTPError, e:
            self.create_broken_link_entry(e, field_name, object_url, obj, url)
        except socket.timeout, e:
            if LINKCHECKER_IGNORE_TIMEOUT:
                logger.warning('Link %(url)s returned an Error: %(exception)s' %
                               {'url': url,
                                'exception': e})
            else:
                self.create_broken_link_entry(e, field_name, object_url, obj, url)
        except Exception, e:
            logger.warning('Link %(url)s returned an Error: %(exception)s' %
                           {'url': url,
                            'exception': e})
        return

    def create_broken_link_entry(self, e, field_name, object_url, obj, url):
        obj_name = obj._meta.verbose_name
        logger.warning('found broken url %s' % url)
        bl, created = BrokenLink.objects.get_or_create(
            entity=obj_name,
            field_name=field_name,
            url=url[:5000],
            status_code=e.code
        )
        if object_url:
            self.set_object_url(bl, obj, field_name, object_url)