feat(docs): bunch of updates and changes and crap
All checks were successful
Pylint / Pylint (3.11) (push) Successful in 43s

This commit is contained in:
Seaswimmer 2024-01-04 21:57:54 -05:00
parent dd4e319a0a
commit b7da03f701
Signed by: cswimr
GPG key ID: 1EBC234EEDA901AE
9 changed files with 369 additions and 113 deletions

4
.docs/.markdownlint.json Normal file
View file

@ -0,0 +1,4 @@
{
"MD013": false,
"MD007": { "indent": 4 }
}

View file

@ -1,95 +0,0 @@
# Aurora
Aurora is a fully-featured moderation system. It is heavily inspired by GalacticBot, and is designed to be a more user-friendly alternative to Red's core Mod cogs.
## Installation
```bash
[p]repo add seacogs https://coastalcommits.com/SeaswimmerTheFsh/SeaCogs
[p]cog install seacogs aurora
[p]cog load aurora
```
## Commands List
### Slash Commands
#### Moderation Commands
- `/note` - Add a note to a user
- Arguments:
- `target` - Accepts User IDs and mentions - This is who you're adding a note to
- `reason` - Reason for adding a note to the user
- `silent` - ***Optional*** - Toggles if the bot will try to send a direct message to the targeted user - Set to the value set by the `[p]moderationset dm` command by default
- `/warn` - Warn a user
- Arguments:
- `target` - Accepts User IDs and mentions - This is who you're warning
- `reason` - Reason for warning the user
- `silent` - ***Optional*** - Toggles if the bot will try to send a direct message to the targeted user - Set to the value set by the `[p]moderationset dm` command by default
- `/mute` - Mute a member - Doesn't work if the member is already muted!
- Arguments:
- `target` - Accepts User IDs and mentions - Must be in the discord server - This is who you're muting
- `duration` - Accepts any combination of duration units, as shown below - Maximum duration of [28 days](https://discord.com/developers/docs/resources/guild#modify-guild-member-json-params)
- ``2 d``
- ``2 days``
- ``1w``
- ``1 week``
- ``1w 4 days 3h 67minutes``
- ``2w5d7h24m``
- `reason` - Reason for muting the member
- `silent` - ***Optional*** - Toggles if the bot will try to send a direct message to the targeted member - Set to the value set by the `[p]moderationset dm` command by default
- `/unmute` - Unmute a member - Only works if the member is muted!
- Arguments:
- `target` - Accepts User IDs and mentions - Must be in the discord server - This is who you're unmuting
- `reason` - ***Optional*** - Reason for unmuting the member
- `silent` - ***Optional*** - Toggles if the bot will try to send a direct message to the targeted member - Set to the value set by the `[p]moderationset dm` command by default
- `/ban` - Ban a user - Doesn't work if the user is already banned
- Arguments:
- `target` - Accepts User IDs and mentions - This is who you're banning
- `reason` - Reason for banning the user
- `duration` - ***Optional*** - Accepts any combination of duration units, as shown in the mute command
- `silent` - ***Optional*** - Toggles if the bot will try to send a direct message to the targeted user - Set to the value set by the `[p]moderationset dm` command by default
- `/unban` - Unban a user - Only works if the user is banned!
- Arguments:
- `target` - Accepts User IDs and mentions - This is who you're unbanning
- `reason` - ***Optional*** - Reason for unbanning the user
- `silent` - ***Optional*** - Toggles if the bot will try to send a direct message to the targeted user - Set to the value set by the `[p]moderationset dm` command by default
#### Case Commands
- `/case` - Check the details of a specific case, by case number
- Arguments:
- `case_number` - Accepts case numbers - See `/history` to get a list of these
- `ephemeral` - ***Optional*** - Toggles if the response message will be hidden or not - Defaults to `false`
- `/history` - Checks the list of cases for a target, a moderator, or for the server
- Arguments - *All arguments of this command are optional*:
- `target` - Accepts User IDs and mentions - This is whose moderations you're querying - overrides `moderator` if both are given
- `moderator` - Accepts User IDs and mentions - This is the moderator whose moderations you're querying
- `pagesize` - Determines how many cases to list per `page` - Defaults to `5` - Maximum of `25`
- `page` - Determines which page to check
- `ephemeral` - Toggles if the response message will be hidden or not - Defaults to `false`
- `export` - Exports the moderation history of the entire server in a `.json` file - Defaults to `false`
- Notes:
- If `target` and `moderator` are not used, this command will query by all moderations in the server.
- `/resolve` - Resolves a case/moderation
- Arguments:
- `case_number` - Accepts case numbers - See `/history` to get a list of these
- `reason` - ***Optional*** - Reason for resolving the case
- Notes:
- If a `TEMPBAN` or `MUTE` is resolved before it expires, or a `BAN` is resolved, the targeted user will be unbanned/unmuted.
- Please resolve cases instead of unmuting/unbanning!
### Text Commands
- `[p]moderationset`
- This command handles the configuration for the Moderation cog
- Sub-commands:
- `[p]moderationset dm` - Server Administrator only - Per Guild
- This command toggles if the `silent` argument in Moderation slash commands will default to `true` or `false`. Defaults to `false`.
- `[p]moderationset ignorebots` - Server Administrator only - Per Guild
- This command toggles if the Moderation cog will automatically log moderations from other bots. Defaults to `false`.
- `[p]moderationset mysql` - Bot Owner only - Per Bot
- This command sends a direct message to the user with a modal to configure the MySQL settings.
- **This cog <ins>REQUIRES</ins> a configured MySQL database to function.**
- `[p]timedeltaconvert`
- Uses the same logic as `/mute` and `/unban` to generate timedeltas from human-readable input.

View file

@ -0,0 +1,52 @@
# Case Commands
/// admonition | These commands are slash commands.
type: warning
Please make sure to enable them with [`[p]slash enable <command>`](https://docs.discord.red/en/stable/cog_guides/core.html#slash-enable), then sync them with [`[p]slash sync`](https://docs.discord.red/en/stable/cog_guides/core.html#slash-sync).
///
## history
/// admonition | All of the arguments for this command are optional.
type: info
///
- Usage: `/history [target] [moderator] [pagesize] [page] [ephemeral] [inline] [export]`
- If both `target` and `moderator` are not present, all moderations for the server will be queried.
- `target:` User whose infractions to query, overrides moderator if both are given
- `moderator:` Moderator whose infractions to query
- `pagesize:` Amount of infractions to list per page
- `page:` Page to select
- `ephemeral:` Hide the command response
- `inline:` Display infractions in a grid arrangement
- `export:` Exports the server's entire moderation history to a JSON file
List previous infractions.
## resolve
- Usage: `/resolve <case> [reason]`
- `case:` (Required) Case number of the case you're trying to resolve
- `reason:` (Optional) Reason for resolving case
Resolve a specific case.
## case
- Usage: `/case <case> [ephemeral] [evidenceformat] [changes] [export]`
- `case:` (Required) What case are you looking up?
- `ephemeral:` (Optional) Hide the command response
- `evidenceformat:` (Optional) …
- `changes:` (Optional) List the changes made to the case
- `export:` (Optional) Export the case to a JSON file or codeblock
Check the details of a specific case.
## edit
- Usage: `/edit <case> <reason> [duration]`
- `case:` (Required) What case are you editing?
- `reason:` (Required) What is the new reason?
- `duration:` (Optional) What is the new duration? Does not reapply the moderation if it has already expired.
Edit the reason of a specific case.

View file

@ -0,0 +1,204 @@
# Configuration
## auroraset
- Usage: `[p]auroraset`
- Aliases: `moderationset, modset, moderationsettings, aurorasettings, and auroraconfig`
Manage moderation commands.
### auroraset ignorebots
- Usage: `[p]auroraset ignorebots`
- Restricted to: `ADMIN`
Toggle if the cog should ignore other bots' moderations.
### auroraset user
- Usage: `[p]auroraset user`
Manage configurations for user configuration options.
#### auroraset user history
- Usage: `[p]auroraset user history`
Manage configuration for the /history command.
##### auroraset user history inline
- Usage: `[p]auroraset user history inline`
Manage configuration for the /history command's inline argument.
###### auroraset user history inline toggle
- Usage: `[p]auroraset user history inline toggle <enabled>`
Enable the /history command's inline argument by default.
##### auroraset user history inline pagesize
- Usage: `[p]auroraset user history inline pagesize <pagesize>`
Set the amount of cases to display per page.
#### auroraset user history pagesize
- Usage: `[p]auroraset user history pagesize <pagesize>`
Set the amount of cases to display per page.
#### auroraset user history ephemeral
- Usage: `[p]auroraset user history ephemeral <enabled>`
- Aliases: `hidden and hide`
Toggle if the /history command should be ephemeral.
### auroraset user autoevidence
- Usage: `[p]auroraset user autoevidence <enabled>`
Toggle if the evidenceformat codeblock should be sent automatically.
## auroraset server
- Usage: `[p]auroraset server`
- Restricted to: `ADMIN`
Manage default configurations for user configuration options, per server.
### auroraset server history
- Usage: `[p]auroraset server history`
- Restricted to: `ADMIN`
Manage configuration for the /history command.
#### auroraset server history inline
- Usage: `[p]auroraset server history inline`
- Restricted to: `ADMIN`
Manage configuration for the /history command's inline argument.
##### auroraset server history inline pagesize
- Usage: `[p]auroraset server history inline pagesize <pagesize>`
- Restricted to: `ADMIN`
Set the amount of cases to display per page.
##### auroraset server history inline toggle
- Usage: `[p]auroraset server history inline toggle <enabled>`
- Restricted to: `ADMIN`
Enable the /history command's inline argument by default.
#### auroraset server history ephemeral
- Usage: `[p]auroraset server history ephemeral <enabled>`
- Restricted to: `ADMIN`
- Aliases: `hidden and hide`
Toggle if the /history command should be ephemeral.
#### auroraset server history pagesize
- Usage: `[p]auroraset server history pagesize <pagesize>`
- Restricted to: `ADMIN`
Set the amount of cases to display per page.
### auroraset server autoevidence
- Usage: `[p]auroraset server autoevidence <enabled>`
Toggle if the evidenceformat codeblock should be sent automatically.
## auroraset showmoderator
- Usage: `[p]auroraset showmoderator`
- Restricted to: `ADMIN`
Toggle if the cog should show the moderator in the case embed when dming a user.
## auroraset immunity
- Usage: `[p]auroraset immunity`
- Restricted to: `ADMIN`
Manage configuration for immune roles.
### auroraset immunity add
- Usage: `[p]auroraset immunity add <role>`
- Restricted to: `ADMIN`
Add a role to the immune roles list.
### auroraset immunity remove
- Usage: `[p]auroraset immunity remove <role>`
- Restricted to: `ADMIN`
Remove a role from the immune roles list.
### auroraset immunity list
- Usage: `[p]auroraset immunity list`
- Restricted to: `ADMIN`
List all immune roles.
## auroraset permissions
- Usage: `[p]auroraset permissions`
- Restricted to: `ADMIN`
Toggle whether the bot will check for discord permissions.
## auroraset logchannel
- Usage: `[p]auroraset logchannel [channel=None]`
- Restricted to: `ADMIN`
Set a channel to log infractions to.
## auroraset import
- Usage: `[p]auroraset import`
- Restricted to: `ADMIN`
Import moderations from other bots.
### auroraset import galacticbot
- Usage: `[p]auroraset import galacticbot`
- Restricted to: `ADMIN`
Import moderations from GalacticBot.
### auroraset import aurora
- Usage: `[p]auroraset import aurora`
- Restricted to: `ADMIN`
Import moderations from another bot using Aurora.
## auroraset dm
- Usage: `[p]auroraset dm`
- Restricted to: `ADMIN`
Toggle automatically messaging moderated users.<br/><br/>This option can be overridden by specifying the `silent` argument in any moderation command.
## auroraset list
- Usage: `[p]auroraset list`
- Aliases: `view and show`
List all moderation settings.
## auroraset blacklist
- Usage: `[p]auroraset blacklist`
- Restricted to: `ADMIN`
Manage configuration for the /blacklist command.
### auroraset blacklist list
- Usage: `[p]auroraset blacklist list`
- Restricted to: `ADMIN`
List all blacklist types.
### auroraset blacklist remove
- Usage: `[p]auroraset blacklist remove <role>`
- Restricted to: `ADMIN`
Remove a role's blacklist type.
### auroraset blacklist add
- Usage: `[p]auroraset blacklist add <role> <duration>`
- Restricted to: `ADMIN`
Add a role to the blacklist.
# timedeltaconvert
- Usage: `[p]timedeltaconvert <duration>`
- Aliases: `tdc`
This command converts a duration to a [`timedelta`](https://docs.python.org/3/library/datetime.html#datetime.timedelta) Python object.<br/><br/>**Example usage**<br/>`[p]timedeltaconvert 1 day 15hr 82 minutes 52s`<br/>**Output**<br/>`1 day, 16:22:52`

11
.docs/aurora/index.md Normal file
View file

@ -0,0 +1,11 @@
# Aurora
Aurora is a fully-featured moderation system. It is heavily inspired by GalacticBot, and is designed to be a more user-friendly alternative to Red's core Mod cogs.
## Installation
```bash
[p]repo add seacogs https://coastalcommits.com/SeaswimmerTheFsh/SeaCogs
[p]cog install seacogs aurora
[p]cog load aurora
```

View file

@ -0,0 +1,82 @@
# Moderation Commands
/// admonition | These commands are slash commands.
type: warning
Please make sure to enable them with [`[p]slash enable <command>`](https://docs.discord.red/en/stable/cog_guides/core.html#slash-enable), then sync them with [`[p]slash sync`](https://docs.discord.red/en/stable/cog_guides/core.html#slash-sync).
///
## note
- Usage: `/note <target> <reason> [silent]`
- `target:` (Required) Who are you noting?
- `reason:` (Required) Why are you noting this user?
- `silent:` (Optional) Should the user be messaged?
Add a note to a user.
## warn
- Usage: `/warn <target> <reason> [silent]`
- `target:` (Required) Who are you warning?
- `reason:` (Required) Why are you warning this user?
- `silent:` (Optional) Should the user be messaged?
Warn a user.
## blacklist
- Usage: `/blacklist <target> <role> <reason> [silent]`
- `target:` (Required) Who are you blacklisting?
- `role:` (Required) What blacklist type are you applying to the target?
- `reason:` (Required) Why are you blacklisting this user?
- `silent:` (Optional) Should the user be messaged?
Add a blacklist role to a user.
## mute
- Usage: `/mute <target> <duration> <reason> [silent]`
- `target:` (Required) Who are you unbanning?
- `duration:` (Required) How long are you muting this user for?
- `reason:` (Required) Why are you unbanning this user?
- `silent:` (Optional) Should the user be messaged?
Mute a user.
## unmute
- Usage: `/unmute <target> [reason] [silent]`
- `target:` (Required) Who are you unmuting?
- `reason:` (Optional) Why are you unmuting this user?
- `silent:` (Optional) Should the user be messaged?
Unmute a user.
## kick
- Usage: `/kick <target> <reason> [silent]`
- `target:` (Required) Who are you kicking?
- `reason:` (Required) Why are you kicking this user?
- `silent:` (Optional) Should the user be messaged?
Kick a user.
## ban
- Usage: `/ban <target> <reason> [duration] [delete_messages] [silent]`
- `target:` (Required) Who are you banning?
- `reason:` (Required) Why are you banning this user?
- `duration:` (Optional) How long are you banning this user for?
- `delete_messages:` (Optional) How many days of messages to delete?
- `silent:` (Optional) Should the user be messaged?
Ban a user.
## unban
- Usage: `/unban <target> [reason] [silent]`
- `target:` (Required) Who are you unbanning?
- `reason:` (Optional) Why are you unbanning this user?
- `silent:` (Optional) Should the user be messaged?
Unban a user.

View file

@ -12,16 +12,16 @@ Nerdify allows you to nerdify other people's text.
## Commands ## Commands
### `[p]nerdify` ### nerdify
::: nerdify.nerdify.Nerdify.nerdify - Usage: `[p]nerdify [text]`
- Aliases: `nerd`
Nerdify the replied to message, previous message, or your own text.
If `[text]` is not provided, the bot will try to nerdify either the previous message or the replied to message, if the invocation message is a reply.
## Method Reference ## Method Reference
### `nerdify_text`
::: nerdify.nerdify.Nerdify.nerdify_text ::: nerdify.nerdify.Nerdify.nerdify_text
### `type_message`
::: nerdify.nerdify.Nerdify.type_message ::: nerdify.nerdify.Nerdify.type_message

View file

@ -11,13 +11,17 @@ site_description: Documentation for my Red-DiscordBot Cogs.
nav: nav:
- Home: index.md - Home: index.md
- Aurora: aurora.md - Aurora:
- Home: aurora/index.md
- Moderation Commands: aurora/moderation-commands.md
- Case Commands: aurora/case-commands.md
- Configuration: aurora/configuration.md
- Nerdify: nerdify.md - Nerdify: nerdify.md
plugins: plugins:
- git-authors - git-authors
- search - search
# - social - social
- git-revision-date-localized: - git-revision-date-localized:
enable_creation_date: true enable_creation_date: true
type: timeago type: timeago
@ -30,7 +34,8 @@ plugins:
docstring_options: docstring_options:
ignore_imit_summary: true ignore_imit_summary: true
summary: true summary: true
show_root_toc_entry: false show_root_toc_entry: true
show_root_heading: true
filters: filters:
- "!^___" - "!^___"
@ -63,6 +68,7 @@ theme:
- content.code.annotate - content.code.annotate
- content.code.copy - content.code.copy
- navigation.instant - navigation.instant
- navigation.tabs
- search.suggest - search.suggest
- search.highlight - search.highlight
- search.share - search.share

View file

@ -21,15 +21,7 @@ class Nerdify(commands.Cog):
@commands.command(aliases=["nerd"]) @commands.command(aliases=["nerd"])
async def nerdify(self, ctx: commands.Context, *, text: Optional[str] = None) -> None: async def nerdify(self, ctx: commands.Context, *, text: Optional[str] = None) -> None:
"""Nerdify the replied to message, previous message, or your own text. """Nerdify the replied to message, previous message, or your own text."""
Example:
``[p]nerdify hello world!``
> "hello world!" :nerd:
Args:
text: The text to nerdify. If not provided, the bot will try to nerdify either the previous message or the replied to message, if the invocation message is a reply.
"""
if not text: if not text:
if hasattr(ctx.message, "reference") and ctx.message.reference: if hasattr(ctx.message, "reference") and ctx.message.reference:
with suppress( with suppress(