aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeLines
...
* | | | | | | Merge pull request #1271 from spacecraft1013/code_instructionsGravatar Dennis Pham2020-11-06-2/+2
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | ```py convention in code block instructions
| * \ \ \ \ \ \ Merge branch 'master' into code_instructionsGravatar Dennis Pham2020-11-06-105/+169
| |\ \ \ \ \ \ \ | |/ / / / / / / |/| | | | | | |
* | | | | | | | Merge pull request #1266 from zachgates/patch-1Gravatar Senjan212020-11-06-1/+1
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Updated langs to include python-repl
| * | | | | | | | Reinsert python-repl in PY_LANG_CODESGravatar Zach Gates2020-11-01-1/+1
| | | | | | | | |
| * | | | | | | | Updated langs to include python-replGravatar Zach Gates2020-11-01-1/+1
| | | | | | | | |
| | * | | | | | | Modified instructions for code block without langGravatar Amin Boukari2020-11-05-1/+1
| | | | | | | | |
| | * | | | | | | Changed ```python to ```pyGravatar Amin Boukari2020-11-05-1/+1
| | | | | | | | |
| | | | | | * | | Voice Gate: explain the purpose of `NO_MSG`Gravatar kwzrd2020-11-10-0/+4
| | | | | | | | |
| | | | | | * | | Voice Gate: ensure atomicity when notifying usersGravatar kwzrd2020-11-10-20/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, the listener risked yielding control to a racing event at multiple points between checking whether the member was already notified, notifying them, and writing this information into the cache. As a result, in a pathological case, multiple racing coroutines could have passed the membership check and ping-spammed the user, before the first coro could have a chance to write the message ID into the cache. In this commit, we move this logic into an atomic helper, which will ensure that events are processed one-by-one, and subsequent events correctly abort. Co-authored-by: MarkKoz <[email protected]> Co-authored-by: Sebastiaan Zeeff <[email protected]> Co-authored-by: Daniel Brown <[email protected]>
| | | | | | * | | Voice Gate: define atomic `_delete_ping` functionGravatar kwzrd2020-11-10-11/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The code for ping deletion was duplicated in two places. In this commit, we move it into a helper function, and apply a lock to make each transaction atomic. This means that if two coroutines try to call the function, the first has to finish before the second can begin. This avoids the following: Coro1: Message in cache? Yes. Coro1: Send delete request. Yield control (await). Coro2: Message in cache? Yes. Now Coro2 has to wait for Coro1 to finish. Therefore it will always find the `NO_MSG` signal, and not attempt the deletion. Co-authored-by: MarkKoz <[email protected]> Co-authored-by: Sebastiaan Zeeff <[email protected]> Co-authored-by: Daniel Brown <[email protected]>
| | | | | | * | | Voice Gate: correct after-delay message delete methodologyGravatar kwzrd2020-11-09-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use a HTTP method so that we do not have to fetch the message object, the cache only gives us the ID.
| | | | | | * | | Voice Gate: correct HTTP delete method usageGravatar kwzrd2020-11-09-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This removes the need to fetch the Channel object. Add a trace log to help with testing.
| | | | | | * | | Voice Gate: refer to config rather than hard-coded durationGravatar kwzrd2020-11-08-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The const was introduced for this purpose, but it was accidentally not being used.
| | | | | | * | | Voice Gate: fix cache membership checkGravatar kwzrd2020-11-08-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the cache offers a 'contains' coro, let's use it. If the member ID is already present in the cache, they were either already verified, or were already pung about not being verified.
| | | | | | * | | Voice Gate: one-line func signatureGravatar kwzrd2020-11-08-7/+2
| | | | | | | | |
| | | | | | * | | Added dummy parameter, changed message delete logicGravatar Daniel Brown2020-11-08-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Added a None placeholder in the `__init__` for voice gate channel. - Changed deletion logic in on_voice_state_update to check if the message has already been deleted. - Changed deletion logic in voice_verify to only require one api call.
| | | | | | * | | Removed extra else's and added constantGravatar Daniel Brown2020-11-06-28/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Removed unnecessary else statements - Added NO_MSG constant to replace the `False` that was being used previously in the redis cache. Signed-off-by: Daniel Brown <[email protected]>
| | | | | | * | | Requested fixes - Various restructures of code.Gravatar Daniel Brown2020-11-06-29/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Changed `VOICE_PING` constant to not contain the format brackets. - Added more detailed description of what the `redis_cache` will hold. - Changed message content verification to use the whole newly formatted `VOICE_PING` constant instead of a slice of it. - Added remaining parameters for the `on_voice_state_update` event for clarity. - Reorganized the logic of the `on_voice_state_update` for better clarity and better logging purposes. - Removed `_async_init` in favor of checking if the guild is ready inside the `on_voice_state_update` event. Verification channel is now loaded each time when needed, reducing risk of the object becoming stale or erroring out due to the not being ready before an event was triggered. Signed-off-by: Daniel Brown <[email protected]>
| | | | | | * | | Merge remote-tracking branch 'origin/Hemlock/voice-gate-ping' into ↵Gravatar Daniel Brown2020-11-05-108/+175
| | | | | | |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hemlock/voice-gate-ping
| | | | | | | * \ \ Merge branch 'master' into Hemlock/voice-gate-pingGravatar Daniel Brown2020-11-05-108/+175
| | | | | | | |\ \ \ | |_|_|_|_|_|_|/ / / |/| | | | | | | | |
* | | | | | | | | | Merge pull request #901 from ks129/pep-improvisationsGravatar Senjan212020-11-05-104/+168
|\ \ \ \ \ \ \ \ \ \ | |_|/ / / / / / / / |/| | | | | | | | | PEP command improvements
| * | | | | | | | | Fix argument offsetGravatar ks1292020-10-18-1/+1
| | | | | | | | | |
| * | | | | | | | | Refactor PEP error embed sendingGravatar ks1292020-10-18-23/+24
| | | | | | | | | |
| * | | | | | | | | Merge remote-tracking branch 'up/master' into pep-improvisationsGravatar ks1292020-10-18-642/+1078
| |\ \ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ \ Merge branch 'master' into pep-improvisationsGravatar ks1292020-10-04-943/+553
| |\ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | | Move AsyncCache max_size argument to __init__ from decoratorGravatar ks1292020-10-04-3/+4
| | | | | | | | | | | |
| * | | | | | | | | | | Make AsyncCache key tuple instead stringGravatar ks1292020-10-04-1/+1
| | | | | | | | | | | |
| * | | | | | | | | | | Move PEP URLs to class constantsGravatar ks1292020-10-04-7/+6
| | | | | | | | | | | |
| * | | | | | | | | | | Rename async cache instancesGravatar ks1292020-10-04-7/+5
| | | | | | | | | | | |
| * | | | | | | | | | | Fix lintingGravatar ks1292020-09-26-3/+2
| | | | | | | | | | | |
| * | | | | | | | | | | PEP: Split get_pep_embed to smaller partsGravatar ks1292020-09-26-22/+34
| | | | | | | | | | | |
| * | | | | | | | | | | Async Cache: Create class-based async cacheGravatar ks1292020-09-26-24/+37
| | | | | | | | | | | |
| * | | | | | | | | | | Merge remote-tracking branch 'upstream/master' into pep-improvisationsGravatar ks1292020-09-26-4294/+8799
| |\ \ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | | | PEP: Move PEP error message sending to another functionGravatar ks1292020-06-22-8/+9
| | | | | | | | | | | | |
| * | | | | | | | | | | | PEP: Filter out too big PEP numbersGravatar ks1292020-06-22-1/+5
| | | | | | | | | | | | |
| * | | | | | | | | | | | Async Cache: Make cache handle different caches betterGravatar ks1292020-06-22-7/+9
| | | | | | | | | | | | |
| * | | | | | | | | | | | PEP: Define PEP region for grouping functionsGravatar ks1292020-06-22-1/+2
| | | | | | | | | | | | |
| * | | | | | | | | | | | Merge branch 'master' into pep-improvisationsGravatar ks1292020-05-18-503/+340
| |\ \ \ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | | | | PEP: Removed `while` loop from refresh checking on `get_pep_embed`Gravatar ks1292020-05-18-11/+9
| | | | | | | | | | | | | |
| * | | | | | | | | | | | | PEP Improvisations: Remove PEP URLs refreshing task + replace it with new systemGravatar ks1292020-05-17-12/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now PEP command request PEP listing when PEP is not found and last refresh was more time ago than 30 minutes instead task.
| * | | | | | | | | | | | | PEP Improvisations: Fix cache if statementGravatar ks1292020-05-17-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add `not` in check is key exist in cache.
| * | | | | | | | | | | | | PEP Improvisations: Move error embed to variables instead creating on `ctx.send`Gravatar ks1292020-05-17-6/+5
| | | | | | | | | | | | | |
| * | | | | | | | | | | | | PEP Improvisations: Remove response from logging to avoid newlineGravatar ks1292020-05-17-2/+1
| | | | | | | | | | | | | |
| * | | | | | | | | | | | | PEP Improvisations: Fix formatting of blocks Gravatar ks1292020-05-17-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added newline before logging after indention block. Co-authored-by: Mark <[email protected]>
| * | | | | | | | | | | | | PEP Improvisations: Simplify cache item check on `async_cache` decoratorGravatar ks1292020-05-17-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Co-authored-by: Mark <[email protected]>
| * | | | | | | | | | | | | PEP Improvisations: Move errors sending from PEP command to `get_pep_embed`Gravatar ks1292020-05-15-9/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this, all error embeds was returned on `get_pep_embed` but now this send this itself and return only correct embed to make checking easier in command.
| * | | | | | | | | | | | | PEP Improvisations: Fix `get_pep_embed` docstringGravatar ks1292020-05-15-1/+1
| | | | | | | | | | | | | |
| * | | | | | | | | | | | | PEP Improvisations: Fix `get_pep_zero_embed` docstringGravatar ks1292020-05-15-1/+1
| | | | | | | | | | | | | |
| * | | | | | | | | | | | | PEP Improvisations: Move `get_pep_zero_embed` back to CogGravatar ks1292020-05-15-15/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Moved `get_pep_zero_embed` back to the cog, but made this `staticmethod`.
| * | | | | | | | | | | | | PEP Improvisations: Fix log text formattingGravatar ks1292020-05-15-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use repo own alignment of multiline text.