Extension:Thanks/mni

This extension comes with MediaWiki 1.40 and later, so you do not need to download it. The remaining configuration instructions must still be followed.
Category:Extensions bundled with MediaWiki 1.40/mni Category:MIT licensed extensions/mni
ꯃꯦꯗꯤꯌꯥꯋꯤꯀꯤ ꯁꯥꯡꯗꯣꯛꯄꯁꯤꯡ ꯈꯨꯠꯄꯥꯏ
Thanks
ꯊꯥꯛ ꯈꯪꯍꯅꯕ: ꯃꯄꯨꯡ ꯑꯣꯏꯔꯕCategory:Stable extensions/mni
ꯄꯥꯟꯁꯤꯟꯕ User interfaceCategory:User interface extensions/mni
ꯁꯟꯗꯣꯛꯅꯥ ꯍꯥꯏꯕ Lets users thank other users for individual edits etc.
ꯑꯌꯤꯕ(ꯁꯦꯝꯂꯛꯂꯤꯕ)
ꯑꯅꯧꯕ ꯚꯔꯖꯟ 1.2.0 (Continuous updates)
ꯆꯠꯅꯕ ꯌꯥꯕ ꯇꯧꯒꯗꯕꯁꯤꯡ Snapshots releases along with MediaWiki. Master is not backward compatible.
ꯑꯌꯥꯕ MIT License
ꯆꯤꯡꯊꯕ Category:Extensions in Wikimedia version control/mni
  • $wgThanksAllowedLogTypes
  • $wgThanksConfirmationRequired
  • $wgThanksLogging
  • $wgThanksSendToBots
ꯍꯅꯗꯣꯛ ꯎ Thanks ꯁꯥꯡꯗꯣꯛꯄ translatewiki.net ꯗ ꯐꯪꯕ ꯇꯥꯔꯒꯗꯤ
Vagrant role echo
ꯋꯥꯍꯧꯁꯤꯡ ꯇꯥꯛꯁ ꯍꯥꯡꯗꯣꯛꯄ · ꯅꯨꯡꯉꯥꯏꯇꯕ ꯋꯥꯀꯠꯄ
Category:All extensions/mni

The Thanks extension adds a quick way to give positive feedback for productive contributions to MediaWiki sites. It allows users to send public 'thank you' notifications (via Echo) to other users for their edits and some logged actions.

The specific revision that gets "thanked" is not stored in the public logging table. Only the timestamp, sender, and recipient are publicly logged.

A 'thank' link is added in the following places:

  • next to the 'undo' link in history and diff views;
  • to Flow board comments if Flow is installed.

It also provides an API for sending thanks.

Note that if you do not want to be thanked, you can easily disable this notification in your preferences, as described below.

Example of a 'thanks' notification

Once you have had a chance to try it out, we welcome your feedback about this feature on the talk page.

We hope the Thanks notification will make showing appreciation for each other's work easier. It should be particularly helpful for encouraging new users during their first critical steps on a wiki. We have intentionally kept this notification as simple as possible so we can evaluate it and improve it together. Enjoy…

ꯈꯤꯟꯖꯟꯕ

Thanks requires the Echo extension to be installed as a prerequisite.
  • Download and move the extracted Thanks folder to your extensions/ directory.
    Developers and code contributors should install the extension from Git instead, using:
    cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Thanks
    
  • Add the following code at the bottom of your LocalSettings.php file:
    wfLoadExtension( 'Thanks' );
    
  • Configure at your convenience.
  • Go to the history tab of a page to see the new "Thank" interface.
  • Yes Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.

ꯑꯣꯏꯒꯗꯕ ꯃꯑꯣꯡ ꯃꯇꯧ

Enable the Thank interface for bot edits (disabled by default)

$wgThanksSendToBots = false;

Log Thank actions to Special:Log (enabled by default)

$wgThanksLogging = true;

Whether or not confirmation is required for sending thanks (enabled by default)

$wgThanksConfirmationRequired = true;

Log entry types that can be thanked from Special:Log:

$wgThanksAllowedLogTypes = [
	"contentmodel",
	"delete",
	"import",
	"merge",
	"move",
	"patrol",
	"protect",
	"tag",
	"managetags",
	"rights"
];

ꯁꯤꯖꯤꯟꯅꯐꯝ

