The following are configurations that can be used to setup a clone of the Python bot in your own test server. This assumes you created the test server using the provided template:
https://discord.new/zmHtscpYN9E3
Keep in mind that this is not a mirror of the Python server, and is a reduced version for testing purposes. A lot of the channels in the Python server were merged.
To use the config, copy the contents of the code block below into a new file named config.yml
in your clone of the bot repository.
Pay attention to the comments with several #
symbols, and replace the � characters with the right ID's.
bot:
##### << The prefix you want for your test bot >> #####
prefix: "!"
redis:
host: "redis"
password: null
port: 6379
use_fakeredis: true
stats:
presence_update_timeout: 300
statsd_host: "graphite.default.svc.cluster.local"
urls:
# PyDis site vars
site: &DOMAIN "web:8000"
site_api: &API !JOIN ["api.", *DOMAIN]
site_api_schema: "http://"
site_paste: &PASTE !JOIN ["paste.", "pythondiscord.com"]
site_schema: &SCHEMA "http://"
site_staff: &STAFF !JOIN ["staff.", *DOMAIN]
paste_service: !JOIN ["https://", *PASTE, "/{key}"]
site_logs_view: !JOIN [*SCHEMA, *STAFF, "/bot/logs"]
# Snekbox
snekbox_eval_api: "http://localhost:8060/eval"
##### << Replace the following � characters with the channel ID's in your test server >> #####
# This assumes the template was used: https://discord.new/zmHtscpYN9E3
dev_guild:
id: &DEV_GUILD_ID 476190141161930753
categories:
logs: &DEV_LOGS �
help_available: &DEV_HELP_AVAILABLE �
help_occupied: &DEV_HELP_OCCUPIED �
help_dormant: &DEV_HELP_DORMANT �
voice: &DEV_VOICE �
channels:
# Staff
admins_mods: &DEV_ADMINS_MODS �
lounge_helpers_org: &DEV_LOUNGE_HELPERS_ORG �
defcon: &DEV_DEFCON �
incidents: &DEV_INCIDENTS �
incidents_archive: &DEV_INCIDENTS_ARCHIVE �
staff_announcements: &DEV_STAFF_ANNOUNCEMENTS �
dev_logs: &DEV_DEV_LOGS �
# Logs
all_logs: &DEV_ALL_LOGS �
bb_logs: &DEV_BB_LOGS �
duck_pond: &DEV_DUCK_POND �
# Available Help Channels
how_to_get_help: &DEV_HTGH �
# Miscellaneous
bot_commands: &DEV_BOT_CMD �
general_meta_voice: &DEV_GMV �
dev_core_contrib: &DEV_DEV �
# Voice
voice-verification: &DEV_VOICE_VER �
vc: &DEV_VC �
staff_voice: &DEV_STAFF_VOICE �
# News
announcements: &DEV_ANNOUNCEMENTS �
py_news: &DEV_PY_NEWS �
# Off-topic
off_topic_0: &DEV_OT_0 �
off_topic_1: &DEV_OT_1 �
off_topic_2: &DEV_OT_2 �
guild:
##### << Replace the following � characters with the role and webhook ID's in your test server >> #####
roles:
announcements: �
contributors: �
help_cooldown: �
muted: &MUTED_ROLE �
partners: &PY_PARTNER_ROLE �
python_community: &PY_COMMUNITY_ROLE �
voice_verified: �
# Staff
admins: &ADMINS_ROLE �
core_developers: �
devops: �
domain_leads: �
helpers: &HELPERS_ROLE �
moderators: &MODS_ROLE �
mod_team: &MOD_TEAM_ROLE �
owners: &OWNERS_ROLE �
code_jam_event_team: �
project_leads: �
# Code Jam
jammers: �
team_leaders: �
# Streaming
video: �
webhooks:
big_brother: �
dev_log: �
dm_log: �
duck_pond: �
incidents_archive: �
python_news: &PYNEWS_WEBHOOK �
reddit: �
talent_pool: �
##### << At this point your test bot should be able to mostly work with your test server >> #####
# The following is the actual configs the bot uses, don't delete these.
id: *DEV_GUILD_ID
invite: "https://discord.gg/python"
categories:
help_available: *DEV_HELP_AVAILABLE
help_dormant: *DEV_HELP_DORMANT
help_in_use: *DEV_HELP_OCCUPIED
logs: *DEV_LOGS
voice: *DEV_VOICE
channels:
# Public announcement and news channels
announcements: *DEV_ANNOUNCEMENTS
change_log: *DEV_ANNOUNCEMENTS
mailing_lists: *DEV_ANNOUNCEMENTS
python_events: *DEV_ANNOUNCEMENTS
python_news: *DEV_PY_NEWS
# Development
dev_contrib: *DEV_DEV
dev_core: *DEV_DEV
dev_log: *DEV_DEV_LOGS
# Discussion
meta: *DEV_GMV
python_general: *DEV_GMV
# Python Help: Available
cooldown: *DEV_HTGH
how_to_get_help: *DEV_HTGH
# Topical
discord_py: *DEV_GMV
# Logs
attachment_log: *DEV_ALL_LOGS
message_log: *DEV_ALL_LOGS
mod_log: *DEV_ALL_LOGS
user_log: *DEV_ALL_LOGS
voice_log: *DEV_ALL_LOGS
# Off-topic
off_topic_0: *DEV_OT_0
off_topic_1: *DEV_OT_1
off_topic_2: *DEV_OT_2
# Special
bot_commands: *DEV_BOT_CMD
voice_gate: *DEV_VOICE_VER
code_jam_planning: *DEV_ADMINS_MODS
# Staff
admins: *DEV_ADMINS_MODS
admin_spam: *DEV_ADMINS_MODS
defcon: *DEV_DEFCON
duck_pond: *DEV_DUCK_POND
helpers: *DEV_LOUNGE_HELPERS_ORG
incidents: *DEV_INCIDENTS
incidents_archive: *DEV_INCIDENTS_ARCHIVE
mods: *DEV_ADMINS_MODS
mod_alerts: *DEV_ADMINS_MODS
mod_meta: *DEV_ADMINS_MODS
mod_spam: *DEV_ADMINS_MODS
mod_tools: *DEV_ADMINS_MODS
organisation: *DEV_LOUNGE_HELPERS_ORG
staff_lounge: *DEV_LOUNGE_HELPERS_ORG
# Staff announcement channels
admin_announcements: *DEV_STAFF_ANNOUNCEMENTS
mod_announcements: *DEV_STAFF_ANNOUNCEMENTS
staff_announcements: *DEV_STAFF_ANNOUNCEMENTS
# Voice Channels
admins_voice: *DEV_STAFF_VOICE
code_help_voice_1: *DEV_VC
code_help_voice_2: *DEV_VC
general_voice: *DEV_VC
staff_voice: *DEV_STAFF_VOICE
# Voice Chat
code_help_chat_1: *DEV_GMV
code_help_chat_2: *DEV_GMV
staff_voice_chat: *DEV_ADMINS_MODS
voice_chat: *DEV_GMV
# Watch
big_brother_logs: *DEV_BB_LOGS
moderation_categories:
- *DEV_LOGS
moderation_channels:
- *DEV_ADMINS_MODS
# Modlog cog ignores events which occur in these channels
modlog_blacklist:
- *DEV_ADMINS_MODS
- *DEV_ALL_LOGS
- *DEV_STAFF_VOICE
reminder_whitelist:
- *DEV_BOT_CMD
- *DEV_DEV
moderation_roles:
- *ADMINS_ROLE
- *MODS_ROLE
- *MOD_TEAM_ROLE
- *OWNERS_ROLE
staff_roles:
- *ADMINS_ROLE
- *HELPERS_ROLE
- *MODS_ROLE
- *OWNERS_ROLE
##### << The bot shouldn't fail without these, but commands adding specific emojis won't work. >> #####
# You should at least set the trashcan. Set the incidents emojis if relevant.
style:
emojis:
badge_bug_hunter: "<:bug_hunter_lvl1:�>"
badge_bug_hunter_level_2: "<:bug_hunter_lvl2:�>"
badge_early_supporter: "<:early_supporter:�>"
badge_hypesquad: "<:hypesquad_events:�>"
badge_hypesquad_balance: "<:hypesquad_balance:�>"
badge_hypesquad_bravery: "<:hypesquad_bravery:�>"
badge_hypesquad_brilliance: "<:hypesquad_brilliance:�>"
badge_partner: "<:partner:�>"
badge_staff: "<:discord_staff:�>"
badge_verified_bot_developer: "<:verified_bot_dev:�>"
defcon_shutdown: "<:defcondisabled:�>"
defcon_unshutdown: "<:defconenabled:�>"
defcon_update: "<:defconsettingsupdated:�>"
failmail: "<:failmail:�>"
#incident_actioned: "<:incident_actioned:�>"
incident_investigating: "<:incident_investigating:�>"
incident_unactioned: "<:incident_unactioned:�>"
status_dnd: "<:status_dnd:�>"
status_idle: "<:status_idle:�>"
status_offline: "<:status_offline:�>"
status_online: "<:status_online:�>"
trashcan: "<:trashcan:�>"
##### << Optional - If you don't care about the filtering and help channel cogs, ignore the rest of this file >> #####
filter:
# What do we filter?
filter_domains: true
filter_everyone_ping: true
filter_invites: true
filter_zalgo: false
watch_regex: true
watch_rich_embeds: true
# Notify user on filter?
# Notifications are not expected for "watchlist" type filters
notify_user_domains: false
notify_user_everyone_ping: true
notify_user_invites: true
notify_user_zalgo: false
# Filter configuration
offensive_msg_delete_days: 7 # How many days before deleting an offensive message?
ping_everyone: true
# Censor doesn't apply to these
channel_whitelist:
- *DEV_ADMINS_MODS
- *DEV_BB_LOGS
- *DEV_ALL_LOGS
- *DEV_LOUNGE_HELPERS_ORG
role_whitelist:
- *ADMINS_ROLE
- *HELPERS_ROLE
- *MODS_ROLE
- *OWNERS_ROLE
- *PY_COMMUNITY_ROLE
- *PY_PARTNER_ROLE
help_channels:
enable: true
# Minimum interval before allowing a certain user to claim a new help channel
claim_minutes: 1
# Roles which are allowed to use the command which makes channels dormant
cmd_whitelist:
- *HELPERS_ROLE
# Allowed duration of inactivity before making a channel dormant
idle_minutes: 1
# Allowed duration of inactivity when channel is empty (due to deleted messages)
# before message making a channel dormant
deleted_idle_minutes: 1
# Maximum number of channels to put in the available category
max_available: 2
# Maximum number of channels across all 3 categories
# Note Discord has a hard limit of 50 channels per category, so this shouldn't be > 50
max_total_channels: 20
# Prefix for help channel names
name_prefix: 'help-'
# Notify if more available channels are needed but there are no more dormant ones
notify: true
# Channel in which to send notifications
notify_channel: *DEV_LOUNGE_HELPERS_ORG
# Minimum interval between helper notifications
notify_minutes: 5
# Mention these roles in notifications
notify_roles:
- *HELPERS_ROLE
##### << Add any additional sections you need to override from config-default.yml >> #####