Skip to main content

Reactions Parsing

This module enables users to gather stats about the reactions sent into a channel.

Note

Manage Messages is both Discord's command-permissions picker default for /reactions and separately re-checked in-code for every subcommand below, including print (see Layer 3).

/reactions print

Command Syntax

/reactions print message_id:{message id} [sort:{username/discriminator/nickname}] [show:{username/nickname}] [emoji:{default or custom emoji}]

Command Description

Prints the list of users that reacted to the specified message in a readable way.

Setting the sort option will sort the output using the specified setting. Defaults to showing the reactions with the order Discord outputs them.

Setting the show option will show the output using the specified setting. Defaults to showing the users by their username.

Setting the emoji option will filter the output to the specified emoji.

Note

You can also right-click (or long-press) a message and choose Apps -> List reactions to run this against that message directly, without typing a message ID. That shortcut always shows usernames and does not support sort/emoji filtering - use /reactions print for that.

Permissions Needed

  • User: Manage Messages

Examples

/reactions print message_id:123456789098765432
/reactions print message_id:123456789098765432 sort:nickname show:nickname
/reactions print message_id:123456789098765432 emoji::pikathink:

/reactions summary

Command Syntax

/reactions summary [count:{# of messages}] [csv:{true/false}] [silent:{true/false}] [channel:{channel}]

Command Description

Prints a list of messages with reactions within the last count messages in the given channel (defaults to the current channel), showing the list of reactions and number of uses per each reaction.

Setting csv to true instructs the bot to send a .csv file containing the details of the summary to the command author.

Setting silent to true suppresses the in-channel embed output (this only works if used with csv:true).

If count is omitted, the bot will scan the latest 10 messages.

The maximum number of messages the bot will scan is 500.

Larger scans can take a while, as the bot paces its API calls to avoid rate limits.

Permissions Needed

  • User: Manage Messages

Examples

/reactions summary
/reactions summary count:20 csv:true silent:true
/reactions summary csv:true

/reactions unique

Command Syntax

/reactions unique [count:{# of messages}] [csv:{true/false}] [silent:{true/false}]

Command Description

Prints a list of unique users that reacted to at least one message within the last count messages in the current channel.

Setting csv to true instructs the bot to send a .csv file containing the details of the output to the command author. The .csv file also shows the nickname of the user(s) and the number of times each user reacted to each reaction.

Setting silent to true suppresses the in-channel embed output (this only works if used with csv:true).

If count is omitted, the bot will scan the latest 10 messages.

The maximum number of messages the bot will scan is 500.

Larger scans can take a while, as the bot paces its API calls to avoid rate limits.

Permissions Needed

  • User: Manage Messages

Examples

/reactions unique
/reactions unique count:20 csv:true silent:true
/reactions unique csv:true

Note

The age/joined options below take the standard time code (e.g. 1d3h2m) - or a Discord timestamp mention referring to a future time - described in Time Format Code.

/reactions contest

Command Syntax

/reactions contest [count:{# of messages}] [age:{time code}] [joined:{time code}] [members:{number}] [csv:{true/false}] [silent:{true/false}]

Command Description

This function is specifically built with reaction contests in mind. Its output is focused on highlighting reactions that are added by Discord accounts that have been recently created, in order to perform a better analysis of potential "fraudulent votes": duplicate reactions added by newly created accounts just for the sake of increasing one's message's reactions.

The age and joined options will define how to recognize a suspect user:

  • age defines the minimum age of the Discord account to avoid being flagged.
  • joined defines the minimum amount of time the user needs to be on the server to avoid being flagged.

The members option, on the other hand, defines the minimum number of members needed to pass both checks for a message to be flagged as having fraudulent reaction votes.

As a practical example:

/reactions contest count:50 age:1w joined:3d members:5

would flag any messages, within the last 50 messages in the current channel, with more than 5 (unique) members that have reacted to the message with a Discord account that is less than 1 week old and that joined the server less than 3 days ago.

If count is omitted, the bot will scan the latest 10 messages.

Omitting age and/or joined will disable the corresponding check from being relevant in recognizing fraudulent votes (e.g. omitting age will mark any account as suspect, regardless of its actual Discord age).

Omitting members will set its default value of 0, making every message with at least 1 suspect member being flagged as fraudulent.

Setting csv to true instructs GiselleBot to send 2 .csv files to the command author:

  1. A .csv with the same output of /reactions summary, showing the list of messages with reactions within the last count messages in the current channel, including the list of reactions and number of uses per each reaction. This is further enhanced with a "Fraudulent Flag" and a "Fraudulent Votes" extra column.
  2. A 2nd .csv with the list of users that meet that "Fraudulent Votes" criteria, with a separate record for each message they reacted to (including how they reacted to the message).

Setting silent to true suppresses the in-channel embed output (this only works if used with csv:true).

The maximum number of messages the bot will scan is 500.

Larger scans can take a while, as the bot paces its API calls to avoid rate limits.

Permissions Needed

  • User: Manage Messages

Examples

/reactions contest age:5d joined:1d
/reactions contest
/reactions contest count:50 age:2w joined:1w members:10 csv:true silent:true

See also

Full migration mapping for these commands: Migration Guide.