docs: def need_check(self):
          '''Does the resource needs to be checked against its linkchecker?
  
          We check unavailable resources often, unless they go over the
          threshold. Available resources are checked less and less frequently
          based on their historical availability.
          '''
          min_cache_duration, max_cache_duration, ko_threshold = [
              current_app.config.get(k) for k in (
                  'LINKCHECKING_MIN_CACHE_DURATION',
                  'LINKCHECKING_MAX_CACHE_DURATION',
                  'LINKCHECKING_UNAVAILABLE_THRESHOLD',
              )
          ]
          count_availability = self.extras.get('check:count-availability', 1)
          is_available = self.check_availability()
          if is_available == 'unknown':
              return True
          elif is_available or count_availability > ko_threshold:
              delta = min(min_cache_duration * count_availability,
                          max_cache_duration)
          else:
              delta = min_cache_duration
          if self.extras.get('check:date'):
              limit_date = datetime.now() - timedelta(minutes=delta)
              check_date = self.extras['check:date']
              if not isinstance(check_date, datetime):
                  try:
                      check_date = parse_dt(check_date)
                  except (ValueError, TypeError):
                      return True
              if check_date >= limit_date:
                  return False
          return True