| Commit message (Collapse) | Author | Lines | ||
|---|---|---|---|---|
| 2020-02-12 | Sync tests: test diff for updated users | -9/+11 | ||
| 2020-02-12 | Sync tests: fix get_guild modifying the original member dicts | -0/+1 | ||
| 2020-02-12 | Sync tests: test empty diff for identical users | -8/+8 | ||
| 2020-02-12 | Sync tests: work around @everyone role being added by MockMember | -2/+3 | ||
| 2020-02-12 | Sync tests: fix mismatched attributes when creating a mock user | -0/+3 | ||
| 2020-02-12 | Sync tests: fix fake_user fixture | -7/+9 | ||
| 2020-02-12 | Sync tests: test empty diff for no users | -6/+9 | ||
| 2020-02-12 | Sync tests: add fixture to get a guild with members | -1/+19 | ||
| 2020-02-12 | Sync tests: rename user sync test case | -2/+2 | ||
| 2020-02-12 | Sync tests: test syncs with multiple roles | -15/+37 | ||
| 2020-02-12 | Sync tests: test API requests for role syncing | -1/+34 | ||
| 2020-02-12 | Sync tests: create separate role test cases for diff and sync tests | -2/+10 | ||
| 2020-02-12 | Sync tests: remove guild_roles lists and assign roles to variables | -14/+8 | ||
| Makes the creation of the expected diff clearer since the variable has a name compared to accessing some index of a list. | ||||
| 2020-02-12 | Sync tests: remove diff test for updated and new roles together | -19/+0 | ||
| Redundant since test_diff_for_new_updated_and_deleted_roles tests all 3 types together. | ||||
| 2020-02-12 | Sync tests: test diff for all 3 role changes simultaneously | -21/+17 | ||
| 2020-02-12 | Sync tests: test diff for deleted roles | -17/+10 | ||
| 2020-02-12 | Sync tests: test diff for new roles | -20/+15 | ||
| 2020-02-12 | Sync tests: create a role in setUp to use as a constant | -6/+5 | ||
| 2020-02-12 | Sync tests: test diff for updated roles | -27/+16 | ||
| 2020-02-12 | Sync tests: test empty diff for identical roles | -8/+11 | ||
| 2020-02-12 | Sync tests: fix creation of MockRoles | -3/+4 | ||
| Role was being accessed like a class when it is actually a dict. | ||||
| 2020-02-12 | Sync tests: add fixture to create a guild with roles | -1/+21 | ||
| 2020-02-12 | Sync tests: rename the role syncer test case | -1/+1 | ||
| 2020-02-12 | Tests: add a MockAPIClient | -0/+18 | ||
| 2020-02-12 | Sync: handle API errors gracefully | -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. | ||||
| 2020-02-12 | Sync: mention core devs when results are shown & fix missing space | -6/+8 | ||
| 2020-02-12 | Sync: split _confirm() into two functions | -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. | ||||
| 2020-02-12 | Sync: keep the mention for all edits of the confirmation prompt | -4/+6 | ||
| This makes it clearer to users where the notification came from. | ||||
| 2020-02-12 | Sync: add trace and debug logging | -1/+16 | ||
| 2020-02-12 | Sync: fix confirmation reaction check | -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 | ||||
| 2020-02-12 | Sync: remove author mention from confirm prompt | -2/+2 | ||
| 2020-02-12 | Sync: fix overwriting message with None after editing it | -1/+1 | ||
| 2020-02-12 | Sync: fix passing context instead of message to _confirm() | -4/+5 | ||
| * Mention possibility of timing out as a reason for aborting a sync | ||||
| 2020-02-12 | Sync: fix missing await for fetch_channel | -1/+1 | ||
| 2020-02-12 | Sync: allow for None values in Diffs | -4/+4 | ||
| 2020-02-12 | Sync: make Role, User, and Diff private | -15/+15 | ||
| 2020-02-12 | Sync: remove generic type from Diff | -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. | ||||
| 2020-02-12 | Sync: move sync logic into Syncer base class | -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 | ||||
| 2020-02-12 | Sync: prompt to confirm when diff is greater than 10 | -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 | ||||
| 2020-02-12 | Sync: create classes for syncers | -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 | ||||
| 2020-02-12 | Sync: support sending messages to a context in sync() | -17/+11 | ||
| 2020-02-12 | Sync: support multiple None totals returns from a syncer | -10/+7 | ||
| 2020-02-12 | Sync: create function for running a single syncer | -22/+24 | ||
| 2020-02-12 | Sync: refactor cog | -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 | ||||
| 2020-02-12 | API: create request function which has a param for the HTTP method | -18/+10 | ||
| Reduces code redundancy. | ||||
| 2020-02-12 | API: define functions with keyword-only arguments | -10/+10 | ||
| This seems to have been the intent of the original implementation. | ||||
| 2020-02-12 | Constants: add dev-core channel and check mark emoji | -0/+4 | ||
| 2020-02-12 | Use wait_until_guild_available instead of wait_until_ready | -13/+13 | ||
| It has a much better guarantee that the cache will be available. | ||||
| 2020-02-12 | Bot: make the connector attribute private | -4/+4 | ||
| 2020-02-12 | Bot: add wait_until_guild_available | -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. | ||||