* Use aware objects instead of naive ones
* Use aware objects when storing and reading UTC timestamps
* Remove unneeded parentheses
* Fixed naive and aware objects unable to be compared here
* Address feedback
* Fix the newly added `modlog.create_case()` calls
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
[Core] Data Deletion And Disclosure APIs
- Adds a Data Deletion API
- Deletion comes in a few forms based on who is requesting
- Deletion must be handled by 3rd party
- Adds a Data Collection Disclosure Command
- Provides a dynamically generated statement from 3rd party
extensions
- Modifies the always available commands to be cog compatible
- Also prevents them from being unloaded accidentally
API changes:
- Cogs must now inherit from `commands.Cog` (see #2151 for discussion and more details)
- All functions which are not decorators in the `redbot.core.checks` module are now deprecated in favour of their counterparts in `redbot.core.utils.mod`. This is to make this module more consistent and end the confusing naming convention.
- `redbot.core.checks.check_overrides` function is now gone, overrideable checks can now be created with the `@commands.permissions_check` decorator
- Command, Group, Cog and Context have some new attributes and methods, but they are for internal use so shouldn't concern cog creators (unless they're making a permissions cog!).
- `__permissions_check_before` and `__permissions_check_after` have been replaced: A cog method named `__permissions_hook` will be evaluated as permissions hooks in the same way `__permissions_check_before` previously was. Permissions hooks can also be added/removed/verified through the new `*_permissions_hook()` methods on the bot object, and they will be verified even when permissions is unloaded.
- New utility method `redbot.core.utils.chat_formatting.humanize_list`
- New dependency [`schema`](https://github.com/keleshev/schema)
User-facing changes:
- When a `@bot_has_permissions` check fails, the bot will respond saying what permissions were actually missing.
- All YAML-related `[p]permissions` subcommands now reside under the `[p]permissions acl` sub-group (tbh I still think the whole cog has too many top-level commands)
- The YAML schema for these commands has been changed
- A rule cannot be set as allow and deny at the same time (previously this would just default to allow)
Documentation:
- New documentation for `redbot.core.commands.requires` and `redbot.core.checks` modules
- Renewed documentation for the permissions cog
- `sphinx.ext.doctest` is now enabled
Note: standard discord.py checks will still behave exactly the same way, in fact they are checked before `Requires` is looked at, so they are not overrideable.
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* [V3 Modlog] Make the case number optional
If not specified, it will be the latest case.
* Fix some errors
* Black reformat
* More info for usage string
* Use isdigit instead of isnumeric
* Cleanup quotes in cogs
* More quote cleanup that I missed
fixed a little bit of grammar here and there as well.
* [V3 Warnings] Change allowcustomreasons docstring
To help not confuse users who would believe that the command would use allow or disallow.
* Run black reformat
* Give modlog case objects the bot as an attribute
* Dispatch modlog_case_create and modlog_case_edit events
* case.bot, not just bot
* fix a couple more issues resulting from refactor
* Case.edit doesn't need the bot parameter lol
* Make create_case return the case object (because tests)
* Modify create_case docstring
* Fix a docstring
* Update travis to not sip pipfile lock
update pipfile dependencies
additional black formatting pass to conform to black 18.5b
* .
* pin async timeout until further discussion of 3.5 support
* .
* Framework for internationalised command help
* Translator for class docstring of cog
* Remove references to old context module
* Use CogManagerUI as PoC
* Replace all references to RedContext
* Rename CogI18n object to avoid confusion
* Update docs
* Update i18n docs.
* Store translators in list instead of dict
* Change commands module to package, updated refs in cogs
* Updated docs and more references in cogs
* Resolve syntax error
* Update from merge
* [V3 CogManagerUI] implement text-only support in [p]cogs
* Change page length to 1800 + workaround for pages starting with delim
* [V3 Core] text mode support for [p]contact and [p]dm
* Implement text-only support in modlog and fix everything that broke because of it
* Fix modlog stuff in filter too
* Fix tests
* Implement optional embed support in [p]help
* move to .format
* Readd work due to redoing branch
* [modlog] Move to core and start work on separating it from cogs
* More work on modlog separation
* [Core] Finish logic for modlog, do docstrings, async getters
* [Core] Add stuff to dunder all
* [Docs] Add mod log docs
* [Core] Move away from dunder str for Case class
* [Docs] don't need to doc special members in modlog docs
* More on mod log to implement commands
* More work on Mod
* [Mod] compatibility with async getters
* [Tests] start tests for mod
* [Tests] attempted fix
* [Tests] mod tests passing now!
* [ModLog] update for i18n
* modlog.pot -> messages.pot
* [Mod] i18n
* fix getting admin/mod roles
* Fix doc building
* [Mod/Modlog] redo imports
* [Tests] fix imports in mod tests
* [Mod] fix logger problem
* [Mod] cleanup errors
* A couple of bug fixes
Async getters, some old `config.set` syntax
* Filter ignores private channels
* Fix softban
Was still relying on default channels
* Actually ignore private channels
* Add check for ignored channels
* Fix logic for ignore check
* Send confirm messages before making case
* Pass in guild when setting modlog
* Thanks autocomplete
* Maintain all data for case
* Properly ignore softbans in events
* [Mod] bugfixes
* [Mod] more changes
* [ModLog] timestamp change
* [Mod] split filter and cleanup to their own cogs + regen messages.pot
* [Cleanup] change logic
* [Cleanup] increase limit for channel.history
* [Mod] await getter in modset banmentionspam
* [Mod] attempt duplicate modlog message fix
* [Mod] get_user -> get_user_info
* [Modlog] change reason command so the case author can edit their cases (#806)
* [Modlog] make reason command guild only
* [Modlog] clarify the reason command's help
* [Mod] package path changes + numpy style docstrings for modlog
* [Mod] change ban and unban events to need view audit log perms to find/create a case
* [Modlog] refactoring
* [Filter] add autoban feature
* [Mod] update case types + event changes
* [Mod/Modlog] fix tests, fix permissions things
* [Docs] fix up modlog docs
* Regenerate messages.pot