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 associatedffmpegarguments. 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