To thank another user, go to the History tab of any page. Next to each revision will be a 'thank' link. Click the link to send thanks to that user. This link is also available in the diff view, on some entries in Special:Log, and below comments on Flow boards if Flow is installed.

When the thank link is clicked, the recipient will receive a notification with your thanks via the Echo extension (unless they have opted out of receiving thanks notifications). A record of the action is also recorded as a log entry at Special:Log/thanks.


If the wiki is using memcached, a rate limit is imposed of no more than 10 thanks per minute per user. The limit can be configured with $wgRateLimits['thanks-notification'].

Avoiding thanks

To stop getting thanks notifications, you can opt out from them in your notification preferences. Go to the Notifications tab of your preferences. This only prevents you from getting notified, it does not prevent users from thanking you.

API documentation

The Thanks extension includes an API for sending thanks. In order to call the API, use the parameter action=thank.

Parameters:

  • rev - The revision ID you would like to thank someone for (either this or log is required)
  • log - The log ID you would like to thank someone for (either this or rev is required)
  • source - Source of the thank event. This is a short string that identifies where the thanks was sent from. For example, if the thanks was sent from Huggle, the value could be 'huggle'. (optional)
  • token - Edit token (a.k.a. CSRF token). You can get one of these through the tokens API. (required)

ꯈꯨꯗꯝ:

 api.php?action=thank&rev=16543&token=%2B\

To send thanks via OAuth only the "Basic" grant permission is required. A python example is available.

ꯃꯇꯨꯡꯏꯟꯅ ꯊꯥꯒꯠꯩꯔꯤ

There is a separate API for sending Thanks for comments on Flow boards. To call the API, use action=flowthank.

Parameters:

  • postid - The UUID of the comment for which to send thanks (required)
  • token - Edit token. You can get one of these through prop=info. (required)

ꯈꯨꯗꯝ:

 api.php?action=flowthank&postid=abc123&token=%2B\

Errors and Warnings

Code Info
invalidrecipientNo valid recipient found
Bots cannot be thanked
You cannot thank yourself

SQL Documentation

Understanding who thanked who from the logs requires some understanding of the columns. Within the logging table, the log_title represents the receiver, and the log_user_text represents the sender.

The following SQL which finds all the thanks a receiver received within a time period illustrates this:

select log_timestamp as thank_timestamp,
  replace(log_title, '_', ' ') as receiver,
  log_user_text as sender
from logging_logindex
where log_title = :user_name
  and log_action = 'thank'
  and :start_date <= log_timestamp
  and log_timestamp <= :end_date

Notice also that the logging table is not selected from directly, but on Wikimedia servers we take advantage of the logging_logindex table. In order to quickly search for all the thanks a user sent the logging_userindex provides the correct index.

ꯁꯤꯖꯨ ꯌꯦꯡꯉꯨ

Category:Extensions used on Wikimedia/mni#Thanks/mni
Category:All extensions/mni Category:ApiMain::moduleManager extensions/mni Category:BeforeCreateEchoEvent extensions/mni Category:BeforePageDisplay extensions/mni Category:ChangesListInitRows extensions/mni Category:DiffTools extensions/mni Category:DifferenceEngineViewHeader extensions/mni Category:EchoGetBundleRules extensions/mni Category:Extensions available as Debian packages/mni Category:Extensions bundled with MediaWiki 1.40/mni Category:Extensions in Wikimedia version control/mni Category:Extensions included in Canasta/mni Category:Extensions included in Fandom/mni Category:Extensions included in Miraheze/mni Category:Extensions included in MyWikis/mni Category:Extensions included in ProWiki/mni Category:Extensions included in ShoutWiki/mni Category:Extensions included in WikiForge/mni Category:Extensions included in wiki.gg/mni Category:Extensions used on Wikimedia/mni Category:GetAllBlockActions extensions/mni Category:GetLogTypesOnUser extensions/mni Category:HistoryTools extensions/mni Category:LocalUserCreated extensions/mni Category:LogEventsListLineEnding extensions/mni Category:MIT licensed extensions/mni Category:PageHistoryBeforeList extensions/mni Category:PageHistoryPager::doBatchLookups extensions/mni Category:Stable extensions/mni Category:User interface extensions/mni