.. _plugin-BadWords:

Documentation for the BadWords plugin for Supybot
=================================================

Purpose
-------
Filters bad words on outgoing messages from the bot, so the bot can't be made
to say bad words.
As an additional capability, it can (optionally) kick users who
use such words from channels that have that capability enabled.

Usage
-----
Maintains a list of words that the bot is not allowed to say.
Can also be used to kick people that say these words, if the bot
has op.

.. _commands-BadWords:

Commands
--------
.. _command-BadWords-add:

add <word> [<word> ...]
  Adds all <word>s to the list of words being censored.

.. _command-BadWords-list:

list takes no arguments
  Returns the list of words being censored.

.. _command-BadWords-remove:

remove <word> [<word> ...]
  Removes <word>s from the list of words being censored.

Configuration
-------------
supybot.plugins.BadWords.kick
  This config variable defaults to "False", is network-specific, and is  channel-specific.

  Determines whether the bot will kick people with a warning when they use bad words.

  supybot.plugins.BadWords.kick.message
    This config variable defaults to "You have been kicked for using a word prohibited in the presence of this bot. Please use more appropriate language in the future.", is network-specific, and is  channel-specific.

    Determines the kick message used by the bot when kicking users for saying bad words.

supybot.plugins.BadWords.nastyChars
  This config variable defaults to "!@#&", is not network-specific, and is  not channel-specific.

  Determines what characters will replace bad words; a chunk of these characters matching the size of the replaced bad word will be used to replace the bad words you've configured.

supybot.plugins.BadWords.phrases
  This config variable defaults to " ", is not network-specific, and is  not channel-specific.

  Comma-separated groups of words that are considered to be 'bad'.

supybot.plugins.BadWords.public
  This config variable defaults to "True", is not network-specific, and is  not channel-specific.

  Determines whether this plugin is publicly visible.

supybot.plugins.BadWords.replaceMethod
  This config variable defaults to "nastyCharacters", is not network-specific, and is  not channel-specific.

  Determines the manner in which bad words will be replaced. 'nastyCharacters' (the default) will replace a bad word with the same number of 'nasty characters' (like those used in comic books; configurable by supybot.plugins.BadWords.nastyChars). 'simple' will replace a bad word with a simple strings (regardless of the length of the bad word); this string is configurable via supybot.plugins.BadWords.simpleReplacement.  Valid strings: simple and nastyCharacters.

supybot.plugins.BadWords.requireWordBoundaries
  This config variable defaults to "False", is network-specific, and is  channel-specific.

  Determines whether the bot will require bad words to be independent words, or whether it will censor them within other words. For instance, if 'darn' is a bad word, then if this is true, 'darn' will be censored, but 'darnit' will not. You probably want this to be false. After changing this setting, the BadWords regexp needs to be regenerated by adding/removing a word to the list, or reloading the plugin.

supybot.plugins.BadWords.simpleReplacement
  This config variable defaults to "[CENSORED]", is not network-specific, and is  not channel-specific.

  Determines what word will replace bad words if the replacement method is 'simple'.

supybot.plugins.BadWords.stripFormatting
  This config variable defaults to "True", is not network-specific, and is  not channel-specific.

  Determines whether the bot will strip formatting characters from messages before it checks them for bad words. If this is False, it will be relatively trivial to circumvent this plugin's filtering. If it's True, however, it will interact poorly with other plugins that do coloring or bolding of text.

supybot.plugins.BadWords.words
  This config variable defaults to " ", is not network-specific, and is  not channel-specific.

  Determines what words are considered to be 'bad' so the bot won't say them.

