code: def moderate(self, comment, content_object, request):
          
  
          # Soft delete checks are done first, so these comments are not mistakenly "just moderated"
          # for expiring the `close_after` date, but correctly get marked as spam instead.
          # This helps staff to quickly see which comments need real moderation.
          if self.akismet_check:
              akismet_result = akismet_check(comment, content_object, request)
              if akismet_result:
                  # Typically action=delete never gets here, unless the service was having problems.
                  if akismet_result in (SpamStatus.ProbableSpam, SpamStatus.DefiniteSpam) and \
                         self.akismet_check_action in ('auto', 'soft_delete', 'delete'):
                     comment.is_removed = True  # Set extra marker
  
                  # SpamStatus.Unknown or action=moderate will end up in the moderation queue
                  return True
  
          # Parent class check
          if super(FluentCommentsModerator, self).moderate(comment, content_object, request):
              return True
  
          # Bad words check
          if self.moderate_bad_words:
              input_words = split_words(comment.comment)
              if self.moderate_bad_words.intersection(input_words):
                  return True
  
          # Akismet check
          if self.akismet_check and self.akismet_check_action not in ('soft_delete', 'delete'):
              # Return True if akismet marks this comment as spam and we want to moderate it.
              if akismet_check(comment, content_object, request):
                  return True
  
          return False
docs: Determine whether a given comment on a given object should be allowed to show up immediately,
          or should be marked non-public and await approval.
  
          Returns ``True`` if the comment should be moderated (marked non-public), ``False`` otherwise.