aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bot/__main__.py2
-rw-r--r--bot/constants.py33
-rw-r--r--bot/exts/events/hacktoberfest/hacktober-issue-finder.py2
-rw-r--r--bot/exts/events/hacktoberfest/hacktoberstats.py4
-rw-r--r--bot/exts/fun/game.py4
-rw-r--r--bot/exts/fun/movie.py4
-rw-r--r--bot/exts/fun/snakes/_snakes_cog.py6
-rw-r--r--bot/exts/fun/space.py2
-rw-r--r--bot/exts/holidays/easter/earth_photos.py4
-rw-r--r--bot/exts/holidays/halloween/scarymovie.py4
-rw-r--r--bot/exts/holidays/halloween/spookygif.py2
-rw-r--r--bot/exts/utilities/githubinfo.py2
-rw-r--r--bot/exts/utilities/reddit.py2
-rw-r--r--bot/exts/utilities/wolfram.py2
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"