Limnoria/plugins/Karma
Valentin Lorentz a6aa5530dd Ensure files written with AtomicFile are read in UTF8
With some locale configurations (not that uncommon on CentOS), open() may
default to non-UTF8 encodings (eg. ANSI_X3.4-1968).

This is usually not an issue, because we use open() both for writing and
reading. However, AtomicFile implicitly enforces UTF8; which needs to be
mirrored when reading.
2022-10-06 09:49:42 +02:00
..
locales all: Update .pot and .po files 2022-02-06 00:14:47 +01:00
__init__.py Revert generic 'The Limnoria Contributors' in copyright notices 2021-10-17 09:57:55 +02:00
config.py Revert generic 'The Limnoria Contributors' in copyright notices 2021-10-17 09:57:55 +02:00
messages.pot all: Update .pot and .po files 2022-02-06 00:14:47 +01:00
plugin.py Ensure files written with AtomicFile are read in UTF8 2022-10-06 09:49:42 +02:00
README.rst supybot-plugin-doc: Remove extra space + regenerate all READMEs. 2021-12-04 03:19:12 +01:00
test.py Revert generic 'The Limnoria Contributors' in copyright notices 2021-10-17 09:57:55 +02:00

.. _plugin-Karma:

Documentation for the Karma plugin for Supybot
==============================================

Purpose
-------

Plugin for keeping track of Karma for users and things in a channel.

Usage
-----

Provides a simple tracker for setting Karma (thing++, thing--).
If ``config plugins.karma.allowUnaddressedKarma`` is set to ``True``
(default since 2014.05.07), saying `boats++` will give 1 karma
to ``boats``, and ``ships--`` will subtract 1 karma from ``ships``.

However, if you use this in a sentence, like
``That deserves a ++. Kevin++``, 1 karma will be added to
``That deserves a ++. Kevin``, so you should only add or subtract karma
in a line that doesn't have anything else in it.
Alternatively, you can restrict karma tracking to nicks in the current
channel by setting `config plugins.Karma.onlyNicks` to ``True``.

If ``config plugins.karma.allowUnaddressedKarma` is set to `False``,
you must address the bot with nick or prefix to add or subtract karma.

.. _commands-Karma:

Commands
--------

.. _command-karma-clear:

clear [<channel>] [<name>]
  Resets the karma of <name> to 0. If <name> is not given, resets everything.

.. _command-karma-dump:

dump [<channel>] <filename>
  Dumps the Karma database for <channel> to <filename> in the bot's data directory. <channel> is only necessary if the message isn't sent in the channel itself.

.. _command-karma-karma:

karma [<channel>] [<thing> ...]
  Returns the karma of <thing>. If <thing> is not given, returns the top N karmas, where N is determined by the config variable supybot.plugins.Karma.rankingDisplay. If one <thing> is given, returns the details of its karma; if more than one <thing> is given, returns the total karma of each of the things. <channel> is only necessary if the message isn't sent on the channel itself.

.. _command-karma-load:

load [<channel>] <filename>
  Loads the Karma database for <channel> from <filename> in the bot's data directory. <channel> is only necessary if the message isn't sent in the channel itself.

.. _command-karma-most:

most [<channel>] {increased,decreased,active}
  Returns the most increased, the most decreased, or the most active (the sum of increased and decreased) karma things. <channel> is only necessary if the message isn't sent in the channel itself.

.. _conf-Karma:

Configuration
-------------

.. _conf-supybot.plugins.Karma.allowSelfRating:


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

  Determines whether users can adjust the karma of their nick.

.. _conf-supybot.plugins.Karma.allowUnaddressedKarma:


supybot.plugins.Karma.allowUnaddressedKarma
  This config variable defaults to "True", is network-specific, and is channel-specific.

  Determines whether the bot will increase/decrease karma without being addressed.

.. _conf-supybot.plugins.Karma.decrementChars:


supybot.plugins.Karma.decrementChars
  This config variable defaults to "--", is network-specific, and is channel-specific.

  A space separated list of characters to decrease karma.

.. _conf-supybot.plugins.Karma.incrementChars:


supybot.plugins.Karma.incrementChars
  This config variable defaults to "++", is network-specific, and is channel-specific.

  A space separated list of characters to increase karma.

.. _conf-supybot.plugins.Karma.mostDisplay:


supybot.plugins.Karma.mostDisplay
  This config variable defaults to "25", is network-specific, and is channel-specific.

  Determines how many karma things are shown when the most command is called.

.. _conf-supybot.plugins.Karma.onlyNicks:


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

  Determines whether the bot will only increase/decrease karma for nicks in the current channel.

.. _conf-supybot.plugins.Karma.public:


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

  Determines whether this plugin is publicly visible.

.. _conf-supybot.plugins.Karma.rankingDisplay:


supybot.plugins.Karma.rankingDisplay
  This config variable defaults to "3", is network-specific, and is channel-specific.

  Determines how many highest/lowest karma things are shown when karma is called with no arguments.

.. _conf-supybot.plugins.Karma.response:


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

  Determines whether the bot will reply with a success message when something's karma is increased or decreased.

.. _conf-supybot.plugins.Karma.simpleOutput:


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

  Determines whether the bot will output shorter versions of the karma output when requesting a single thing's karma.