| Commit message (Collapse) | Author | Age | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now that we're running Discord 1.4.0a, we need to explicitely allow all
the role mentions for sends that don't use ping one of the globally
whitelisted role pings, which are Moderators, Admins and Owners.
We were pinging roles other than Mods+ in exactly two cases:
- Inside the Syncers, whenever we ask for sync confirmation (if the
number of roles or users to sync is unusually high)
- In the help_channels.py system, whenever we max out help channels and
are unable to create more.
This commit addresses both of these.
GitHub #1038
https://github.com/python-discord/bot/issues/1038
|
|
|
|
|
|
|
| |
This is a companion commit to this PR:
https://github.com/python-discord/site/pull/356
This PR must be merged before this commit.
|
|
|
| |
Replaced `TimeoutError` with `asyncio.TimeoutError`.
|
| |
|
| |
|
|
|
| |
Returning directly out of a `finally` clause can cause any exceptions raised in the clause to be discarded, so we can remove the finally clause entirely and shift the control statements into the body of the function
|
| |
|
|
|
|
|
|
| |
* Convert diff namedtuple to dict outside the dict comprehension
* Define long condition as a boolean instead of in the if statement
* Pass role and user dicts to aiohttp normally instead of unpacking
|
| |
|
|
|
|
|
|
| |
It's impossible to create an instance of the base class which does not
have the abstract methods implemented, so it doesn't really matter what
they do.
|
| |
|
| |
|
|
|
|
| |
The function will be easier to test if it's separate rather than nested.
|
|
|
|
|
|
|
| |
The whole sync is aborted when an error is caught for simplicity's sake.
The sync message is edited to display the error and the traceback is
logged. To distinguish an error from an abort/timeout, the latter now
uses a warning emoji while the former uses the red cross.
|
| |
|
|
|
|
|
|
| |
One is responsible for sending the confirmation prompt while the other
waits for the reaction. The split allows for the confirmation prompt
to be edited with the results of automatic syncs too.
|
|
|
|
| |
This makes it clearer to users where the notification came from.
|
| |
|
|
|
|
|
|
|
| |
* Ignore bot reactions
* Check for core dev role if sync is automatic
* Require author as an argument to _confirm() so it can be compared
against the reaction author
|
| |
|
| |
|
|
|
|
| |
* Mention possibility of timing out as a reason for aborting a sync
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
It doesn't play along well with NamedTuple due to metaclass conflicts.
The workaround involved created a NamedTuple-only base class, which
does work but at the cost of confusing some static type checkers.
Since Diff is now an internal data structure, it no longer really needs
to have precise type annotations. Therefore, a normal namedtuple is
adequate.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The interface was becoming cumbersome to work with so it was all moved
to a single location. Now just calling Syncer.sync() will take care of
everything.
* Remove Optional type annotation from Diff attributes
* _confirm() can edit the original message and use it as the prompt
* Calculate the total diff and compare it against the max before
sending a confirmation prompt
* Remove abort message from sync(); _confirm() will handle that
|
|
|
|
|
|
|
|
|
|
|
| |
The confirmation prompt will be sent to the dev-core channel or the
specified context. Confirmation is done via reactions and waits 5
minutes before timing out.
* Add name property to Syncers
* Make _get_diff private; only sync() needs to be called now
* Change spelling of synchronize to synchronise
* Update docstrings
|
|
|
|
|
|
|
|
|
| |
Replaces the functions with a class for each syncer. The classes
inherit from a Syncer base class. A NamedTuple was also created to
replace the tuple of the object differences that was previously being
returned.
* Use namedtuple._asdict to simplify converting namedtuples to JSON
|
| |
|
|
|
| |
Co-Authored-By: Mark <[email protected]>
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|