aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeLines
...
| * | | | | Verification: improve `is_verified` checkGravatar kwzrd2020-08-08-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This just reads better. Co-authored-by: MarkKoz <[email protected]>
| * | | | | Verification: address member update race conditionGravatar kwzrd2020-08-07-8/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In an edge case, the `_kick_members` and `_give_role` could act on a member who has verified *after* being marked by `_check_members` as unverified. To address this, we perform one additional check just before sending the request. Testing seems to indicate that the `discord.Member` instance get updates as appropriate, so this should at least reduce the chances of such a race happening to very close to nil.
| * | | | | Verification: rename cache & document new useGravatar kwzrd2020-08-07-9/+15
| | | | | |
| * | | | | Verification: persist task settings in RedisGravatar kwzrd2020-08-07-3/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If tasks are stopped manually, they will not automatically restart on cog reload or bot restart. Using `maybe_start_tasks` is necessary because we cannot interface with Redis from a sync context. We're using 1 and 0 because RedisCache does not currently permit bool values due to a typestring conversion bug.
| * | | | | Verification: add command interface for task managementGravatar kwzrd2020-08-06-2/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow checking whether tasks are running, starting them, and stopping them. Currently, the tasks cannot be started or stopped separately. It is not believed that we would need such a level of granularity. Calling `cancel` on a task that isn't running is a no-op.
| * | | | | Merge 'd.py' 1.4 bump from 'origin/master' branchGravatar kwzrd2020-08-06-79/+51
| |\ \ \ \ \
| * | | | | | Verification: extend cog docstringGravatar kwzrd2020-08-06-1/+17
| | | | | | |
| * | | | | | Verification: make on-join message more accurateGravatar kwzrd2020-08-06-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It now explains that new users can only see a limited amount of public channels, and that there will be more once they verify. Co-authored-by: Sebastiaan Zeeff <[email protected]>
| * | | | | | Verification: bump confirmation threshold to 1%Gravatar kwzrd2020-08-06-1/+1
| | | | | | |
| * | | | | | Verification: send DM to kicked membersGravatar kwzrd2020-08-06-0/+8
| | | | | | |
| * | | | | | Verification: enable role pingsGravatar kwzrd2020-08-06-2/+10
| | | | | | |
| * | | | | | Verification: disable burst shared filter in verificationGravatar kwzrd2020-08-06-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We will begin pinging users in the verification channel, prompting them to join. This can cause a surge of activity that may trigger the filter. A better solution would involve allowing per-filter channel config, but after internal discussion this is seen as unnecessary for now.
| * | | | | | Verification: add stats collectionGravatar kwzrd2020-08-06-0/+28
| | | | | | |
| * | | | | | Merge master branch into kwzrd/verificationGravatar kwzrd2020-08-06-477/+803
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds the RedisCache #1090 fix, allowing us to use the cache to hold the ping task on start-up.
| * | | | | | | Verification: remove unverified role on acceptGravatar kwzrd2020-08-06-0/+5
| | | | | | | |
| * | | | | | | Verification: schedule ping taskGravatar kwzrd2020-08-05-3/+5
| | | | | | | |
| * | | | | | | Verification: implement unverified role ping taskGravatar kwzrd2020-08-05-0/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We're making good use of d.py's tasks framework. RedisCache is used to persist the reminder message ids, which can conveniently be converted into timestamps. It is therefore trivial to determine the time to sleep before the first ping. After that, the bot simply pings every n hours.
| * | | | | | | Verification: ignore verification reminder message eventGravatar kwzrd2020-08-04-0/+3
| | | | | | | |
| * | | | | | | Verification: add reminder cacheGravatar kwzrd2020-08-04-0/+5
| | | | | | | |
| * | | | | | | Verification: comment message usesGravatar kwzrd2020-08-04-0/+3
| | | | | | | |
| * | | | | | | Verification: add reminder ping message & frequencyGravatar kwzrd2020-08-04-0/+11
| | | | | | | |
| * | | | | | | Verification: move time constants above messagesGravatar kwzrd2020-08-04-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allows referencing the constants within the message bodies.
| * | | | | | | Verification: make authorization message ping core devsGravatar kwzrd2020-08-04-2/+3
| | | | | | | |
| * | | | | | | Verification: schedule member update taskGravatar kwzrd2020-08-04-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Turns out that it's necessary to cancel the task manually. Otherwise, duplicate tasks can be running concurrently should the extension be reloaded.
| * | | | | | | Verification: add region comments & move property to topGravatar kwzrd2020-08-04-4/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cog is getting large so let's allow collapsing related bits.
| * | | | | | | Verification: create task to update unverified membersGravatar kwzrd2020-08-04-0/+37
| | | | | | | |
| * | | | | | | Verification: repurpose & rename `_check_users`Gravatar kwzrd2020-08-04-10/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Let's only use this function to check on the guild status. It can be exposed via a command in the future. Name adjusted to be more accurate w.r.t. Discord terminology.
| * | | | | | | Verification: implement `_verify_kick` helperGravatar kwzrd2020-08-04-0/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will be used to guard the call to `_kick_members`.
| * | | | | | | Verification: implement `_kick_members` helperGravatar kwzrd2020-08-04-3/+21
| | | | | | | |
| * | | | | | | Verification: implement `_give_role` helperGravatar kwzrd2020-08-04-2/+21
| | | | | | | |
| * | | | | | | Verification: implement `check_users` coroutineGravatar kwzrd2020-08-04-1/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See docstring for details. The coroutine will be registered as a task at a later point.
| * | | | | | | Verification: define time constantsGravatar kwzrd2020-08-04-0/+3
| | | | | | | |
| * | | | | | | Verification: refactor `discord` importsGravatar kwzrd2020-08-04-11/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Let's access these via the qualified name. The amount of imported names was starting to get unwieldy.
| * | | | | | | Verification: add @Unverified role to configGravatar kwzrd2020-08-04-2/+3
| | | | | | | |
| * | | | | | | Verification: send initial message on member joinGravatar kwzrd2020-08-02-1/+11
| | | | | | | |
| * | | | | | | Verification: adjust & rename welcome messageGravatar kwzrd2020-08-02-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Let's give it a better name so that it's clear when this message is sent. The initial words are adjusted to avoid repetition after the on join message.
| * | | | | | | Verification: add initial on join messageGravatar kwzrd2020-08-02-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This message will be sent via direct message to each user who joins the guild.
| | | | * | | | Change tests to work with the new file layout.Gravatar Numerlor2020-07-15-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 326beebe9b097731a39ecc9868e5e1f2bd762aae
| | | | * | | | Move `find_nth_occurrence` to utils helpersGravatar Numerlor2020-07-15-13/+14
| | | | | | | |
| | | | * | | | Move `send_to_paste_service` to services submoduleGravatar Numerlor2020-07-15-54/+55
| | | | | | | |
| | | | * | | | Move general helper functions to submodule.Gravatar Numerlor2020-07-15-15/+14
| | | | | | | |
| | | | * | | | Merge branch 'master' into truncate-internal-evalGravatar Numerlor2020-06-21-492/+1374
| | | | |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # Conflicts: # bot/utils/__init__.py
| | | | * \ \ \ \ Merge branch 'master' into truncate-internal-evalGravatar Numerlor2020-05-30-963/+2140
| | | | |\ \ \ \ \
| | | | * | | | | | Strip empty lines from int eval output.Gravatar Numerlor2020-05-30-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The output generates trailing newlines, which can cause the output to be uploaded to the paste service in cases where it's not needed, as discord will automatically remove those in messages.
| | | | * | | | | | Truncate amount of lines in int eval output to 15.Gravatar Numerlor2020-05-30-2/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously the amount of newlines was checked and uploaded to the paste service if above 15 but the sent message was not truncated to only include that amount of lines.
| | | | * | | | | | Add tests for `send_to_paste_service`.Gravatar Numerlor2020-05-08-0/+74
| | | | | | | | | |
| | | | * | | | | | Adjust behaviour for new func usage.Gravatar Numerlor2020-05-07-14/+5
| | | | | | | | | |
| | | | * | | | | | Remove tests from moved function.Gravatar Numerlor2020-05-07-15/+0
| | | | | | | | | |
| | | | * | | | | | Log unexpected JSON responses.Gravatar Numerlor2020-05-07-0/+4
| | | | | | | | | |
| | | | * | | | | | continue on internal server errors.Gravatar Numerlor2020-05-07-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the case we receive `"message"` in the json response, the server had an internal error and we can attempt the request again.