diff options
Diffstat (limited to '')
| -rw-r--r-- | bot/constants.py | 127 | 
1 files changed, 83 insertions, 44 deletions
| diff --git a/bot/constants.py b/bot/constants.py index db34b55a..2730106b 100644 --- a/bot/constants.py +++ b/bot/constants.py @@ -8,6 +8,7 @@ from typing import Dict, NamedTuple  __all__ = (      "AdventOfCode",      "Branding", +    "Cats",      "Channels",      "Categories",      "Client", @@ -19,7 +20,9 @@ __all__ = (      "Roles",      "Tokens",      "Wolfram", +    "Reddit",      "RedisConfig", +    "RedirectOutput",      "MODERATION_ROLES",      "STAFF_ROLES",      "WHITELISTED_CHANNELS", @@ -93,38 +96,27 @@ class Branding:      cycle_frequency = int(environ.get("CYCLE_FREQUENCY", 3))  # 0: never, 1: every day, 2: every other day, ... +class Cats: +    cats = ["ᓚᘏᗢ", "ᘡᘏᗢ", "🐈", "ᓕᘏᗢ", "ᓇᘏᗢ", "ᓂᘏᗢ", "ᘣᘏᗢ", "ᕦᘏᗢ", "ᕂᘏᗢ"] + +  class Channels(NamedTuple): -    admins = 365960823622991872      advent_of_code = int(environ.get("AOC_CHANNEL_ID", 782715290437943306))      advent_of_code_commands = int(environ.get("AOC_COMMANDS_CHANNEL_ID", 607247579608121354)) -    announcements = int(environ.get("CHANNEL_ANNOUNCEMENTS", 354619224620138496)) -    big_brother_logs = 468507907357409333      bot = 267659945086812160 -    checkpoint_test = 422077681434099723      organisation = 551789653284356126 -    devalerts = 460181980097675264      devlog = int(environ.get("CHANNEL_DEVLOG", 622895325144940554))      dev_contrib = 635950537262759947 -    dev_branding = 753252897059373066 -    helpers = 385474242440986624 -    message_log = 467752170159079424 -    mod_alerts = 473092532147060736 -    modlog = 282638479504965634      mod_meta = 775412552795947058      mod_tools = 775413915391098921      off_topic_0 = 291284109232308226      off_topic_1 = 463035241142026251      off_topic_2 = 463035268514185226 -    python = 267624335836053506 -    reddit = 458224812528238616      community_bot_commands = int(environ.get("CHANNEL_COMMUNITY_BOT_COMMANDS", 607247579608121354)) -    staff_lounge = 464905259261755392 -    verification = 352442727016693763 -    python_discussion = 267624335836053506 -    hacktoberfest_2020 = 760857070781071431      voice_chat_0 = 412357430186344448      voice_chat_1 = 799647045886541885      staff_voice = 541638762007101470 +    reddit = int(environ.get("CHANNEL_REDDIT", 458224812528238616))  class Categories(NamedTuple): @@ -134,6 +126,7 @@ class Categories(NamedTuple):      media = 799054581991997460      staff = 364918151625965579 +codejam_categories_name = "Code Jam"  # Name of the codejam team categories  class Client(NamedTuple):      name = "Sir Lancebot" @@ -141,33 +134,54 @@ class Client(NamedTuple):      prefix = environ.get("PREFIX", ".")      token = environ.get("BOT_TOKEN")      sentry_dsn = environ.get("BOT_SENTRY_DSN") -    debug = environ.get("BOT_DEBUG", "").lower() == "true" +    debug = environ.get("BOT_DEBUG", "true").lower() == "true"      github_bot_repo = "https://github.com/python-discord/sir-lancebot"      # Override seasonal locks: 1 (January) to 12 (December)      month_override = int(environ["MONTH_OVERRIDE"]) if "MONTH_OVERRIDE" in environ else None  class Colours: -    blue = 0x0279fd -    bright_green = 0x01d277 -    dark_green = 0x1f8b4c -    orange = 0xe67e22 -    pink = 0xcf84e0 -    purple = 0xb734eb -    soft_green = 0x68c290 -    soft_orange = 0xf9cb54 -    soft_red = 0xcd6d6d -    yellow = 0xf9f586 +    blue = 0x0279FD +    bright_green = 0x01D277 +    dark_green = 0x1F8B4C +    orange = 0xE67E22 +    pink = 0xCF84E0 +    purple = 0xB734EB +    soft_green = 0x68C290 +    soft_orange = 0xF9CB54 +    soft_red = 0xCD6D6D +    yellow = 0xF9F586 +    python_blue = 0x4B8BBE +    python_yellow = 0xFFD43B +    grass_green = 0x66FF00 +    gold = 0xE6C200 + +    easter_like_colours = [ +        (255, 247, 0), +        (255, 255, 224), +        (0, 255, 127), +        (189, 252, 201), +        (255, 192, 203), +        (255, 160, 122), +        (181, 115, 220), +        (221, 160, 221), +        (200, 162, 200), +        (238, 130, 238), +        (135, 206, 235), +        (0, 204, 204), +        (64, 224, 208), +    ]  class Emojis: +    cross_mark = "\u274C"      star = "\u2B50"      christmas_tree = "\U0001F384"      check = "\u2611"      envelope = "\U0001F4E8" -    trashcan = "<:trashcan:637136429717389331>" +    trashcan = environ.get("TRASHCAN_EMOJI", "<:trashcan:637136429717389331>")      ok_hand = ":ok_hand:" -    hand_raised = "\U0001f64b" +    hand_raised = "\U0001F64B"      dice_1 = "<:dice_1:755891608859443290>"      dice_2 = "<:dice_2:755891608741740635>" @@ -176,11 +190,14 @@ class Emojis:      dice_5 = "<:dice_5:755891608091885627>"      dice_6 = "<:dice_6:755891607680843838>" -    issue = "<:IssueOpen:629695470327037963>" -    issue_closed = "<:IssueClosed:629695470570307614>" -    pull_request = "<:PROpen:629695470175780875>" -    pull_request_closed = "<:PRClosed:629695470519713818>" -    merge = "<:PRMerged:629695470570176522>" +    # These icons are from Github's repo https://github.com/primer/octicons/ +    issue_open = "<:IssueOpen:852596024777506817>" +    issue_closed = "<:IssueClosed:852596024739758081>" +    issue_draft = "<:IssueDraft:852596025147523102>"  # Not currently used by Github, but here for future. +    pull_request_open = "<:PROpen:852596471505223781>" +    pull_request_closed = "<:PRClosed:852596024732286976>" +    pull_request_draft = "<:PRDraft:852596025045680218>" +    pull_request_merged = "<:PRMerged:852596100301193227>"      number_emojis = {          1: "\u0031\ufe0f\u20e3", @@ -201,12 +218,31 @@ class Emojis:      x = "\U0001f1fd"      o = "\U0001f1f4" +    x_square = "<:x_square:632278427260682281>" +    o_square = "<:o_square:632278452413661214>" +      status_online = "<:status_online:470326272351010816>"      status_idle = "<:status_idle:470326266625785866>"      status_dnd = "<:status_dnd:470326272082313216>"      status_offline = "<:status_offline:470326266537705472>" +    stackoverflow_tag = "<:stack_tag:870926975307501570>" +    stackoverflow_views = "<:stack_eye:870926992692879371>" + +    # Reddit emojis +    reddit = "<:reddit:676030265734332427>" +    reddit_post_text = "<:reddit_post_text:676030265910493204>" +    reddit_post_video = "<:reddit_post_video:676030265839190047>" +    reddit_post_photo = "<:reddit_post_photo:676030265734201344>" +    reddit_upvote = "<:reddit_upvote:755845219890757644>" +    reddit_comments = "<:reddit_comments:755845255001014384>" +    reddit_users = "<:reddit_users:755845303822974997>" + +    lemon_hyperpleased = "<:lemon_hyperpleased:754441879822663811>" +    lemon_pensive = "<:lemon_pensive:754441880246419486>" + +  class Icons:      questionmark = "https://cdn.discordapp.com/emojis/512367613339369475.png"      bookmark = ( @@ -245,20 +281,10 @@ if Client.month_override is not None:  class Roles(NamedTuple):      admin = int(environ.get("BOT_ADMIN_ROLE_ID", 267628507062992896)) -    announcements = 463658397560995840 -    champion = 430492892331769857 -    contributor = 295488872404484098 -    devops = 409416496733880320 -    jammer = 423054537079783434      moderator = 267629731250176001 -    muted = 277914926603829249      owner = 267627879762755584 -    verified = 352427296948486144      helpers = int(environ.get("ROLE_HELPERS", 267630620367257601)) -    rockstars = 458226413825294336      core_developers = 587606783669829632 -    events_lead = 778361735739998228 -    everyone_role = 267624335836053506  class Tokens(NamedTuple): @@ -271,6 +297,7 @@ class Tokens(NamedTuple):      igdb_client_id = environ.get("IGDB_CLIENT_ID")      igdb_client_secret = environ.get("IGDB_CLIENT_SECRET")      github = environ.get("GITHUB_TOKEN") +    unsplash_access_key = environ.get("UNSPLASH_KEY")  class Wolfram(NamedTuple): @@ -291,6 +318,18 @@ class Source:      github_avatar_url = "https://avatars1.githubusercontent.com/u/9919" +class RedirectOutput: +    delete_delay: int = 10 + + +class Reddit: +    subreddits = ["r/Python"] + +    client_id = environ.get("REDDIT_CLIENT_ID") +    secret = environ.get("REDDIT_SECRET") +    webhook = int(environ.get("REDDIT_WEBHOOK", 635408384794951680)) + +  # Default role combinations  MODERATION_ROLES = Roles.moderator, Roles.admin, Roles.owner  STAFF_ROLES = Roles.helpers, Roles.moderator, Roles.admin, Roles.owner | 
