aboutsummaryrefslogtreecommitdiffstats
path: root/bot (follow)
Commit message (Collapse)AuthorAgeLines
* Deseasonify: lock branding commands to moderation rolesGravatar kwzrd2020-03-15-1/+3
|
* Deseasonify: use more descriptive name for `Record` namedtupleGravatar kwzrd2020-03-15-15/+15
|
* Deseasonify: improve logic in `set` commandGravatar kwzrd2020-03-14-14/+15
| | | | | | | | Prevent re-applying branding if the user requests an already active season. This saves us an expensive operation. Only trigger typing if season switch was successful and `apply` will be called, as otherwise the bot will respond immediately.
* Deseasonify: implement `BrandingManager` cogGravatar kwzrd2020-03-14-0/+312
| | | | | | | | | | | Provides a background daemon capable of autonomously managing the guild's and bot's branding across seasons. Alternatively, the cog can be manually controlled via the `branding` command group. See docstrings for detailed implementation details. Actual calls to Discord API are commented out and replaced with logs, to prevent API abuse during development.
* Deseasonify: improve documentation for `icon_cycle_frequency`Gravatar kwzrd2020-03-14-1/+1
|
* Deseasonify: add `set_banner` method to SeasonalBotGravatar kwzrd2020-03-14-0/+18
|
* Deseasonify: add convenience method to get season by nameGravatar kwzrd2020-03-14-2/+17
|
* Deseasonify: add convenience method to get current seasonGravatar kwzrd2020-03-14-2/+22
|
* Deseasonify: lock daily tasks to their seasons' respective monthsGravatar kwzrd2020-03-08-8/+15
| | | | | | | Applies to daily egg facts and pride facts of the day. Currently, we do not have any sophisticated mechanism in place. However, we can simply configure `active_months` for the cog, and then have the task perform a membership check in each cycle.
* Deseasonify: adjust inheriting seasons in accordance with new systemGravatar kwzrd2020-03-08-66/+26
| | | | | Ensure that all inheriting seasons are now providing the right attrs as defined in `SeasonBase`.
* Deseasonify: remove `Evergreen` seasonGravatar kwzrd2020-03-08-17/+0
| | | | | The `SeasonBase` now serves as the fallback, off-season season for when no other season is available.
* Deseasonify: implement `SeasonBase` for new seasonal systemGravatar kwzrd2020-03-08-12/+16
| | | | See class docstring for implementation details.
* Deseasonify: allow `get_extensions` to find cogs in `seasons`Gravatar kwzrd2020-03-08-3/+7
| | | | | | | | | Add a conditional check to handle cases where `package` is, in fact, just a plain module, and should be loaded directly rather than being searched for modules. The naming here could be improved: `package` does not necessarily have to be a package.
* Deseasonify: remove redundant importGravatar kwzrd2020-03-07-2/+0
|
* Deseasonify: remove empty season moduleGravatar kwzrd2020-03-07-0/+0
| | | | The file snuck back in during merge conflict resolve.
* Deseasonify: create daily tasks inside cog init; wait until readyGravatar kwzrd2020-03-07-2/+6
| | | | | | | | | | Previously, the cog was being instantiated once: once to launch the task, and once to be registered under `bot`. Now, the cog is only created once, and the task is built inside the cog's init. Since cogs are now loaded before the bot connects, the tasks need to wait before the bot's cache is ready, to ensure that the channel is found.
* Deseasonify: remove reference to non-existent task, redundant attrGravatar kwzrd2020-03-07-7/+0
| | | | | | | | | | The `_fact_publisher_task` task was removed many commits ago, yet the listener still attempts to launch it. There is no need to set the channel instance attr, as it isn't used anywhere. This renders the listener useless, and it can be removed.
* Merge branch 'master' into seasonal-purgeGravatar kwzrd2020-03-07-117/+510
|\ | | | | | | | | Update the feature branch. This resolves a conflict in the season.py module, which has been since been deprecated and removed.
| * Add more pre-commit hooksGravatar MarkKoz2020-03-04-91/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hooks added: * check-merge-conflict - checks for files with merge conflict strings * check-toml - attempts to load all toml files to verify syntax * check-yaml - attempts to load all yaml files to verify syntax * end-of-file-fixer - ensures files end in a newline and only a newline * mixed-line-ending - replaces mixed line endings with LF * trailing-whitespace - trims trailing whitespace * python-check-blanket-noqa - enforces that noqa annotations always occur with specific codes Changes made to comply with new hooks: * Remove trailing whitespaces * Convert some CRLF files to LF * Remove noqa and add missing type annotations * Add missing newlines at end of files See: python-discord/organisation#138
| * Update dependenciesGravatar MarkKoz2020-03-04-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | The pipfile will need to be re-locked to add a dependency so may as well re-pin some dependencies to reflect the more recent versions that will be used. discord.py was pinned to a patch version instead of a minor version to be on the safe side. Notable updates: * discord.py -> 1.3.2 * flake8-annotation -> 2.0 * pre-commit -> 2.1
| * Merge branch 'master' into games-commandGravatar Shirayuki Nekomata2020-03-05-17/+27
| |\
| | * Strip references to seasonalbot chatGravatar S. Co12020-03-01-14/+12
| | | | | | | | | | | | Redirect any output to seasonalbot commands, where relevant
| | * Update devlog channel constantGravatar S. Co12020-02-25-1/+1
| | | | | | | | | The log channels have become one
| | * Cycle icons within season in configured interval onlyGravatar kwzrd2020-02-23-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `load_seasons` task now has an internal state, which increments for every day. Before cycling the icon within the same season, first check whether we've waited the configured amount of days since the last cycle. Entering a new season, or changing the icon, resets the state to 0. This allows us to slow down the rate at which we cycle icons, addressing a bug where the icon wasn't loading for some users.
| | * Add icon cycle frequency constantGravatar kwzrd2020-02-23-0/+1
| | |
| | * Calculate seconds as n_hours * seconds_in_hourGravatar kwzrd2020-02-23-1/+1
| | | | | | | | | | | | This is a lot more readable than just 86400.
| * | (Games Cog): Added space between game search result + removed cutoff in ↵Gravatar Karlis S2020-03-04-2/+2
| | | | | | | | | | | | get_close_matches.
| * | (Games Cog): Moved `string.Template` to `str.format()`, applied changes ↵Gravatar ks1232020-03-04-51/+37
| | | | | | | | | | | | everywhere.
| * | (Games Cog): Moved self.genres to __init__ and added type hints. Added lower ↵Gravatar ks1232020-03-04-3/+3
| | | | | | | | | | | | `difflib.get_close_matches` cutoff from 0.6 (default) to 0.4.
| * | (Games Cog): Replaced - with space in genre aliases, added multiword genres ↵Gravatar ks1232020-03-04-9/+10
| | | | | | | | | | | | support for .games command, modified docstring to explain this and added str.title() to embed title genre showing.
| * | (Games Cog): Remove too much empty lines in .games search command, simplify ↵Gravatar ks1232020-03-04-1/+1
| | | | | | | | | | | | lines.
| * | (Games Cog): Stop refreshing genres task when Cog unloadGravatar ks1232020-03-04-0/+5
| | |
| * | (Games Cog): Added try block to genres refresh task.Gravatar ks1232020-03-04-1/+6
| | |
| * | (Games Cog): Added .games refresh|r command for refreshing genres.Gravatar ks1232020-03-04-1/+13
| | |
| * | (Games Cog): Created task for fetching genres (every hour)Gravatar ks1232020-03-04-2/+7
| | |
| * | (Games Cog): Fixed _get_genres function looping over genres (started using ↵Gravatar ks1232020-03-04-5/+5
| | | | | | | | | | | | dict.items())
| * | (Games Cog): Fixed get_games_list calling formatting at L192Gravatar ks1232020-03-04-2/+1
| | |
| * | (Games Cog): Fixed companies list generating code (.games <genre> command).Gravatar ks1232020-03-02-3/+2
| | |
| * | (Games Cog): Added comments about offsets, use keyword parameters for ↵Gravatar ks1232020-03-02-1/+5
| | | | | | | | | | | | get_companies_list.
| * | (Games Cog): Fixed and added content to docstrings.Gravatar ks1232020-03-02-2/+7
| | |
| * | (Games Cog): Moved layouts, request bodies and URLs to Templates. Added ↵Gravatar ks1232020-02-28-162/+213
| | | | | | | | | | | | token check on load. Other small code improvisations.
| * | Added .games command with all it's subcommands, added IGDB token requirement ↵Gravatar Karlis S2020-02-25-19/+4
| | | | | | | | | | | | to constants.py.
| * | Remove keys() from total_rating count (Games Cog)Gravatar Karlis S2020-02-25-1/+1
| | | | | | | | | Co-Authored-By: Thomas Petersson <[email protected]>
| * | Added .games command with all it's subcommands, added IGDB token requirement ↵Gravatar ks1232020-02-25-0/+339
| |/ | | | | | | to constants.py.
* | Deseasonify: load all extensions on start-upGravatar kwzrd2020-03-07-0/+5
| | | | | | | | Extensions are no longer bound to their respective seasons.
* | Deseasonify: move 'SeasonBase' to seasons package initGravatar kwzrd2020-03-07-41/+20
| | | | | | | | | | The season module can now be safely deleted, as everything defined here has either been removed or moved elsewhere.
* | Deseasonify: add `get_extensions` helper functionGravatar kwzrd2020-03-07-1/+20
| | | | | | | | See docstring for further details.
* | Deseasonify: move `get_seasons` util function to package initGravatar kwzrd2020-03-07-15/+16
| |
* | Deseasonify: do not load legacy SeasonManager on start-upGravatar kwzrd2020-03-07-1/+0
| |
* | Deseasonify: remove `get_season_class` utility functionGravatar kwzrd2020-03-07-7/+0
| |