A Discord Bot
Shodan is a Discord bot written by Michael Pelletier and Tori for the SpeakEasy Discord Server. This page documents Shodan's many uses.
/roll dice: 4d6+2 comment: Perception check
/rpg title: Mouse Guard description: While on patrol, you and your companions receive urgent news from Lockhaven. Important Mouse Guard business requires you to immediately set out for a distant settlement to discover why it has gone silent. Will you answer the call? system: Mouse guard 2 sessions: ~3 players: 3 availability: April image: urltoimage.png
When the message is posted, there will be two buttons at the bottom for players to express whether they are Interested or to remove their interest. When someone clicks to express interest, the message itself will update, displaying a list of all of the members who have expressed interest.
/schedule weeks: 2 startdate: 2022-02-20 exclude: 21,22,25,26,28
When the message is posted, a calendar will render with date options (excluding those that were excluded). The buttons below will display as Blue on Sundays just to differentiate a new week. Weeks have 7 days and rows of Discord buttons cap at 5 days, so each new line is not a new week, as nice as that would be.
When people click the buttons to express interest, the message itself will update. Clicking the button when you don't already have a date added will do so, clicking it again will remove it.
It also breaks down into "Best Date", which is based in part on the number of responses. The top tier "Best" is a date that works for everyone who responded. It then also will show a second best date, which is everyone - 1.
If there are at least 5 people who have responded, it will also give a third best date of everyone - 2. This last option is because you might be planning to run two groups and you're gonna split them up based on availability.
/report reason: Violating the code of conduct
When you file a report, it won't be seen by anyone that you did so. Shodan will immediately alert the Admin team that a report has been filed along with your reason for filing, so that we can investigate.
These are either commands that Shodan runs automatically or are only triggered by Admins at specific times.
Shodan also has the ability to post a list of roles. When a user clicks one of the buttons, they are automatically granted the role. We use this to make our channels "opt in" rather than overloading users (especially given the nature of some of our channels).
Shodan also has the ability to post the Code of Conduct.
Shodan welcomes new members with a brief intro as to what the server is as well as next steps.
Similar to Reporting, Shodan automatically checks all messages sent on the server for bad language. She checks this against a database on Airtable and alerts the Admin team to any violations. Because Shodan lacks context, there are no actions automatically taken - it is always on an Admin to review. Also, fun fact: Michael / Yorick sets this alert off more than literally everyone else combined.
Shodan can run a report to evaluate how active members are. This can only check the 50 most recent messages in each channel, and does not account for emoji reactions, which means it is not necessarily accurate. But it does give us a sense of how many of our members are active within the last day, week, month, three months, six months, or other. We use this to evaluate the "health" of the server.
Shodan is equipped with about 190 random questions and can ask them randomly to encourage discussion on various different topics.
Shodan is set up with Cron jobs to be able to post things on a regular basis. We use this to automatically run the Member Activity check on the first of every month, to automatically run the Random Question on Mondays at noon, to automatically run a "Tell us something good about your week" prompt on Fridays at noon, and to remind us about Morning Coffee Chats on Wednesdays and Fridays at 8am.