aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeLines
...
| | * | Sync tests: create a role in setUp to use as a constantGravatar MarkKoz2020-02-12-6/+5
| | | |
| | * | Sync tests: test diff for updated rolesGravatar MarkKoz2020-02-12-27/+16
| | | |
| | * | Sync tests: test empty diff for identical rolesGravatar MarkKoz2020-02-12-8/+11
| | | |
| | * | Sync tests: fix creation of MockRolesGravatar MarkKoz2020-02-12-3/+4
| | | | | | | | | | | | | | | | Role was being accessed like a class when it is actually a dict.
| | * | Sync tests: add fixture to create a guild with rolesGravatar MarkKoz2020-02-12-1/+21
| | | |
| | * | Sync tests: rename the role syncer test caseGravatar MarkKoz2020-02-12-1/+1
| | | |
| | * | Tests: add a MockAPIClientGravatar MarkKoz2020-02-12-0/+18
| | | |
| | * | Sync: handle API errors gracefullyGravatar MarkKoz2020-02-12-10/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | * | Sync: mention core devs when results are shown & fix missing spaceGravatar MarkKoz2020-02-12-6/+8
| | | |
| | * | Sync: split _confirm() into two functionsGravatar MarkKoz2020-02-12-10/+32
| | | | | | | | | | | | | | | | | | | | | | | | 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.
| | * | Sync: keep the mention for all edits of the confirmation promptGravatar MarkKoz2020-02-12-4/+6
| | | | | | | | | | | | | | | | This makes it clearer to users where the notification came from.
| | * | Sync: add trace and debug loggingGravatar MarkKoz2020-02-12-1/+16
| | | |
| | * | Sync: fix confirmation reaction checkGravatar MarkKoz2020-02-12-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
| | * | Sync: remove author mention from confirm promptGravatar MarkKoz2020-02-12-2/+2
| | | |
| | * | Sync: fix overwriting message with None after editing itGravatar MarkKoz2020-02-12-1/+1
| | | |
| | * | Sync: fix passing context instead of message to _confirm()Gravatar MarkKoz2020-02-12-4/+5
| | | | | | | | | | | | | | | | * Mention possibility of timing out as a reason for aborting a sync
| | * | Sync: fix missing await for fetch_channelGravatar MarkKoz2020-02-12-1/+1
| | | |
| | * | Sync: allow for None values in DiffsGravatar MarkKoz2020-02-12-4/+4
| | | |
| | * | Sync: make Role, User, and Diff privateGravatar MarkKoz2020-02-12-15/+15
| | | |
| | * | Sync: remove generic type from DiffGravatar MarkKoz2020-02-12-19/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | * | Sync: move sync logic into Syncer base classGravatar MarkKoz2020-02-12-93/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| | * | Sync: prompt to confirm when diff is greater than 10Gravatar MarkKoz2020-02-12-37/+158
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| | * | Sync: create classes for syncersGravatar MarkKoz2020-02-12-242/+158
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| | * | Sync: support sending messages to a context in sync()Gravatar MarkKoz2020-02-12-17/+11
| | | |
| | * | Sync: support multiple None totals returns from a syncerGravatar MarkKoz2020-02-12-10/+7
| | | |
| | * | Sync: create function for running a single syncerGravatar MarkKoz2020-02-12-22/+24
| | | |
| | * | Sync: refactor cogGravatar MarkKoz2020-02-12-25/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Use ID from constants directly instead of SYNC_SERVER_ID * Use f-strings instead of %s for logging * Fit into margin of 100 * Invert condition to reduce nesting * Use Any instead of incorrect function annotation for JSON values
| | * | API: create request function which has a param for the HTTP methodGravatar MarkKoz2020-02-12-18/+10
| | | | | | | | | | | | | | | | Reduces code redundancy.
| | * | API: define functions with keyword-only argumentsGravatar MarkKoz2020-02-12-10/+10
| | | | | | | | | | | | | | | | This seems to have been the intent of the original implementation.
| | * | Constants: add dev-core channel and check mark emojiGravatar MarkKoz2020-02-12-0/+4
| | | |
| | * | Use wait_until_guild_available instead of wait_until_readyGravatar MarkKoz2020-02-12-13/+13
| | | | | | | | | | | | | | | | It has a much better guarantee that the cache will be available.
| | * | Bot: make the connector attribute privateGravatar MarkKoz2020-02-12-4/+4
| | | |
| | * | Bot: add wait_until_guild_availableGravatar MarkKoz2020-02-12-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This coroutine waits until the configured guild is available and ensures the cache is present. The on_ready event is inadequate because it only waits 2 seconds for a GUILD_CREATE gateway event before giving up and thus not populating the cache for unavailable guilds.
| | | * Reminders: don't cancel task if reminder is invalid when reschedulingGravatar MarkKoz2020-02-23-6/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | If a reminder is invalid, it won't get rescheduled. Therefore, there wouldn't exist a task to cancel and it'd raise a warning. Fixes BOT-1C
* | | | Tests: fix setting bot-commands ID in information testsGravatar MarkKoz2020-02-23-4/+4
| | | |
* | | | Constants: rename Guild.Constant.ignored to modlog_blacklistGravatar MarkKoz2020-02-23-7/+8
| | | | | | | | | | | | | | | | This name better explains what the list is for.
* | | | Config: replace abbreviated lists with normal onesGravatar MarkKoz2020-02-23-4/+34
| | | | | | | | | | | | | | | | | | | | Lists were getting too long to be readable as one line. Having each element on a separate line also reduces merge conflicts.
* | | | Config: add underscore to devcontribGravatar MarkKoz2020-02-23-2/+2
| | | |
* | | | Config: fix DEV_LOG variable thingyGravatar MarkKoz2020-02-23-2/+2
| | | |
* | | | Always load doc and verification extensionsGravatar MarkKoz2020-02-23-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | They used to only be loaded in "debug mode" because the main guild was used to test the bot. However, we have since moved to using a separate test guild so it's no longer a concern if these cogs get loaded. It was confusing to some contributors as to why these cogs were not being loaded since the debug mode isn't really documented anywhere.
* | | | Config: rename channels to match their names in the guildGravatar MarkKoz2020-02-23-76/+76
| | | |
* | | | Constants: remove code jam champions roleGravatar MarkKoz2020-02-23-2/+0
| | | | | | | | | | | | | | | | Nothing was using it.
* | | | Constants: rename developers role back to verifiedGravatar MarkKoz2020-02-23-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | It makes the code which uses it more readable. A comment was added to explain the discrepancy between the constant's name and the name in the guild.
* | | | Constants: rename roles to match their names in the guildGravatar MarkKoz2020-02-23-28/+28
| | | |
* | | | Config: remove checkpoint_test and devtestGravatar MarkKoz2020-02-23-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | They no longer exist in the guild. * Move devlog under the "Logs" category
* | | | Config: shorten name of PYTHON_COMMUNITY_ROLEGravatar MarkKoz2020-02-23-7/+7
| | | |
* | | | Config: split channels into categoriesGravatar MarkKoz2020-02-23-21/+39
| | | |
* | | | Config: split roles into categoriesGravatar MarkKoz2020-02-23-12/+16
| | | |
* | | | Config: rename roles to match their names in the guildGravatar MarkKoz2020-02-23-18/+18
|/ / /
* | | Merge pull request #749 from python-discord/reminder-enhancementsGravatar Leon Sandøy2020-02-23-15/+47
|\ \ \ | |_|/ |/| | Reminder Embed Enhancements & Whitelist Expansion