I'm Samuel Currid. Discord bot developer, data miner, and video editing enthusiast.
Current Projects
Community driven bot for the WPI Discord Server
Home Page: https://samuelcurrid.github.io/Gompei-Bot/
License: MIT License
Can we tone down Gompei's scent :( he smells
highlight add foo
-> adds the pattern foo
to the highlight list. If "foo" appears anywhere in a message, the user will be notifiedhighlight add ^foo$
-> adds the pattern ^foo$
to the highlight list. If a message is sent where the only contents are "foo", the user will be notified.highlight add f([oO0]|\(\)){2}bar
-> adds the pattern .*f([oO0]|\(\)){2}bar.*
to the highlight list. Any message containing "foobar" anywhere with any of the O's uppercase, lowercase, changed to zeros, or replaced with parentheses, will cause the user to be notifiedhighlight remove foo
-> removes the pattern foo
from the highlight list. The user will no longer be notified if "foo" appears anywhere in a messagehighlight block user @Gompei
-> messages sent by the user with the @Gompei will not trigger highlightshighlight unblock user @Gompei
-> messages sent by the user with the @Gompei will now trigger highlights if they match highlight criteriahighlight block channel \#general
-> messages sent to #general will not trigger highlightshighlight unblock channel \#general
-> messages sent to #general will now trigger highlights if they match highlight criteriahighlight test foo bar
-> tests if the string "foo bar" would trigger your highlight criteriahighlight block channel \#general foo
-> blocks the pattern foo
from triggering highlight in #general specificallyhighlight block user @Gompei foo
-> blocks the pattern foo
from triggering highlight by @Gompei specificallyhighlight list
-> displays the highlight list and any associated settingshighlight clear
-> clears the highlight list and any associated settingsadd <pattern>
(adds the provided pattern to the highlight list)remove <pattern>
(removes the provided pattern from the highlight list)list
(displays the highlight list and any associated settings)clear
(clears the highlight list and any associated settings)block
(blocks provided criteria from triggering highlights)
user <user>
(blocks the provided user from triggering highlights)
<pattern>
(blocks the provided user from triggering highlights for the specific pattern. This is optional)channel <user>
(blocks messages in the provided channel from triggering highlights)
<pattern>
(blocks messages in the provided channel from triggering highlights for the specific pattern. This is optional)unblock
(unblocks provided criteria from triggering highlights)
user <user>
(unblocks the provided user from triggering highlights)
<pattern>
(unblocks the provided user from triggering highlights for the specific pattern. This is optional)channel <user>
(unblocks messages in the provided channel from triggering highlights)
<pattern>
(unblocks messages in the provided channel from triggering highlights for the specific pattern. This is optional)test <test string>
(tests whether the provided string will trigger highlights).censor foo
-> adds the pattern foo
to the blacklist. Any message containing the string "foo" anywhere will trigger automod.censor add ^foo$
-> adds the pattern foo
to the blacklist. Any message consisting of only "foo" will trigger automod.censor add f([oO0]|\(\)){2}bar
-> adds the pattern .*f([oO0]|\(\)){2}bar.*
to the blacklist. Any message containing "foobar" anywhere with any of the O's uppercase, lowercase, changed to zeros, or replaced with parentheses, will trigger automod..censor remove ^foo$
-> removes the pattern foo
to the blacklist. Messages consisting of only "foo" will no longer trigger automod.censor list
-> displays the full list of blacklisted patterns.Weather Cog with commands for:
.info server
-> Display information about the server.info channel #general
-> Display information about #general.info role 687392392898543643
-> Display information about the role with ID 687392392898543643.info user 204705074239242240
-> Display information about the user with ID 204705074239242240.mpurge #general 642051421549625395
-> purges all messages posted in #general after and including the message with ID 642051421549625395.mpurge #general-2 642051421549625395
-> produce an error because there is no message with the provided ID in the provided channel.mpurge 567169726250352644-642051421549625395
-> purges all messages posted in channel with ID 567169726250352644 after and including the message with ID 642051421549625395(this is the format that discord gives when you shift+click to get a message ID).mpurge https://ptb.discord.com/channels/567169726250352640/567169726250352644/642051421549625395
-> purges all messages posted after the linked message (inclusive).mpurge https://ptb.discord.com/channels/567169726250352640/567169726250352644/642051421549625395 https://ptb.discord.com/channels/567169726250352640/567169726250352644/642070277655756801
-> purges all messages posted after the first linked message and before the second linked message (inclusive).mpurge https://ptb.discord.com/channels/567169726250352640/567169726250352644/642051421549625395 https://ptb.discord.com/channels/567169726250352640/567182715171110942/743314778134413343
-> produce an error because the start and end messages are not in the same channelYou are about to purge <#> messages from <channel>.
The purge will start at <first purged message link> and end at <last purged message link>.
Are you sure you want to proceed?
.pingspam enable
-> enables automod for pingspam.messagespam disable
-> disables automod for messagespam.attachmentspam criteria 4 5s
-> sets pingspam automod to be triggered when someone sends 4 pings in 5 seconds (if pingspam automod is disabled automod won't trigger, but the criteria will still be set).censor addpunish mute 10m
-> adds a 10 minute mute to the list of actions that will be taken against the offending message/user if pingspam automod is triggered (if pingspam automod is disabled automod won't trigger, but the punishment will still be set).pingspam removepunish delete
-> removes message deletion from the list of actions that will be taken against the offending message/user if pingspam automod is triggered.automod
-> displays all automod settingspingspam
(pinging too many people too fast)
criteria <count> <timespan>
(number of unique pings within specified timespan)messagespam
(sending too many messages too fast)
criteria <count> <timespan>
(number of unique pings within specified timespan)attachmentspam
(sending too many attachments too fast)
criteria <count> <timespan>
(number of unique pings within specified timespan)linkspam
(sending too many links too fast)
criteria <count> <timespan>
(number of unique pings within specified timespan)censor
(sending a message containing a blacklisted phrase)
add <pattern>
adds provided pattern to the phrase blacklistremove <pattern>
removes provided pattern from the phrase blacklistmute <duration>
(mutes the offending user for provided time. Mutes indefinitely if no duration is provided)delete
(deletes offending messages)dm/pm
(privately messages the offending user notifying them they triggered automod, how, and the punishment)message
(same as dm/pm, but sends into channel with offending messages)warn
(warns the offending user, notifying them they triggered automod, how, and the punishment)kick
(kicks the offending user)ban
(bans the offending user for the provided duration. Indefinitely if no duration is provided)softban
(quickly bans and unbans the offending user. This removes the last 48 hours of messages they have sent)alert/defer <channel> <roles>
(pings provided roles in the provided channel that an offense has occurred so that it can be reviewed)Need to update Leaderboards.py to use on raw events so that it can check messages that are updated but not cached.
.suggest this makes a suggestion
-> Makes a suggestion with a unique ID and the description "this makes a suggestion".suggestion deny 1
-> Denies suggestion 1 with no reason.suggestion consider 1 how tho
-> Marks suggestion 1 as considered with the reason "how tho".suggestion approve 1
-> Marks suggestion 1 as approved with no reason.suggestion implemented 1 did it
-> Marks suggestion 1 as implemented with reason "did it".suggestion list
-> lists all suggestions ever made (separated by status).suggestion list denied
lists all suggestions currently marked as denied.suggestion list approved
-> lists all suggestions currently marked as approved.suggestion list active
-> lists all active suggestions (suggestions not currently marked as denied or implemented)deny
-> denied, will not be implementedconsider
-> considered, may or may not be implementedapprove
-> approved, will be implementedimplemented
-> implemented, no more to dolist
-> list all suggestions (list actions follow)
denied
-> list denied suggestionsconsidered
-> list considered suggestionsapproved
-> list approved suggestionsimplemented
-> list implemented suggestionsactive
-> list active suggestions (considered or approved)inactive
-> list inactive suggestions (denied or implemented).tpurge #general 10am
-> purges all messages posted in #general between 10am and current time.tpurge #general 10am 1pm
-> purges all messages posted in #general between 10am and 1pm.tpurge #general 1000 1300
-> purges all messages posted in #general between 10am (1000) and 1pm (1300).tpurge #general 1603879200
-> purges all messages posted in #general between 1603879200 (10/28/2020 @ 10:00am UTC) and current time.tpurge #general 1603879200 1603976400
-> purges all messages posted in #general between 1603879200 (10/28/2020 @ 10:00am UTC) and 1603976400 (10/29/2020 @ 1:00pm UTC).tpurge #general 1h
-> purges all messages posted in #general in the last hourYou are about to purge <#> messages from <channel> between <start time> and <end time>.
The purge will start at <first purged message link> and end at <last purged message link>.
Are you sure you want to proceed?
.restrict ban
-> lists the current restriction settings for the ban
command (whether its in whitelist or blacklist mode, the users/roles on the list.restrict ban whitelist
-> sets the ban
command to the whitelist restriction type for all types.restrict roll blacklist role
-> sets the roll
command to the blacklist restriction type for roles.unrestrict kick role 742118136458772551
-> unrestricts the usage of .kick
for the role with ID 742118136458772551. If kick
is set to blacklist mode for roles this removes 742118136458772551 from the blacklist. If whitelist mode this adds 742118136458772551 to the whitelist..restrict ban role 742118136458772551
-> restricts the usage of .ban
for role with ID 742118136458772551. If ban
is set to blacklist mode for roles this adds 742118136458772551 to the blacklist. If whitelist mode this removes 742118136458772551 from the whitelist..restrict roll user 204705074239242240
-> restricts the usage of .roll
for user with ID 204705074239242240..restrict moderation whitelist
-> sets the moderation category of commands to the whitelist restriction type.restrict roll channel 567179438047887381
-> restricts the usage of .roll
in the.unrestrict moderation role 742118136458772551
-> unrestricts the usage of commands in the moderation category for the role with ID 742118136458772551..restrict ban clear
-> clears restriction settings for .ban
, emptying any blacklists or whitelists.restrict ban clear role
-> clears restriction settings roles for .ban
, emptying the role blacklist/whitelist.restrict ban unset
-> unsets restriction settings for .ban
. This means Gompei will refer down to the category's settings (in this case, the Moderation category) until settings are set again for .ban
.restrict ban unset user
-> unsets restriction settings for .ban
for users. This means Gompei will refer down to the category's settings on the user basis (in this case, the Moderation category) until user settings are set again for .ban
.restrict ALL role 742118136458772551
-> restricts the usage of all commands from the role with ID 742118136458772551..unrestrict ALL channel 567179438047887381
-> unrestricts the usage of all commands in the channel with ID 567179438047887381.ALL
is a super-category referring to ALL commands. This is basically the default for everything if command- or category-specific settings are unset. No part of ALL can be unset (most you can do is an empty blacklist or whitelist, which would give everyone full permissions or no permissions, respectively, if everything else is unset)restrict/unrestrict
base command. Latter is used to unrestrict usage
<command/category/ALL>
command/category to change restriction settings for. List current settings if no additional parameters
whitelist/blacklist/clear/unset
sets the command restriction setting to whitelist, blacklist, clear (clears the current list), or unset (refer to higher lower tier of heirarchy). Changes the setting for roles, users, and channels if no additional parameters
role
sets role restrictions to blacklist or whitelist depending on previous parameteruser
sets user restrictions to blacklist or whitelist depending on previous parameterchannel
sets channel restrictions to blacklist or whitelist depending on previous parameteruser/channel/role <id>
adds or removes the provided ID from its corresponding whitelist/blacklist depending on if restrict
or unrestrict
were called.restrict
or .unrestrict
should always provide a confirmation prompt saying something like You are about to [add/remove] [user/role] <ID> [to/from] the [whitelist/blacklist] for the command <command>. This will [restrict/unrestrict] their access to the command. Confirm?
ALL
, which should be set to an empty whitelist (so only admins can use it). This avoids a shortcoming of Carl bot, which is that it has a lot of commands enabled by default for everyone which you may not want or probably shouldn't be..unrestrict <command> permission manage-messages
which will allow the command to be used by any role or user that has the manage-messages permission.ban
is unset for users, has a whitelist containing Moderators, and an empty whitelist for channels (so the command can be used in any channel, but only by moderators). Suppose the Moderation category has a whitelist for users containing the user UserFoo, an empty blacklist for roles, and an empty whitelist for channels (so UserFoo alone can use any Moderation command in any channel). UserFoo is not a moderator. Because UserFoo is whitelisted in the user list for the Moderation category and the user list is unset for ban
, UserFoo CAN use ban
despite not being a moderator. Basically, having an unset list is the same as saying "use the list for whatever is lower in the hierarchy."kick
that only allows the the command to be used by moderators, but set a user blacklist so that a specific mod cannot use it)README needs to be updated and setup page needs to be updated to show how to setup the bot with intents.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.