The Overseer is a basic asynchronous Discord bot using asyncio that carries out simple tasks for the following:
- Calendar management
- File conversion
- Moderation
- Text formatting
- discord.py (The Overseer's Core)
- glom (
overseer.bot
) - icalendar (
overseer.cogs.calendar
) - asynctempfile (
overseer.cogs.conversion
) - aiohttp (
overseer.cogs.fun
) - PyYAML (
overseer.utils.configs
) - python-Levenshtein (
overseer.utils.error_handlers
)
The Overseer uses .yaml
configuration files to run properly. Some are essential and the Overseer will not start without them. Others are optional and will fall back on default configurations if an associated .yaml
file is not found. All configuration files should exist in the ~/overseer/.config
directory.
All the Overseer's configuration files are listed below:
-
Required
-
overseer.yaml
- The essential configs for the Overseer. Example formatting:token: <token - string> application_id: <id - int> owners: - <owner1_id - int> - <owner2_id - int> ... general_channel_id: <channel_id - int> bot_prefix: <prefix - string> intents: bans: <boolean> dm_messages: <boolean> guilds: <boolean> ...
-
colors.yaml
- All the colors that the Overseer will use during execution. Example formatting:red: <hex_code - int> yellow: <hex_code - int> green: <hex_code - int>
-
conversion.yaml
- The different kinds of supported file conversions and their associatedffmpeg
arguments. Example formatting:valid_conversions: !!python/tuple [<from_extension - string>, <to_extension - string>]: [[<input_arguments - string>], [<output_arguments - string>]] ... aliases: <extension - string>: <aliased_extension - string> ... unsupported_embeds: !!set {<extension - string>}
-
-
Optional
-
logging.yaml
- The Overseer's logger configurations. Example formatting:version: <version_no - int> formatters: <formatter_name - string>: format: <format_string - string> datefmt: <date_format_string - string> handlers: console: class: logging.StreamHandler level: <DEBUG | INFO | WARNING | ERROR | CRITICAL> formatter: <formatter_name> stream: ext://sys.<stdout | stderr> file: class: logging.FileHandler level: <DEBUG | INFO | WARNING | ERROR | CRITICAL> formatter: <formatter_name> filename: <file_path: string> loggers: overseer: level: <DEBUG | INFO | WARNING | ERROR | CRITICAL> handlers: [console, file] root: level: <DEBUG | INFO | WARNING | ERROR | CRITICAL> handlers: [console, file]
-
The different ways to run the Overseer from the main overseer
directory are as follows:
-
Using the Python Launcher:
py -<version> bot.py
-
Using the regular Python executable:
python bot.py