code: def accept(self, title):
          
          if self._whitelist and title in self._whitelist:
              return self.WHITELIST_ACCEPT
  
          if self._blacklist and title in self._blacklist:
              return self.REJECT
  
          # If we have a positive regex but we don't match it, reject.
          if self._positiveRegex and self._positiveRegex.search(title) is None:
              return self.REJECT
  
          # If we have a negative regex and we do match it, reject.
          if (self._negativeRegex and
                  self._negativeRegex.search(title) is not None):
              return self.REJECT
  
          if self._truncated is not None:
              truncated = simplifyTitle(title, self._truncateAfter)
              if truncated in self._truncated:
                  # We've already seen this (truncated) title. Reject unless
                  # this is the original title that we truncated to make this
                  # entry. That title must continue to be accepted.
                  if self._truncated[truncated] == title:
                      return self.DEFAULT_ACCEPT
                  else:
                      return self.REJECT
              else:
                  self._truncated[truncated] = title
  
          return self.DEFAULT_ACCEPT
docs: Return a value (see below) to indicate if a title is acceptable (and,
          if so, in what way).
  
          @param title: A C{str} sequence title.
          @return: An C{int} to indicate an acceptable title or not. This will be
  
              C{self.REJECT} if the title is unacceptable.
              C{self.WHITELIST_ACCEPT} if the title is whitelisted.
              C{self.DEFAULT_ACCEPT} if the title is acceptable by default.
  
              These three values are needed so our caller can distinguish between
              the two reasons for acceptance.