aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeLines
...
| | | | | | | | | | | | | | | * | | | | | | | | Silence tests: fix command message testsGravatar MarkKoz2020-08-17-15/+10
| | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | * | | | | | | | | Silence tests: fix test_silence_private_for_falseGravatar MarkKoz2020-08-17-4/+13
| | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | * | | | | | | | | Silence tests: fix test_silence_private_silenced_channelGravatar MarkKoz2020-08-17-3/+10
| | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | * | | | | | | | | Silence tests: fix test_silence_private_notifierGravatar MarkKoz2020-08-17-0/+3
| | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | * | | | | | | | | Silence tests: fix test_unsilence_private_for_falseGravatar MarkKoz2020-08-17-1/+4
| | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | * | | | | | | | | Silence tests: fix silence cache test for overwritesGravatar MarkKoz2020-08-17-5/+8
| | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | * | | | | | | | | Silence tests: replace obsolete cog_unload testsGravatar MarkKoz2020-08-17-13/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Moderation notifications are no longer sent so that doesn't need to be tested.
| | | | | | | | | | | | | | | * | | | | | | | | Silence tests: rename test_instance_vars to test_init_cogGravatar MarkKoz2020-08-17-5/+5
| | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | * | | | | | | | | Silence tests: mock RedisCachesGravatar MarkKoz2020-08-17-3/+2
| | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | * | | | | | | | | Tests: optionally prevent autospec helper from passing mocksGravatar MarkKoz2020-08-17-19/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not everything that's decorated needs the mocks that are patched. Being required to add the args to the test function anyway is annoying. It's especially bad if trying to decorate an entire test suite, as every test would need the args. Move the definition to a separate module to keep things cleaner.
| | | | | | | | | | | | | | | * | | | | | | | | Silence: rename _get_instance_vars to _init_cogGravatar MarkKoz2020-08-16-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's a more accurate name since it also reschedules unsilences now.
| | | | | | | | | | | | | | | * | | | | | | | | Silence: remove event and await _get_instance_vars_task directlyGravatar MarkKoz2020-08-16-6/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The event is redundant because the task can be awaited directly to block until it's complete. If the task is already done, the await will instantly finish.
| | | | | | | | | | | | | | | * | | | | | | | | Silence: use aware datetimesGravatar MarkKoz2020-08-16-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `datetime.timestamp()` assumes naïve `datetime`s are in local time, so getting POSIX timestamps in UTC isn't easy for naïve ones. Technically, the timestamp's timezone doesn't matter if all code is on the same page and parsing it with the same timezone. Keeping it in the local timezone would be okay then, but I feel safer locking it to UTC explicitly.
| | | | | | | | | | | | | | | * | | | | | | | | Silence: reschedule silences on startupGravatar MarkKoz2020-08-16-10/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove the moderator notification when unloading the cog because. Its purpose was to remind to manually unsilence channels. However, this purpose is now obsolete due to automatic rescheduling. The notification was buggy anyway due to a race condition with the bot shutting down, and that'd be further complicated by having to asynchronously retrieve channels from the redis cache too. Fixes #1053
| | | | | | | | | | | | | | | * | | | | | | | | Silence: persist silenced channelsGravatar MarkKoz2020-08-16-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Can be used to support rescheduling.
| | | | | | | | | | | | | | | * | | | | | | | | Silence: add separate unsilence error for manually-silenced channelsGravatar MarkKoz2020-08-15-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It was confusing to reject a silence and an unsilence when overwrites were manually set to False. That's because it's contradictory to show an error stating it's already silence but then reject an unsilence with an error stating the channel isn't silenced.
| | | | | | | | | | | | | | | * | | | | | | | | Silence: notify admins if previous overwrites were not cachedGravatar MarkKoz2020-08-15-12/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Admins will have to manually check the default values used and adjust them if they aren't the desired values for that particular channel.
| | | | | | | | | | | | | | | * | | | | | | | | Silence: abort silence if there's already a scheduled taskGravatar MarkKoz2020-08-15-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Overwrites can be edited during a silence, which can result in the overwrites check failing. Checking the scheduler too ensures that a duplicate silence won't be scheduled.
| | | | | | | | | | | | | | | * | | | | | | | | Silence: revoke permissions to add reactionsGravatar MarkKoz2020-08-15-11/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | No longer assume default values for the overwrites which are modified. Save and restore previous values `add_reactions` and `send_messages` via redis. When unsilencing, check if a channel is silenced via the redis cache rather than the channel's current overwrites to ensure the task is cancelled even if overwrites were manually edited.
| | | | | | | | | | | | | | | | | | | | | | * | Make `additional_info` non-optional.Gravatar kosayoda2020-10-20-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `Optional` typehint suggests allowing None as a value, which does not make sense as a message in the logs.
| | | | | | | | | | | | | | | | | | | | | | * | Improve default argument.Gravatar kosayoda2020-10-08-4/+1
| | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | * | Resolve logic error with reason override.Gravatar kosayoda2020-10-08-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The reason override for the user message should be set to the infraction reason *if* the override is None, not if it isn't. The parameter is also renamed to `user_reason` for better clarity.
| | | | | | | | | | | | | | | | | | | | | | * | Modify `!superstar` to use `apply_infraction`.Gravatar kosayoda2020-10-01-49/+52
| |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using `apply_infraction` from `InfractionScheduler` rather than doing it manually allows us to handle HTTP errors while reducing code duplication. Specifically, discord.Forbidden is handled when the bot tries to superstar someone they do not have permissions to. Resolves BOT-5Q.
* | | | | | | | | | | | | | | | | | | | | | | Merge pull request #1200 from python-discord/bug/mod/1182/deleted-msg-null-charGravatar Matteo Bertucci2020-10-01-1/+1
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / / / / / / / / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | Remove null chars before posting deleted messages
| * | | | | | | | | | | | | | | | | | | | | | Remove null chars before posting deleted messagesGravatar MarkKoz2020-09-30-1/+1
|/ / / / / / / / / / / / / / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Our API doesn't allow null characters in the content field. It may be present because of a self bot that is able to send such character. Fixes #1182 Fixes BOT-8E
* | | | | | | | | | | | | | | | | | | | | | PR #1191 Verification: broaden 50_007 error handlingGravatar kwzrd2020-09-29-11/+30
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | | | | | | | | | | | | | Incidents: reduce timeout log to info levelGravatar kwzrd2020-09-27-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This shouldn't be a warning, as we cannot do anything about it. Fixes BOT-8X
| * | | | | | | | | | | | | | | | | | | | | | Verification: apply 'safe_dm' to all DM dispatchesGravatar kwzrd2020-09-27-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now, when we send a DM and it fails: * Ignore if due to disabled DMs * Log exception otherwise
| * | | | | | | | | | | | | | | | | | | | | | Verification: move disabled DM handling into helperGravatar kwzrd2020-09-27-5/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Note that we were previously only catching 403. As the docstring explains, we will now catch any Discord exception and only look at the the code, rather than the status.
* | | | | | | | | | | | | | | | | | | | | | | Merge remote-tracking branch 'origin/master' into masterGravatar Matteo Bertucci2020-09-27-585/+101
|\| | | | | | | | | | | | | | | | | | | | | |
| * | | | | | | | | | | | | | | | | | | | | | Relock Pipfile to update async-redis.Gravatar Leon Sandøy2020-09-27-62/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This also bumps minor versions of several other packages. I've spun up the bot and played around with it, and run all unit tests. Everything still seems to be in order.
| * | | | | | | | | | | | | | | | | | | | | | Add the video to the welcome DM.Gravatar Leon Sandøy2020-09-27-4/+7
| | |_|_|_|_|_|/ / / / / / / / / / / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This rewords the welcome DM, and adds the new Welcome To Python Discord video to it.
| * | | | | | | | | | | | | | | | | | | | | PR #1151 Sync: remove confirmationGravatar kwzrd2020-09-26-519/+24
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|/ / / | |/| | | | | | | | | | | | | | | | | | | |
| | * | | | | | | | | | | | | | | | | | | | Sync: update sync() docstringGravatar MarkKoz2020-09-26-3/+1
| | | | | | | | | | | | | | | | | | | | | |
| | * | | | | | | | | | | | | | | | | | | | Sync: remove _asdict commentGravatar MarkKoz2020-09-23-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The comment doesn't contribute anything.
| | * | | | | | | | | | | | | | | | | | | | Merge branch 'master' into feat/backend/1075/remove-syncer-confirmGravatar MarkKoz2020-09-22-2227/+2207
| | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | |_|_|_|_|_|_|_|_|_|_|/ / / / / / / / | | | |/| | | | | | | | | | | | | | | | | |
| | * | | | | | | | | | | | | | | | | | | | Sync: refactor conditional for sending message Gravatar Mark2020-09-22-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ternary is a bit confusing. Co-authored-by: Numerlor <[email protected]>
| | * | | | | | | | | | | | | | | | | | | | Fix test for sync message being editedGravatar MarkKoz2020-09-07-1/+3
| | | | | | | | | | | | | | | | | | | | | |
| | * | | | | | | | | | | | | | | | | | | | Sync: remove confirmationGravatar MarkKoz2020-09-07-518/+20
| | | |_|_|/ / / / / / / / / / / / / / / / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The confirmation was intended to be a safe guard against cache issues that would cause a huge number of roles/users to deleted after syncing. With `wait_until_guild_available`, such cache issue shouldn't arise. Therefore, this feature is obsolete. Resolve #1075
* | | | | | | | | | | | | | | | | | | | | Allow !role for any staff roleGravatar Matteo Bertucci2020-09-27-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Closes #1173
* | | | | | | | | | | | | | | | | | | | | Allow !eval in #code-help-voiceGravatar Matteo Bertucci2020-09-27-1/+3
|/ / / / / / / / / / / / / / / / / / / /
* | | | | | | | | | | | | | | | | | | | Merge pull request #1161 from bast0006/feature-bast-user-token-notifyGravatar Mark2020-09-25-39/+188
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | |_|_|_|_|_|_|/ / / / / / / / / / / / / |/| | | | | | | | | | | | | | | | | | | Add userid decoding and user token detection to the token removal moderation feature
| * | | | | | | | | | | | | | | | | | | Remove redundant is_valid_userid functionGravatar Bast2020-09-25-33/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | extract_user_id(id) is not None does the same job and is not worth the extra function
| * | | | | | | | | | | | | | | | | | | Change the mod alert message component for the user token detectionGravatar Bast2020-09-24-46/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clean up mock usage, docstrings, unnecessarily split-lined function calls
| * | | | | | | | | | | | | | | | | | | Add BOT vs USER token detection, properly handling bot tokens for bots in ↵Gravatar Bast2020-09-24-13/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the current server Also adjust the naming and purposes of the format messages to KNOWN and UNKNOWN token messages.
| * | | | | | | | | | | | | | | | | | | Implement review-suggested changesGravatar Bast2020-09-24-67/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | userid -> user ID maybevalid -> maybe_valid remove collections import and added a new function that handles the "format user ID log message" and should_ping_everyone feature
| * | | | | | | | | | | | | | | | | | | Merge branch 'master' into feature-bast-user-token-notifyGravatar Bast2020-09-21-270/+686
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Resynchronize changes with the new cog folder arrangement
| * | | | | | | | | | | | | | | | | | | | Make token_remover check basic HMAC validity (not low entropy)Gravatar Bast2020-09-19-6/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Handles cases like xxx.xxxxx.xxxxxxxx where a user has intentionally censored part of a token, and will not consider them "valid"
| * | | | | | | | | | | | | | | | | | | | Add feature to token_remover: log detected user ID, and ping if it's a user ↵Gravatar Bast2020-09-19-19/+90
| | |_|_|_|_|/ / / / / / / / / / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in the server Updated tests This comes with a change that a user ID must actually be able to be decoded into an integer to be considered a valid token
* | | | | | | | | | | | | | | | | | | | Merge pull request #1171 from python-discord/kwzrd/log-levelsGravatar Mark2020-09-23-2/+2
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adjust verification & incidents log levels