Modmail

A Discord bot that functions as a shared inbox between staff and members, similar to Reddit's Modmail.

AGPL-3.0 License

Stars
1.6K
Committers
61

Bot releases are hidden (Show)

Modmail - Dev Release

Published by Taaku18 almost 5 years ago

  • Ability to delete notes when providing their ID. (Thanks to papiersnipper PR#402)
  • Ability to delete log entries. (Thanks to papiersnipper PR#402)
  • Existing aliases can be used when creating new aliases. (Thanks to papiersnipper PR#402)
Modmail - Dev Release

Published by Taaku18 almost 5 years ago

Nothing New.

Modmail - Dev Release

Published by Taaku18 almost 5 years ago

Fixed

  • Embed author links used to be inaccessible in many cases, now:
  • ?anonreply, ?reply, and ?note in the thread channel will link to the sender's profile.
  • ?reply and recipient's DM will also link the sender's profile.
  • ?anonreply in DM channel will link to the first channel of the main guild.
Modmail - Dev Release

Published by Taaku18 almost 5 years ago

Important

  • Recommend all users to unblock and re-block all blocked users upon updating to this release.

Added

  • Three new config vars:
    • enable_plugins (yes/no default yes)
      • When set to no, plugins will not be loaded into the bot.
    • error_color (color format, defaults discord red)
      • The color of error messages.
    • anon_reply_without_command (yes/no default no) (Thanks to papiersnipper PR#288)
      • When set, all non-command messages sent to thread channels are forwarded to the recipient anonymously without the need of ?anonreply.
      • This config takes precedence over reply_without_command.
  • ?logs responded [user] command, it will show all logs that the user has sent an reply. (Thanks to papiersnipper PR#288)
    • user when not provided, defaults to the user who ran the command.
  • Open threads in limbo now auto closes if the channel cannot be found. This check is done every time the bot restarts.

Changed

  • ?contact no longer send the "thread created" message to where the command is ran, instead, it's now sent to the newly created thread channel. (Thanks to DAzVise)
  • Automatically delete notes command ?note when there's no attachments attached.
  • Plugins update (mostly internal).
    • git is no longer used to install plugins, it now downloads through zip files.
    • ?plugins enabled renamed to ?plugins loaded while enabled is still an alias to that command.
    • Reorganised plugins folder structure.
    • Logging / plugin-related messages changes.
    • Updating one plugin will not update all other plugins (plugins are no longer separated by repos, but the plugin name itself).
  • Help command is in alphabetical order grouped by permissions.
  • Notes are no longer always blurple, its set to MAIN_COLOR now.
  • Added ?plugins update for updating all installed plugins.
  • Reintroduce flake8 and use bandit for security issues detection.
  • Add travis checks for 3.6 in Linux and 3.7 for MacOS and Windows.
  • Eval commands are logged in debug logs.
  • Presence updates 30 minutes instead of 45 now.
  • Fixed an assortment of problems to do with block.

Internal

  • Reworked config.get and config.set, it feeds through the converters before setting/getting.
    • To get/set the raw value, access through config[].
  • Prerelease naming scheme is now x.x.x-devN.
  • trigger_typing has been moved to core.utils.trigger_typing, original location is deprecated.
  • Simpler status and activity logic.
Modmail - Dev Release

Published by Taaku18 almost 5 years ago

Added

  • anon_reply_without_command (yes/no default no) (Thanks to papiersnipper PR#288)
    • When set, all non-command messages sent to thread channels are forwarded to the recipient anonymously without the need of ?anonreply.
    • This config takes precedence over reply_without_command.
  • ?logs responded [user] command, it will show all logs that the user has sent an reply. (Thanks to papiersnipper PR#288)
    • user when not provided, defaults to the user who ran the command.
Modmail - Dev Release

Published by Taaku18 almost 5 years ago

Added

  • Two new config vars:
    • ENABLE_PLUGINS (yes/no default yes), when set to no, plugins will not be loaded into the bot.
    • ERROR_COLOR (color format, defaults discord red), the color of error messages.

Changed

  • ?contact no longer send the "thread created" message to where the command is ran, instead, it's now sent to the newly created thread channel. (Thanks to DAzVise)
  • Plugins update (mostly internal).
    • git is no longer used to install plugins, it now downloads through zip files.
    • ?plugins enabled renamed to ?plugins loaded while enabled is still an alias to that command.
    • Reorganized plugins folder structure.
    • Logging / plugin-related messages change.
    • Updating one plugin will not update all other plugins (plugins are no longer separated by repos, but the plugin name itself).
  • Help command is in alphabetical order grouped by permissions.
  • Notes are no longer always blurple, its set to MAIN_COLOR now.

Internal

  • Reworked config.get and config.set, it feeds through the converters before setting/getting.
    • To get/set the raw value, access through config[].
  • Prerelease naming scheme is now x.x.x-dev.
Modmail - Major Release

Published by Taaku18 almost 5 years ago

Important

  • Recommend all users to unblock and re-block all blocked users upon updating to this release.

Added

  • Three new config vars:
    • enable_plugins (yes/no default yes)
      • When set to no, plugins will not be loaded into the bot.
    • error_color (color format, defaults discord red)
      • The color of error messages.
    • anon_reply_without_command (yes/no default no) (Thanks to papiersnipper PR#288)
      • When set, all non-command messages sent to thread channels are forwarded to the recipient anonymously without the need of ?anonreply.
      • This config takes precedence over reply_without_command.
  • ?logs responded [user] command, it will show all logs that the user has sent an reply. (Thanks to papiersnipper PR#288)
    • user when not provided, defaults to the user who ran the command.
  • Open threads in limbo now auto closes if the channel cannot be found. This check is done every time the bot restarts.
  • Ability to disable new threads from getting created.
    • ?disable
  • Ability to fully disable Modmail DM.
    • ?disable all
  • To re-enable DM: ?enable, and to see the current status: ?isenable.
  • This disabled Modmail interface is customizable with the following config vars:
    • disabled_new_thread_title
    • disabled_new_thread_response
    • disabled_new_thread_footer
    • disabled_current_thread_title
    • disabled_current_thread_response
    • disabled_current_thread_footer
  • Ability to delete notes when providing their ID. (Thanks to papiersnipper PR#402)
  • Ability to delete log entries. (Thanks to papiersnipper PR#402)

Changed

  • ?contact no longer send the "thread created" message to where the command is ran, instead, it's now sent to the newly created thread channel. (Thanks to DAzVise)
  • Automatically delete notes command ?note when there are no attachments attached.
  • Embed author links used to be inaccessible in many cases, now:
    • ?anonreply, ?reply, and ?note in the thread channel will link to the sender's profile.
    • ?reply and recipient's DM will also link the sender's profile.
    • ?anonreply in DM channel will link to the first channel of the main guild.
  • Plugins update (mostly internal).
    • git is no longer used to install plugins, it now downloads through zip files.
    • ?plugins enabled renamed to ?plugins loaded while enabled is still an alias to that command.
    • Reorganized plugins folder structure.
    • Logging / plugin-related messages change.
    • Updating one plugin will not update all other plugins (plugins are no longer separated by repos, but the plugin name itself).
  • Help command is in alphabetical order grouped by permissions.
  • Notes are no longer always blurple, it's set to MAIN_COLOR now.
  • Added ?plugins update for updating all installed plugins.
  • Reintroduce flake8 and use bandit for security issues detection.
  • Add travis checks for 3.6 in Linux and 3.7 for MacOS and Windows.
  • Eval commands are logged in debug logs.
  • Presence updates 30 minutes instead of 45 now.
  • Fixed an assortment of problems to do with block.
  • Existing aliases can be used when creating new aliases. (Thanks to papiersnipper PR#402)

Internal

  • Reworked config.get and config.set, it feeds through the converters before setting/getting.
    • To get/set the raw value, access through config[].
  • Prerelease naming scheme is now x.x.x-devN.
  • trigger_typing has been moved to core.utils.trigger_typing, the original location is deprecated.
  • Simpler status and activity logic.
  • New logging logic.
Modmail - Security Update

Published by Taaku18 almost 5 years ago

Important

  • Supporter permission users used to be able to "hack" snippets to reveal all your config vars, including your token and MongoURI.
  • Implemented some changes to address this bug:
    • All customizable variables used in snippets, close messages, etc, using the {} syntax, now forbids chaining 2 or more attributes and attributes that starts with _.
  • It is advised to update to this version.
  • If you felt your credentials have been leaked, consider changing your bot token / mongo uri.
Modmail - Bug Fix

Published by Taaku18 almost 5 years ago

Fixed

  • Can't set hex for main_color, recipient_color, etc.

Added

  • Discord colors by default when addressing them by names.
Modmail - Stable Release

Published by Taaku18 almost 5 years ago

Added

  • Ability to change permission levels of individual commands.
    • See ?permissions override for more information.
  • thread_move_notify and thread_move_response to notify recipients if a thread is moved. (Thanks to Flufster PR#360)
  • IDs of messages sent to Modmail are now viewable. (Thanks to Flufster PR#360)

Fixed

  • ?help <some sub command>, will return Perhaps you meant: <some sub command>, now it's fixed.
    • For example, ?help add used to return Perhaps you meant: add, now it wouldn't do this.
  • Aliases and Permissions command names are always saved lowercase now.
  • An improved Dockerfile.

Internal

  • Use regex to parse Changes, Added, Fixed, etc and description.
  • Adds PermissionLevel.INVALID when commands don't have a permission level.
Modmail - Bug Fix for Windows Users

Published by Taaku18 almost 5 years ago

Fixed

  • An issue when reading config_help.json for Windows users due to an encoding problem.
Modmail - Major Release

Published by Taaku18 almost 5 years ago

Breaking

  • disable_recipient_thread_close is removed, a new configuration variable recipient_thread_close replaces it which defaults to False.
  • Truthy and falsy values for binary configuration variables are now interpreted respectfully.
  • LOG_URL_PREFIX cannot be set to "NONE" to specify no additional path in the future, "/" is the new method.

Added

  • ?sfw, mark a thread as "safe for work", undos ?nsfw.
  • New config variable, thread_auto_close_silently, when set to a truthy value, no message will be sent when thread is auto-closed.
  • New configuration variable thread_self_closable_creation_footer — the footer when recipient_thread_close is enabled.
  • Added a minimalistic version of requirements.txt (named requirements.min.txt) that contains only the absolute minimum of Modmail.
    • For users having trouble with pipenv or any other reason.
  • Multi-step alias, see ?help alias add. Public beta testing, might be unstable.
  • Misc commands without cogs are now displayed in ?help.
  • ?help works for alias and snippets.
  • ?config help <config-name> shows a help embed for the configuration.
  • Support setting permissions for sub commands.
  • Support numbers (1-5) as substitutes for Permission Level REGULAR - OWNER in ?perms sub commands.

Changes

  • thread_auto_close_response has a configurable variable {timeout}.
  • ?snippet is now the default command name instead of ?snippets (?snippets is still usable). This is to make this consistent with ?alias/?aliases.
  • colorama is no longer a necessity, this is due to some unsupported OS.
  • Changelog command can now take a version argument to jump straight to specified version.
  • ?plugin enabled results are now sorted alphabetically.
  • ?plugin registry results are now sorted alphabetically, helps user find plugins more easily.
  • ?plugin registry page-number plugin registry can specify a page number for quick access.
  • A reworked interface for ?snippet and ?alias.
    • Add an ?snippet raw <name> command for viewing the raw content of a snippet (escaped markdown).
    • Add an ?alias raw <name> command for viewing the raw content of a alias (escaped markdown).
  • The placeholder channel for the streaming status changed to https://www.twitch.tv/discordmodmail/.
  • Removed unclear rm alias for some remove commands.
  • Paginate ?config options.
  • All users configured with a permission level greater than REGULAR has access to the main Modmail category.
    • Category overrides also changes when a level is removed or added to a user or role.
  • @everyone is now accepted for ?perms add.

Fixes

  • ?notify no longer carries over to the next thread.
  • discord.NotFound errors for on_raw_reaction_add.
  • mod_typing and user_typing (user_typing is now by-design to show) will no longer show when user is blocked.
  • Better ?block usage message.
  • Resolves errors when message was sent by mods after thread is closed somehow.
  • Recipient join/leave server messages are limited to only the guild set by GUILD_ID.
  • When creating snippets and aliases, it now checks if another snippets/aliases with the same name exists.
  • Was looking for config.json in the wrong directory.

Internal

  • Removed supporting code for GitHub interaction.
  • All default config values moved to core/config.py.
  • config.cache is no longer accessible, use config['key'] for getting, config['key'] = value for setting, config.remove('key') for removing.
  • Dynamic attribute for configs are removed, must use config['key'] or config.get('key').
  • Removed helper functions info() and error() for formatting logging, it's formatted automatically now.
  • Bumped discord.py version to 1.2.3.
  • Use discord tasks for metadata loop.
  • More debug based logging.
  • Reduce redundancies in ?perms sub commands.
  • paginator been split into EmbedPaginatorSession and MessagePaginatorSession, both subclassing PaginatorSession.
Modmail - Alias and Snippet Edit

Published by Taaku18 almost 5 years ago

Added

  • New commands, ?alias edit <name> <target> and ?snippets edit <name> <target>.
    • They can be used to edit aliases and snippets respectively.
Modmail - Blocked Whitelist

Published by Taaku18 almost 5 years ago

Added

  • New command, ?blocked whitelist <user>, this command prevents users from getting blocked by any means.

Changed

  • Removed some aliases from ?oauth.
Modmail - Bug Fix

Published by Taaku18 almost 5 years ago

Fixed

  • A lot of bugs with thread_auto_close 😅
Modmail - Major Release

Published by Taaku18 almost 5 years ago

Added

  • Sponsors command that will list sponsors.
  • An alert will now be sent to the log channel if a thread channel fails to create. This could be due to a variety of problems such as insufficient permissions or the category channel limit is met.
  • Threads will close automatically after some time when thread_auto_close is set.
  • Custom closing message can be set with thread_auto_close_response.

Breaking Changes

  • Removed autoupdate functionality and the ?update command in favour of the Pull app.

Read more about updating your bot here

Changed

  • Channel names now can contain unicode characters.
  • Debug logs are now located in a unique file for each bot. (Internal change)
  • Default cogs always appear first in the help command now.

Fixed

  • Editing notes now works, minor bug with edit command is fixed.
  • Bug in the ?oauth command where the response message fails to send when an ID is provided.
  • Plugin requirement installation now works in virtual environments
Modmail - Bug Fix

Published by Taaku18 almost 5 years ago

Fixed

Fixed a bug with branches and ?plugin update.

Modmail - Support Branch in Plugin Add

Published by Taaku18 almost 5 years ago

Added

Branch support for ?plugin add and in registry. Typically for developers.

Modmail - Pinned Notes, Add "Mutual Servers" Section

Published by Taaku18 almost 5 years ago

Added

Added a "Mutual servers" field to the genesis embed if:
a) The user is not in the main guild.
b) The user shares more than 1 server with the bot.

Changed

Notes taken with the ?note command are now automatically pinned within the thread channel.

Modmail - Paginate blocked Command

Published by Taaku18 almost 5 years ago

Added

Added a 🛑 reaction to the paginators to delete the embed.

Fixed

?blocked is now paginated using reactions. This fixes #249

Related Projects