* Autogenerated doc and index spot
* Update command descriptions
* Use qualified name in titles and new command descriptions
* Add arguments to descriptions and cleanup self examples.
* Examples are bulleted and indented.
* Handle aliases (none), examples are bulleted and indented
* Switch to alphabetical
* Fix X typo
* Fix cleanup self not working in private.
This fix#4408.
* Apply Jack's logic.
* Obviously Black fault.
AGAIN!
* Apply Jack's trick.
* This is not a converter so let's move this to a different file
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
* Added `[p]cleanup spam` function
* formatting
* accepts number and considers command message to total counts
* use existing kwarg instead
Safer to use the before kwarg as other messages might get included accidentally between invoking and executing
Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>
* safer way to compare embeds and skip attachment only msgs
Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>
* keeps the original message before the spam starts
* now asks if its ok to delete 100+ spam msgs if found
* unnecessary calculations, just add after
* code styling and reverted history oldest_first option
* switched to recommended logging formatting, thank you jack1142
* now using `get_messages_for_deletion()`, added needed limit kwarg
* ugh forgot to swap em
* duh
* small string clarification
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
* [i18n] Update translation catalogs
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* Install redgettext 3.1 in travis crowdin deployment
Last time the catalog templates were updated, redgettext 3.0 was used. I'd rather Travis didn't upload them after extracting with an older version.
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* same stuff, but with some more spurious error supression
* fix issue in permissions found in this
* fix a few more spurious errors
* fix another issue
* semi-spurious error fixes
* .
* formatting
* move this to properly log
* distutils import + virtualenv
* more fixes
* Add `[p]cleanup between`
At the moment, only deletes the messages in between, does not delete the messages specified when running the command.
* Create converter for message IDs; remove f-strings; use converters in a few extra commands
* Sacrifice to the style gods
* Dependency update
discord.py==1.0.1
websockets<7
[style]
black==19.3b0
[Docs]
jinja==2.10.1
urllib3==1.24.2
Changes related to breaking changes from discord.py have also been made
to match
As of this commit, help formatter is back to discord.py's default
Also included a Makefile recipe which makes use of the Crowdin CLI's `crowdin download` command. This requires whoever is using it to provide the project's API key in an environment variable, but we may automate this at some point.
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
Cleanup's helper method to collect messages to delete was incorrectly filtering by check rather than message_filter, causing delete_after to be ignored.
* Uses classmethods to create predicates
* Classmethods allow using a combination of different parameters to describe context
* Some predicates assign a captured `result` to the predicate object on success
* Added `ReactionPredicate` equivalent to `MessagePredicate`
* Added `utils.menus.start_adding_reactions`, a non-blocking method for adding reactions asynchronously
* Added documentation
* Uses these new utils throughout the core bot
Happened to also find some bugs in places, and places where we were waiting for events without catching `asyncio.TimeoutError`
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>