Extension:Thanks

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 individual edits and some logged actions.

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

A 'thank' link is added in four places:


 * next to the 'undo' link in history and diff views;


 * on some log entries on Special:Log (see 1>#Configuration|#Configuration, below); and


 * to ext>Special:MyLanguage/Extension:Flow|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, 1>#disable|as described below.



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

We hope that the Thanks notification will make it easier to show appreciation for each other's work — and 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…

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

Log Thank actions to "Special&#58;Log" (enabled by default)

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

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

Usage
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 ext-echo>Special:MyLanguage/Extension:Echo|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>Special:MyLanguage/memcached|memcached, a rate limit is imposed of no more than 10 thanks per minute per user. The limit can be configured with  .

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.

Parameters:


 * - The revision ID you would like to thank someone for (either this or  is required)
 * - The log ID you would like to thank someone for (either this or  is required)
 * - 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>Special:MyLanguage/Huggle|Huggle, the value could be 'huggle'. (optional)
 * - man-token>Special:MyLanguage/Manual:Edit token|Edit token (a.k.a. csrf token). You can get one of these through the api>Special:MyLanguage/API:Tokens|tokens API. (required)

Example:

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

To send thanks via  only the "Basic" 2>m:Special:ListGrants#basic|grant permission is required.

A python example can be found [https://gist.github.com/notconfusing/460d6ffb6682439ebe6b70b78e7759af here].

Log Documentation
Understanding who thanked who from the logs requires some understanding of the columns.

Within the logging</> table, the <tvar|2> </> represents the receiver, and the <tvar|3> </> represents the sender.

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

Notice also that the <tvar|1>logging</> table is not selected from directly, but on Wikimedia servers we take advantage the <tvar|2> </> table.

In order to quickly search for all the thanks a user sent the <tvar|1> </> provides the correct index.

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

Parameters:
 * - The UUID of the comment for which to send thanks (required)
 * - man-token>Special:MyLanguage/Manual:Edit token</>|Edit token. You can get one of these through prop=info. (required)

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