bot: prefix: "!" token: !ENV "BOT_TOKEN" sentry_dsn: !ENV "BOT_SENTRY_DSN" stats: statsd_host: "graphite" presence_update_timeout: 300 cooldowns: # Per channel, per tag. tags: 60 clean: # Maximum number of messages to traverse for clean commands message_limit: 10000 style: colours: soft_red: 0xcd6d6d soft_green: 0x68c290 soft_orange: 0xf9cb54 emojis: defcon_disabled: "<:defcondisabled:470326273952972810>" defcon_enabled: "<:defconenabled:470326274213150730>" defcon_updated: "<:defconsettingsupdated:470326274082996224>" status_online: "<:status_online:470326272351010816>" status_idle: "<:status_idle:470326266625785866>" status_dnd: "<:status_dnd:470326272082313216>" status_offline: "<:status_offline:470326266537705472>" failmail: "<:failmail:633660039931887616>" trashcan: "<:trashcan:637136429717389331>" bullet: "\u2022" pencil: "\u270F" new: "\U0001F195" cross_mark: "\u274C" check_mark: "\u2705" ducky_yellow: &DUCKY_YELLOW 574951975574175744 ducky_blurple: &DUCKY_BLURPLE 574951975310065675 ducky_regal: &DUCKY_REGAL 637883439185395712 ducky_camo: &DUCKY_CAMO 637914731566596096 ducky_ninja: &DUCKY_NINJA 637923502535606293 ducky_devil: &DUCKY_DEVIL 637925314982576139 ducky_tube: &DUCKY_TUBE 637881368008851456 ducky_hunt: &DUCKY_HUNT 639355090909528084 ducky_wizard: &DUCKY_WIZARD 639355996954689536 ducky_party: &DUCKY_PARTY 639468753440210977 ducky_angel: &DUCKY_ANGEL 640121935610511361 ducky_maul: &DUCKY_MAUL 640137724958867467 ducky_santa: &DUCKY_SANTA 655360331002019870 upvotes: "<:upvotes:638729835245731840>" comments: "<:comments:638729835073765387>" user: "<:user:638729835442602003>" icons: crown_blurple: "https://cdn.discordapp.com/emojis/469964153289965568.png" crown_green: "https://cdn.discordapp.com/emojis/469964154719961088.png" crown_red: "https://cdn.discordapp.com/emojis/469964154879344640.png" defcon_denied: "https://cdn.discordapp.com/emojis/472475292078964738.png" defcon_disabled: "https://cdn.discordapp.com/emojis/470326273952972810.png" defcon_enabled: "https://cdn.discordapp.com/emojis/470326274213150730.png" defcon_updated: "https://cdn.discordapp.com/emojis/472472638342561793.png" filtering: "https://cdn.discordapp.com/emojis/472472638594482195.png" guild_update: "https://cdn.discordapp.com/emojis/469954765141442561.png" hash_blurple: "https://cdn.discordapp.com/emojis/469950142942806017.png" hash_green: "https://cdn.discordapp.com/emojis/469950144918585344.png" hash_red: "https://cdn.discordapp.com/emojis/469950145413251072.png" message_bulk_delete: "https://cdn.discordapp.com/emojis/469952898994929668.png" message_delete: "https://cdn.discordapp.com/emojis/472472641320648704.png" message_edit: "https://cdn.discordapp.com/emojis/472472638976163870.png" sign_in: "https://cdn.discordapp.com/emojis/469952898181234698.png" sign_out: "https://cdn.discordapp.com/emojis/469952898089091082.png" token_removed: "https://cdn.discordapp.com/emojis/470326273298792469.png" user_ban: "https://cdn.discordapp.com/emojis/469952898026045441.png" user_unban: "https://cdn.discordapp.com/emojis/469952898692808704.png" user_update: "https://cdn.discordapp.com/emojis/469952898684551168.png" user_mute: "https://cdn.discordapp.com/emojis/472472640100106250.png" user_unmute: "https://cdn.discordapp.com/emojis/472472639206719508.png" user_verified: "https://cdn.discordapp.com/emojis/470326274519334936.png" user_warn: "https://cdn.discordapp.com/emojis/470326274238447633.png" pencil: "https://cdn.discordapp.com/emojis/470326272401211415.png" remind_blurple: "https://cdn.discordapp.com/emojis/477907609215827968.png" remind_green: "https://cdn.discordapp.com/emojis/477907607785570310.png" remind_red: "https://cdn.discordapp.com/emojis/477907608057937930.png" questionmark: "https://cdn.discordapp.com/emojis/512367613339369475.png" superstarify: "https://cdn.discordapp.com/emojis/636288153044516874.png" unsuperstarify: "https://cdn.discordapp.com/emojis/636288201258172446.png" voice_state_blue: "https://cdn.discordapp.com/emojis/656899769662439456.png" voice_state_green: "https://cdn.discordapp.com/emojis/656899770094452754.png" voice_state_red: "https://cdn.discordapp.com/emojis/656899769905709076.png" guild: id: 267624335836053506 categories: help_available: 691405807388196926 help_in_use: 696958401460043776 help_dormant: 691405908919451718 channels: announcements: 354619224620138496 user_event_announcements: &USER_EVENT_A 592000283102674944 python_news: &PYNEWS_CHANNEL 704372456592506880 # Development dev_contrib: &DEV_CONTRIB 635950537262759947 dev_core: &DEV_CORE 411200599653351425 dev_log: &DEV_LOG 622895325144940554 # Discussion meta: 429409067623251969 python_discussion: 267624335836053506 # Python Help: Available how_to_get_help: 704250143020417084 # Logs attachment_log: &ATTACH_LOG 649243850006855680 message_log: &MESSAGE_LOG 467752170159079424 mod_log: &MOD_LOG 282638479504965634 user_log: 528976905546760203 voice_log: 640292421988646961 # Off-topic off_topic_0: 291284109232308226 off_topic_1: 463035241142026251 off_topic_2: 463035268514185226 # Special bot_commands: &BOT_CMD 267659945086812160 esoteric: 470884583684964352 reddit: 458224812528238616 verification: 352442727016693763 # Staff admins: &ADMINS 365960823622991872 admin_spam: &ADMIN_SPAM 563594791770914816 defcon: &DEFCON 464469101889454091 helpers: &HELPERS 385474242440986624 mods: &MODS 305126844661760000 mod_alerts: &MOD_ALERTS 473092532147060736 mod_spam: &MOD_SPAM 620607373828030464 organisation: &ORGANISATION 551789653284356126 staff_lounge: &STAFF_LOUNGE 464905259261755392 # Voice admins_voice: &ADMINS_VOICE 500734494840717332 staff_voice: &STAFF_VOICE 412375055910043655 # Watch big_brother_logs: &BB_LOGS 468507907357409333 talent_pool: &TALENT_POOL 534321732593647616 staff_channels: - *ADMINS - *ADMIN_SPAM - *DEFCON - *HELPERS - *MODS - *MOD_SPAM - *ORGANISATION moderation_channels: - *ADMINS - *ADMIN_SPAM - *MOD_ALERTS - *MODS - *MOD_SPAM # Modlog cog ignores events which occur in these channels modlog_blacklist: - *ADMINS - *ADMINS_VOICE - *ATTACH_LOG - *MESSAGE_LOG - *MOD_LOG - *STAFF_VOICE reminder_whitelist: - *BOT_CMD - *DEV_CONTRIB roles: announcements: 463658397560995840 contributors: 295488872404484098 help_cooldown: 699189276025421825 muted: &MUTED_ROLE 277914926603829249 partners: 323426753857191936 python_community: &PY_COMMUNITY_ROLE 458226413825294336 # This is the Developers role on PyDis, here named verified for readability reasons verified: 352427296948486144 # Staff admins: &ADMINS_ROLE 267628507062992896 core_developers: 587606783669829632 helpers: &HELPERS_ROLE 267630620367257601 moderators: &MODS_ROLE 267629731250176001 owners: &OWNERS_ROLE 267627879762755584 # Code Jam jammers: 591786436651646989 team_leaders: 501324292341104650 moderation_roles: - *OWNERS_ROLE - *ADMINS_ROLE - *MODS_ROLE staff_roles: - *OWNERS_ROLE - *ADMINS_ROLE - *MODS_ROLE - *HELPERS_ROLE webhooks: talent_pool: 569145364800602132 big_brother: 569133704568373283 reddit: 635408384794951680 duck_pond: 637821475327311927 dev_log: 680501655111729222 python_news: &PYNEWS_WEBHOOK 704381182279942324 filter: # What do we filter? filter_zalgo: false filter_invites: true filter_domains: true watch_regex: true watch_rich_embeds: true # Notify user on filter? # Notifications are not expected for "watchlist" type filters notify_user_zalgo: false notify_user_invites: true notify_user_domains: false # Filter configuration ping_everyone: true # Ping @everyone when we send a mod-alert? guild_invite_whitelist: - 280033776820813825 # Functional Programming - 267624335836053506 # Python Discord - 440186186024222721 # Python Discord: Emojis 1 - 578587418123304970 # Python Discord: Emojis 2 - 273944235143593984 # STEM - 348658686962696195 # RLBot - 531221516914917387 # Pallets - 249111029668249601 # Gentoo - 327254708534116352 # Adafruit - 544525886180032552 # kennethreitz.org - 590806733924859943 # Discord Hack Week - 423249981340778496 # Kivy - 197038439483310086 # Discord Testers - 286633898581164032 # Ren'Py - 349505959032389632 # PyGame - 438622377094414346 # Pyglet - 524691714909274162 # Panda3D - 336642139381301249 # discord.py - 405403391410438165 # Sentdex - 172018499005317120 # The Coding Den - 666560367173828639 # PyWeek - 702724176489873509 # Microsoft Python - 81384788765712384 # Discord API - 613425648685547541 # Discord Developers - 185590609631903755 # Blender Hub domain_blacklist: - pornhub.com - liveleak.com - grabify.link - bmwforum.co - leancoding.co - spottyfly.com - stopify.co - yoütu.be - discörd.com - minecräft.com - freegiftcards.co - disçordapp.com - fortnight.space - fortnitechat.site - joinmy.site - curiouscat.club - catsnthings.fun - yourtube.site - youtubeshort.watch - catsnthing.com - youtubeshort.pro - canadianlumberjacks.online - poweredbydialup.club - poweredbydialup.online - poweredbysecurity.org - poweredbysecurity.online word_watchlist: - goo+ks* - ky+s+ - ki+ke+s* - beaner+s? - coo+ns* - nig+lets* - slant-eyes* - towe?l-?head+s* - chi*n+k+s* - spick*s* - kill* +(?:yo)?urself+ - jew+s* - suicide - rape - (re+)tar+(d+|t+)(ed)? - ta+r+d+ - cunts* - trann*y - shemale token_watchlist: - fa+g+s* - 卐 - 卍 - cuck(?!oo+) - nigg+(?:e*r+|a+h*?|u+h+)s? - fag+o+t+s* # Censor doesn't apply to these channel_whitelist: - *ADMINS - *MOD_LOG - *MESSAGE_LOG - *DEV_LOG - *BB_LOGS - *STAFF_LOUNGE - *TALENT_POOL - *USER_EVENT_A role_whitelist: - *ADMINS_ROLE - *MODS_ROLE - *OWNERS_ROLE - *HELPERS_ROLE - *PY_COMMUNITY_ROLE keys: site_api: !ENV "BOT_API_KEY" urls: # PyDis site vars site: &DOMAIN "pythondiscord.com" site_api: &API !JOIN ["api.", *DOMAIN] site_paste: &PASTE !JOIN ["paste.", *DOMAIN] site_staff: &STAFF !JOIN ["staff.", *DOMAIN] site_schema: &SCHEMA "https://" site_bigbrother_api: !JOIN [*SCHEMA, *API, "/bot/bigbrother"] site_docs_api: !JOIN [*SCHEMA, *API, "/bot/docs"] site_superstarify_api: !JOIN [*SCHEMA, *API, "/bot/superstarify"] site_infractions: !JOIN [*SCHEMA, *API, "/bot/infractions"] site_infractions_user: !JOIN [*SCHEMA, *API, "/bot/infractions/user/{user_id}"] site_infractions_type: !JOIN [*SCHEMA, *API, "/bot/infractions/type/{infraction_type}"] site_infractions_by_id: !JOIN [*SCHEMA, *API, "/bot/infractions/id/{infraction_id}"] site_infractions_user_type_current: !JOIN [*SCHEMA, *API, "/bot/infractions/user/{user_id}/{infraction_type}/current"] site_infractions_user_type: !JOIN [*SCHEMA, *API, "/bot/infractions/user/{user_id}/{infraction_type}"] site_logs_api: !JOIN [*SCHEMA, *API, "/bot/logs"] site_logs_view: !JOIN [*SCHEMA, *STAFF, "/bot/logs"] site_off_topic_names_api: !JOIN [*SCHEMA, *API, "/bot/off-topic-names"] site_reminders_api: !JOIN [*SCHEMA, *API, "/bot/reminders"] site_reminders_user_api: !JOIN [*SCHEMA, *API, "/bot/reminders/user"] site_settings_api: !JOIN [*SCHEMA, *API, "/bot/settings"] site_tags_api: !JOIN [*SCHEMA, *API, "/bot/tags"] site_user_api: !JOIN [*SCHEMA, *API, "/bot/users"] site_user_complete_api: !JOIN [*SCHEMA, *API, "/bot/users/complete"] paste_service: !JOIN [*SCHEMA, *PASTE, "/{key}"] # Snekbox snekbox_eval_api: "http://snekbox:8060/eval" # Discord API URLs discord_api: &DISCORD_API "https://discordapp.com/api/v7/" discord_invite_api: !JOIN [*DISCORD_API, "invites"] # Misc URLs bot_avatar: "https://raw.githubusercontent.com/discord-python/branding/master/logos/logo_circle/logo_circle.png" github_bot_repo: "https://github.com/python-discord/bot" anti_spam: # Clean messages that violate a rule. clean_offending: true ping_everyone: true punishment: role_id: *MUTED_ROLE remove_after: 600 rules: attachments: interval: 10 max: 9 burst: interval: 10 max: 7 burst_shared: interval: 10 max: 20 chars: interval: 5 max: 3_000 duplicates: interval: 10 max: 3 discord_emojis: interval: 10 max: 20 links: interval: 10 max: 10 mentions: interval: 10 max: 5 newlines: interval: 10 max: 100 max_consecutive: 10 role_mentions: interval: 10 max: 3 anti_malware: whitelist: - '.3gp' - '.3g2' - '.avi' - '.bmp' - '.gif' - '.h264' - '.jpg' - '.jpeg' - '.m4v' - '.mkv' - '.mov' - '.mp4' - '.mpeg' - '.mpg' - '.png' - '.tiff' - '.wmv' - '.svg' - '.psd' # Photoshop - '.ai' # Illustrator - '.aep' # After Effects - '.xcf' # GIMP - '.mp3' - '.wav' - '.ogg' reddit: subreddits: - 'r/Python' client_id: !ENV "REDDIT_CLIENT_ID" secret: !ENV "REDDIT_SECRET" wolfram: # Max requests per day. user_limit_day: 10 guild_limit_day: 67 key: !ENV "WOLFRAM_API_KEY" big_brother: log_delay: 15 header_message_limit: 15 free: # Seconds to elapse for a channel # to be considered inactive. activity_timeout: 600 cooldown_rate: 1 cooldown_per: 60.0 help_channels: enable: true # Minimum interval before allowing a certain user to claim a new help channel claim_minutes: 15 # 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: 30 # 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: 32 # 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: *HELPERS # Minimum interval between helper notifications notify_minutes: 15 # Mention these roles in notifications notify_roles: - *HELPERS_ROLE redirect_output: delete_invocation: true delete_delay: 15 sync: confirm_timeout: 300 max_diff: 10 duck_pond: threshold: 5 custom_emojis: - *DUCKY_YELLOW - *DUCKY_BLURPLE - *DUCKY_CAMO - *DUCKY_DEVIL - *DUCKY_NINJA - *DUCKY_REGAL - *DUCKY_TUBE - *DUCKY_HUNT - *DUCKY_WIZARD - *DUCKY_PARTY - *DUCKY_ANGEL - *DUCKY_MAUL - *DUCKY_SANTA python_news: mail_lists: - 'python-ideas' - 'python-announce-list' - 'pypi-announce' channel: *PYNEWS_CHANNEL webhook: *PYNEWS_WEBHOOK config: required_keys: ['bot.token']