aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeLines
* Check value of handled attribute on error in global error handler.Gravatar Rohan2020-12-04-1/+1
|
* Modify error handler check for locally handled errors.Gravatar Rohan2020-12-02-2/+2
| | | | | Error handler now checks if the error has the attribute "handled" for locally handled errors.
* Fix leaderboard glitch caused by duplicate namesGravatar Sebastiaan Zeeff2020-12-02-13/+17
| | | | | | | | | | | | | | | | We noticed that some entries on our leaderboard had an incorrect star count attached to their name. After a bit of digging, @HassanAbouelela discovered that this was caused by the use of the member's name as the key for the leaderboard dictionary: If different accounts used the same display name for the leaderboard, they'd be combined into one glitched score dict. The fix @HassanAbouelela wrote is to use the member id instead of the name as the key for the leaderboard. I've changed a few names here and there, but nothing major. This commit closes #536
* Fix daily stats by converting day, star to strGravatar Sebastiaan Zeeff2020-12-01-2/+3
| | | | | | | The daily stats function contained a bug that prevented it from working correctly. The reason was that I was looking for `int` keys where the actual keys were strings. I now make sure to create a `str` from the `int` I get back from `range`.
* Add support for ignoring scores from specific daysGravatar Sebastiaan Zeeff2020-12-01-3/+17
| | | | | | | | | | | | | | I've added support for ignoring scores from specific days. A list of days to ignore can be provided using the environment variable `AOC_IGNORED_DAYS` as a comma-separated list. This example would ignore day 1 and day 23: AOC_IGNORED_DAYS=1,23 I've also added a helper function to sort the leaderboard not only on the achieved score, but also on the number of stars an individual has completed.
* Clarify text of DM with Advent of Code join codeGravatar Sebastiaan Zeeff2020-11-30-5/+7
|
* Add note about refresh time to info embedGravatar Sebastiaan Zeeff2020-11-30-0/+2
|
* Enable AOC commands before DecemberGravatar Sebastiaan Zeeff2020-11-30-1/+11
| | | | | Note: This won't start the countdown functions yet, they still rely on the cog being loaded in december.
* Merge pull request #531 from python-discord/ks123/advent-of-codeGravatar Sebastiaan Zeeff2020-11-30-757/+748
|\ | | | | Advent of Code 2020
| * Merge branch 'master' into ks123/advent-of-codeGravatar Sebastiaan Zeeff2020-11-30-6/+169
| |\ | |/ |/|
* | Merge pull request #532 from ↵Gravatar Matteo Bertucci2020-11-30-6/+169
|\ \ | | | | | | | | | | | | python-discord/sebastiaan/ci/add-core-dev-approval-check Add check for core dev approvals on pull requests
| * | Update CODEOWNERS for Den4200.Gravatar Den42002020-11-30-6/+3
| | |
| * | Merge branch 'master' into sebastiaan/ci/add-core-dev-approval-checkGravatar Matteo Bertucci2020-11-30-0/+8
| |\ \ | |/ / |/| |
| * | Add check for core dev approvals on pull requestsGravatar Sebastiaan Zeeff2020-11-27-0/+166
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds a workflow that checks if a pull request has received at least one approval from a core developer. If not, the check will fail and block us from merging the Pull Request. The reason we're adding this check is because we're moving away from making the Core Developers team "code owner" of every line in every repository. This created a lot of "notification" spam, which drowned out the actually relevant notifications. This will accomplish the same, at least one core dev needs to approve, but without the notification spam.
| | * Set character encoding for logging to utf-8Gravatar Sebastiaan Zeeff2020-11-30-2/+3
| | |
| | * Move helper functions to the ._helpers moduleGravatar Sebastiaan Zeeff2020-11-30-35/+42
| | | | | | | | | | | | | | | I've moved the helper functions to the _helpers.py module and clarified the docstring of the `is_in_advent` helper function.
| | * Remove constants replaced by AOC_LEADERBOARDSGravatar Sebastiaan Zeeff2020-11-30-3/+0
| | | | | | | | | | | | | | | There were still two constants left over that were no longer used after the rewrite. I've removed them.
| | * Merge branch 'master' into ks123/advent-of-codeGravatar Sebastiaan Zeeff2020-11-30-2/+10
| | |\ | |_|/ |/| |
* | | Add myself to CODEOWNERS of CI filesGravatar Sebastiaan Zeeff2020-11-27-1/+1
| | |
* | | Add @Akarys42 to the codeownersGravatar Matteo Bertucci2020-11-27-0/+8
|/ /
* | Update CODEOWNERSGravatar Joe Banks2020-11-26-2/+2
| |
* | Update CODEOWNERSGravatar Dennis Pham2020-11-24-2/+2
| |
| * Update information for the .aoc about embedGravatar Sebastiaan Zeeff2020-11-30-4/+4
| | | | | | | | | | | | | | | | | | | | | | I've updated the information for the about embed: - Added information on the scoring of private leaderboards - Changed the text of "join our private leaderboard", as we no longer have to introduce private leaderboards there. - I've also streamlined the section on Auth providers.
| * Add global leaderboard command backGravatar Sebastiaan Zeeff2020-11-30-0/+16
| | | | | | | | | | I accidentally removed the global leaderboard command. I've added it back!
| * Fix docstrings and add a few explanatory commentsGravatar Sebastiaan Zeeff2020-11-30-5/+8
| |
| * Set correct channel ID as default for AoC channelGravatar Sebastiaan Zeeff2020-11-30-1/+1
| |
| * Remove now redundant advent_of_code_staff constantGravatar Sebastiaan Zeeff2020-11-30-2/+1
| | | | | | | | | | We're no longer going to use a two-channel setup for this event, as we don't want to split the event community into two, staff and non-staff.
| * Remove redundant _error_embed_helper functionGravatar Sebastiaan Zeeff2020-11-30-7/+3
| | | | | | | | | | | | This helper function was only being used in one spot and did not factor out any logic. I've removed the helper function to just create the embed where it's needed.
| * Rewrite Advent of Code leaderboard logicGravatar Sebastiaan Zeeff2020-11-30-0/+680
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I've rewritten the Advent of Code leaderboard logic. Unfortunately, nearly all of the changes made are interrelated, meaning that they've ended up in the same commit. To add a bit of structure to the extension, I've chosen for a subpackage structure instead of a single file structure. The biggest changes: - Whether or not you get a join code for the staff leaderboard will now be determined by looking for the Helpers-role. - The Python Discord Leaderboard now includes all boards, including the staff leaderboard. This is one event. - Redis is now used to set a cache expiry period. This means that our code does not have to check for cache staleness; Redis will do that for us. - The period "fetching" task has been removed. We now fetch solely when the data is needed to prevent putting unnecessary stress on the Advent of Code website. - The option to display the Global Leaderboard within Discord has been removed. Rather, we now link to the website. This simplified the code for now, although we could add it back later. - An additional command, `.aoc refresh`, has been added to allow Admins and the Events Lead to force the cache to be invalidated. This should be done sparingly to not overburden the AoC website. - I've also made sure that the daily notification task actually pings the notification role by setting the `allowed_mentions` kwarg.
| * Remove adventofcode.py in favour of subpackageGravatar Sebastiaan Zeeff2020-11-30-983/+0
| | | | | | | | | | | | As the Advent of Code file was getting massive, I've removed the old single-file based extension as I'm going to replace it with a partially rewritten subpackage-based extension.
| * Add constants parsing for multiple leaderboardsGravatar Sebastiaan Zeeff2020-11-30-9/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I've added a unified approach to setting data for multiple leaderboards using environmental variables. Instead of setting separate variables for the three pieces of data we have, hoping that the position of each board matches up in the three fields, I now set one environmental variable, AOC_LEADERBOARDS, that holds delimited data. The data is in the format: board_id1,session1,join_code1::board_id2,session2,join_code2[::...] The staff leaderboards should be included as usual in this environmental variable. Another environment variable, AOC_STAFF_LEADERBOARD_ID, can be used to designate which leaderboard should be used as the staff board. I've also made some other constants configurable in this commit and added the role ID of the Events Lead role to allow the Events Lead to force a reload of the leaderboard cache.
| * Fix adventofcode extension (and constants) grammarGravatar ks1292020-11-27-12/+12
| | | | | | Co-authored-by: Joe Banks <[email protected]>
| * Use default 0 for score and reverse leaderboard membersGravatar ks1292020-11-27-1/+3
| |
| * Handle leaderboard cache create/update failGravatar ks1292020-11-27-12/+52
| |
| * Remove unnecessary check for members in leaderboard updater taskGravatar ks1292020-11-27-3/+1
| |
| * Add comment about choosing leaderboard for userGravatar ks1292020-11-27-0/+1
| |
| * Store AoC leaderboard IDs instead join codes for users mappingGravatar ks1292020-11-26-5/+10
| |
| * Implement staff and public leaderboardsGravatar ks1292020-11-26-58/+197
| |
| * Implement different invitation codes for staff and public leaderboardsGravatar ks1292020-11-25-11/+66
| |
| * Add comments about AoC env config order and change cookies wayGravatar ks1292020-11-24-1/+4
| |
| * Add staff AoC channel to whitelistGravatar ks1292020-11-24-1/+1
| |
| * Update constants to match with new format of AoC that will run in 2020Gravatar ks1292020-11-24-3/+6
|/
* Update CODEOWNERSGravatar Joe Banks2020-11-24-1/+2
|
* Update CODEOWNERSGravatar Joe Banks2020-11-24-1/+1
|
* Merge pull request #524 - add wonder twins commandGravatar Mark2020-11-23-0/+148
|\
| * Merge branch 'master' into feature/wonder-twins-commandGravatar ks1292020-11-23-1115/+303
| |\
| * | fix typos in docstringGravatar fisher602020-11-22-1/+1
| | |
| * | make init variables more readable, fix docstring, remove redundant listGravatar fisher602020-11-22-6/+6
| | |
| * | move constants to init, change [-1] to .endswith()Gravatar fisher602020-11-21-9/+9
| | |
| * | feature/add wonder twins commandGravatar fisher602020-11-19-0/+148
| | | | | | | | | | | | This commit implements a wonder twins inspired command. This is a purely fun command that uses real transformations from the show to make random new transformations. The yaml is all hand transcribed from the actual show.