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)
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)