diff options
-rw-r--r-- | bot/__main__.py | 2 | ||||
-rw-r--r-- | bot/constants.py | 33 | ||||
-rw-r--r-- | bot/exts/events/hacktoberfest/hacktober-issue-finder.py | 2 | ||||
-rw-r--r-- | bot/exts/events/hacktoberfest/hacktoberstats.py | 4 | ||||
-rw-r--r-- | bot/exts/fun/game.py | 4 | ||||
-rw-r--r-- | bot/exts/fun/movie.py | 4 | ||||
-rw-r--r-- | bot/exts/fun/snakes/_snakes_cog.py | 6 | ||||
-rw-r--r-- | bot/exts/fun/space.py | 2 | ||||
-rw-r--r-- | bot/exts/holidays/easter/earth_photos.py | 4 | ||||
-rw-r--r-- | bot/exts/holidays/halloween/scarymovie.py | 4 | ||||
-rw-r--r-- | bot/exts/holidays/halloween/spookygif.py | 2 | ||||
-rw-r--r-- | bot/exts/utilities/githubinfo.py | 2 | ||||
-rw-r--r-- | bot/exts/utilities/reddit.py | 2 | ||||
-rw-r--r-- | bot/exts/utilities/wolfram.py | 2 |
14 files changed, 37 insertions, 36 deletions
diff --git a/bot/__main__.py b/bot/__main__.py index 829819fb..934dc0a9 100644 --- a/bot/__main__.py +++ b/bot/__main__.py @@ -21,7 +21,7 @@ async def _create_redis_session() -> RedisSession: redis_session = RedisSession( host=constants.Redis.host, port=constants.Redis.port, - password=constants.Redis.password, + password=constants.Redis.password.get_secret_value(), max_connections=20, use_fakeredis=constants.Redis.use_fakeredis, global_namespace="bot", diff --git a/bot/constants.py b/bot/constants.py index 5f70c8b9..80ebf077 100644 --- a/bot/constants.py +++ b/bot/constants.py @@ -2,7 +2,7 @@ import enum import logging from os import environ -from pydantic import BaseSettings +from pydantic import BaseSettings, SecretStr __all__ = ( "Branding", @@ -106,7 +106,7 @@ class _Client(EnvConfig): name = "Sir Lancebot" guild = 267624335836053506 prefix = "." - token = "" + token: SecretStr debug = True in_ci = False github_repo = "https://github.com/python-discord/sir-lancebot" @@ -116,6 +116,9 @@ class _Client(EnvConfig): Client = _Client() +print(Client.token) +print(Client.token.get_secret_value()) + class _Logging(EnvConfig): EnvConfig.Config.env_prefix = "logging_" @@ -286,17 +289,15 @@ Roles = _Roles() class _Tokens(EnvConfig): EnvConfig.Config.env_prefix = "tokens_" - giphy = "" - aoc_session_cookie = "" - omdb = "" - youtube = "" - tmdb = "" - nasa = "" - igdb_client_id = "" - igdb_client_secret = "" - github = "" - unsplash = "" - wolfram = "" + giphy: SecretStr | None + youtube: SecretStr | None + tmdb: SecretStr | None + nasa: SecretStr | None + igdb_client_id: SecretStr | None + igdb_client_secret: SecretStr | None + github: SecretStr | None + unsplash: SecretStr | None + wolfram: SecretStr | None Tokens = _Tokens() @@ -316,7 +317,7 @@ class _Redis(EnvConfig): host = "redis.default.svc.cluster.local" port = 6379 - password = "" + password: SecretStr | None use_fakeredis = False @@ -337,8 +338,8 @@ class _Reddit(EnvConfig): subreddits = ["r/Python"] - client_id = "" - secret = "" + client_id: SecretStr | None + secret: SecretStr | None webhook = 635408384794951680 diff --git a/bot/exts/events/hacktoberfest/hacktober-issue-finder.py b/bot/exts/events/hacktoberfest/hacktober-issue-finder.py index aeffc8d7..4f7bef5d 100644 --- a/bot/exts/events/hacktoberfest/hacktober-issue-finder.py +++ b/bot/exts/events/hacktoberfest/hacktober-issue-finder.py @@ -18,7 +18,7 @@ REQUEST_HEADERS = { "User-Agent": "Python Discord Hacktoberbot", "Accept": "application / vnd.github.v3 + json" } -if GITHUB_TOKEN := Tokens.github: +if GITHUB_TOKEN := Tokens.github.get_secret_value(): REQUEST_HEADERS["Authorization"] = f"token {GITHUB_TOKEN}" diff --git a/bot/exts/events/hacktoberfest/hacktoberstats.py b/bot/exts/events/hacktoberfest/hacktoberstats.py index c29e24b0..0b4266d8 100644 --- a/bot/exts/events/hacktoberfest/hacktoberstats.py +++ b/bot/exts/events/hacktoberfest/hacktoberstats.py @@ -24,8 +24,8 @@ REQUEST_HEADERS = {"User-Agent": "Python Discord Hacktoberbot"} # using repo topics API during preview period requires an accept header GITHUB_TOPICS_ACCEPT_HEADER = {"Accept": "application/vnd.github.mercy-preview+json"} if GITHUB_TOKEN := Tokens.github: - REQUEST_HEADERS["Authorization"] = f"token {GITHUB_TOKEN}" - GITHUB_TOPICS_ACCEPT_HEADER["Authorization"] = f"token {GITHUB_TOKEN}" + REQUEST_HEADERS["Authorization"] = f"token {GITHUB_TOKEN.get_secret_value()}" + GITHUB_TOPICS_ACCEPT_HEADER["Authorization"] = f"token {GITHUB_TOKEN.get_secret_value()}" GITHUB_NONEXISTENT_USER_MESSAGE = ( "The listed users cannot be searched either because the users do not exist " diff --git a/bot/exts/fun/game.py b/bot/exts/fun/game.py index a8b0b3a0..c38dc063 100644 --- a/bot/exts/fun/game.py +++ b/bot/exts/fun/game.py @@ -20,8 +20,8 @@ from bot.utils.pagination import ImagePaginator, LinePaginator # Base URL of IGDB API BASE_URL = "https://api.igdb.com/v4" -CLIENT_ID = Tokens.igdb_client_id -CLIENT_SECRET = Tokens.igdb_client_secret +CLIENT_ID = Tokens.igdb_client_id.get_secret_value() +CLIENT_SECRET = Tokens.igdb_client_secret.get_secret_value() # The number of seconds before expiry that we attempt to re-fetch a new access token ACCESS_TOKEN_RENEWAL_WINDOW = 60*60*24*2 diff --git a/bot/exts/fun/movie.py b/bot/exts/fun/movie.py index 422a83ac..73ef0a3c 100644 --- a/bot/exts/fun/movie.py +++ b/bot/exts/fun/movie.py @@ -22,7 +22,7 @@ THUMBNAIL_URL = "https://i.imgur.com/LtFtC8H.png" # Define movie params, that will be used for every movie request MOVIE_PARAMS = { - "api_key": Tokens.tmdb, + "api_key": Tokens.tmdb.get_secret_value(), "language": "en-US" } @@ -106,7 +106,7 @@ class Movie(Cog): """Return JSON of TMDB discover request.""" # Define params of request params = { - "api_key": Tokens.tmdb, + "api_key": Tokens.tmdb.get_secret_value(), "language": "en-US", "sort_by": "popularity.desc", "include_adult": "false", diff --git a/bot/exts/fun/snakes/_snakes_cog.py b/bot/exts/fun/snakes/_snakes_cog.py index d0542c23..892a3dd2 100644 --- a/bot/exts/fun/snakes/_snakes_cog.py +++ b/bot/exts/fun/snakes/_snakes_cog.py @@ -773,7 +773,7 @@ class Snakes(Cog): "query": "snake", "page": page, "language": "en-US", - "api_key": Tokens.tmdb, + "api_key": Tokens.tmdb.get_secret_value(), } ) data = await response.json() @@ -785,7 +785,7 @@ class Snakes(Cog): f"https://api.themoviedb.org/3/movie/{movie}", params={ "language": "en-US", - "api_key": Tokens.tmdb, + "api_key": Tokens.tmdb.get_secret_value(), } ) data = await response.json() @@ -1095,7 +1095,7 @@ class Snakes(Cog): "part": "snippet", "q": urllib.parse.quote_plus(query), "type": "video", - "key": Tokens.youtube + "key": Tokens.youtube.get_secret_value() } ) response = await response.json() diff --git a/bot/exts/fun/space.py b/bot/exts/fun/space.py index 22a89050..c688b281 100644 --- a/bot/exts/fun/space.py +++ b/bot/exts/fun/space.py @@ -210,7 +210,7 @@ class Space(Cog): """Fetch information from NASA API, return result.""" params = {} if use_api_key: - params["api_key"] = Tokens.nasa + params["api_key"] = Tokens.nasa.get_secret_value() # Add additional parameters to request parameters only when they provided by user if additional_params is not None: diff --git a/bot/exts/holidays/easter/earth_photos.py b/bot/exts/holidays/easter/earth_photos.py index 5008b24d..013122c8 100644 --- a/bot/exts/holidays/easter/earth_photos.py +++ b/bot/exts/holidays/easter/earth_photos.py @@ -23,7 +23,7 @@ class EarthPhotos(commands.Cog): async with ctx.typing(): async with self.bot.http_session.get( API_URL, - params={"query": "planet_earth", "client_id": Tokens.unsplash} + params={"query": "planet_earth", "client_id": Tokens.unsplash.get_secret_value()} ) as r: jsondata = await r.json() linksdata = jsondata.get("urls") @@ -37,7 +37,7 @@ class EarthPhotos(commands.Cog): rf = "?utm_source=Sir%20Lancebot&utm_medium=referral" async with self.bot.http_session.get( downloadlinksdata.get("download_location"), - params={"client_id": Tokens.unsplash} + params={"client_id": Tokens.unsplash.get_secret_value()} ) as _: pass diff --git a/bot/exts/holidays/halloween/scarymovie.py b/bot/exts/holidays/halloween/scarymovie.py index 9f1a95fd..00c96153 100644 --- a/bot/exts/holidays/halloween/scarymovie.py +++ b/bot/exts/holidays/halloween/scarymovie.py @@ -36,7 +36,7 @@ class ScaryMovie(commands.Cog): """Selects a random movie and returns a JSON of movie details from TMDb.""" url = "https://api.themoviedb.org/3/discover/movie" params = { - "api_key": Tokens.tmdb, + "api_key": Tokens.tmdb.get_secret_value(), "with_genres": "27", "vote_count.gte": "5", "include_adult": "false" @@ -65,7 +65,7 @@ class ScaryMovie(commands.Cog): # Get full details and credits async with self.bot.http_session.get( url=f"https://api.themoviedb.org/3/movie/{selection_id}", - params={"api_key": Tokens.tmdb, "append_to_response": "credits"} + params={"api_key": Tokens.tmdb.get_secret_value(), "append_to_response": "credits"} ) as selection: return await selection.json() diff --git a/bot/exts/holidays/halloween/spookygif.py b/bot/exts/holidays/halloween/spookygif.py index 750e86ca..7a90a8a9 100644 --- a/bot/exts/holidays/halloween/spookygif.py +++ b/bot/exts/holidays/halloween/spookygif.py @@ -21,7 +21,7 @@ class SpookyGif(commands.Cog): async def spookygif(self, ctx: commands.Context) -> None: """Fetches a random gif from the GIPHY API and responds with it.""" async with ctx.typing(): - params = {"api_key": Tokens.giphy, "tag": "halloween", "rating": "g"} + params = {"api_key": Tokens.giphy.get_secret_value(), "tag": "halloween", "rating": "g"} # Make a GET request to the Giphy API to get a random halloween gif. async with self.bot.http_session.get(API_URL, params=params) as resp: data = await resp.json() diff --git a/bot/exts/utilities/githubinfo.py b/bot/exts/utilities/githubinfo.py index a7979718..4e008e9f 100644 --- a/bot/exts/utilities/githubinfo.py +++ b/bot/exts/utilities/githubinfo.py @@ -26,7 +26,7 @@ ISSUE_ENDPOINT = "https://api.github.com/repos/{user}/{repository}/issues/{numbe PR_ENDPOINT = "https://api.github.com/repos/{user}/{repository}/pulls/{number}" if Tokens.github: - REQUEST_HEADERS["Authorization"] = f"token {Tokens.github}" + REQUEST_HEADERS["Authorization"] = f"token {Tokens.github.get_secret_value()}" CODE_BLOCK_RE = re.compile( r"^`([^`\n]+)`" # Inline codeblock diff --git a/bot/exts/utilities/reddit.py b/bot/exts/utilities/reddit.py index 028c16bc..43a82aef 100644 --- a/bot/exts/utilities/reddit.py +++ b/bot/exts/utilities/reddit.py @@ -36,7 +36,7 @@ class Reddit(Cog): self.webhook = None self.access_token = None - self.client_auth = BasicAuth(RedditConfig.client_id, RedditConfig.secret) + self.client_auth = BasicAuth(RedditConfig.client_id.get_secret_value(), RedditConfig.secret.get_secret_value()) self.auto_poster_loop.start() diff --git a/bot/exts/utilities/wolfram.py b/bot/exts/utilities/wolfram.py index 7dc4d7c3..d06e8f03 100644 --- a/bot/exts/utilities/wolfram.py +++ b/bot/exts/utilities/wolfram.py @@ -15,7 +15,7 @@ from bot.utils.pagination import ImagePaginator log = logging.getLogger(__name__) -APPID = Tokens.wolfram +APPID = Tokens.wolfram.get_secret_value() DEFAULT_OUTPUT_FORMAT = "JSON" QUERY = "http://api.wolframalpha.com/v2/{request}" WOLF_IMAGE = "https://www.symbols.com/gi.php?type=1&id=2886&i=1" |