Currently, the Cogs are implemented under the assumption that they will be used with botty.py specifically. If the project is ever released as a package, the Cogs should be structured in such a way that they can be used in other bots, if those bots adhere to the requirements of the cog.
Criteria for completion:
Make cogs independent of each other, no cross-references in functionality
Global resources, such as the mongodb database, and the openai client, should be stored in the bot class instance for use across cogs
Assert at the creation of each cog that the resources required for that cog are present in the bot the cog is attached to.
Note: cogs will currently still have the bot parameter typehinted as Botty, because that makes for easier development within the project. This can be solved by downstream users sub-classing Botty, or it can be changed in the future.
Currently, the Cogs are implemented under the assumption that they will be used with
botty.py
specifically. If the project is ever released as a package, the Cogs should be structured in such a way that they can be used in other bots, if those bots adhere to the requirements of the cog. Criteria for completion:Note: cogs will currently still have the
bot
parameter typehinted asBotty
, because that makes for easier development within the project. This can be solved by downstream users sub-classingBotty
, or it can be changed in the future.