diff --git a/flask_discord/_http.py b/flask_discord/_http.py index 5f7b138..25e6b0c 100644 --- a/flask_discord/_http.py +++ b/flask_discord/_http.py @@ -33,8 +33,17 @@ class DiscordOAuth2HttpClient(abc.ABC): self.client_id = app.config["DISCORD_CLIENT_ID"] self.client_secret = app.config["DISCORD_CLIENT_SECRET"] self.redirect_uri = app.config["DISCORD_REDIRECT_URI"] + self.bot_token = app.config.get("DISCORD_BOT_TOKEN", str()) if "http://" in self.redirect_uri: os.environ["OAUTHLIB_INSECURE_TRANSPORT"] = "true" + app.discord = self + + @property + def bot_authorization_header(self): + return { + "Authorization": f"Bot {self.bot_token}", + "Content-Type": "application/json", + } @staticmethod def _token_updater(token): diff --git a/flask_discord/models/user.py b/flask_discord/models/user.py index 4f96a59..c22f09e 100644 --- a/flask_discord/models/user.py +++ b/flask_discord/models/user.py @@ -2,6 +2,8 @@ from .base import DiscordModelsBase from .. import configs +from flask import current_app + class User(DiscordModelsBase): """Class representing Discord User. @@ -70,6 +72,11 @@ class User(DiscordModelsBase): """A boolean representing if avatar of user is animated. Meaning user has GIF avatar.""" return self.avatar_hash.startswith("a_") + def add_to_guild(self, guild_id): + discord = current_app.discord + return discord.request( + f"/guilds/{guild_id}/members/{self.id}", method="PUT", headers=discord.bot_authorization_header) + class Bot(User): """Class representing the client user itself.""" diff --git a/tests/test_app.py b/tests/test_app.py index ffd6653..ae21155 100644 --- a/tests/test_app.py +++ b/tests/test_app.py @@ -10,6 +10,7 @@ app.secret_key = b"%\xe0'\x01\xdeH\x8e\x85m|\xb3\xffCN\xc9g" app.config["DISCORD_CLIENT_ID"] = 490732332240863233 app.config["DISCORD_CLIENT_SECRET"] = os.getenv("DISCORD_CLIENT_SECRET") +app.config["DISCORD_BOT_TOKEN"] = os.getenv("DISCORD_BOT_TOKEN") app.config["DISCORD_REDIRECT_URI"] = "http://127.0.0.1:5000/callback" discord = DiscordOAuth2Session(app) @@ -17,7 +18,7 @@ discord = DiscordOAuth2Session(app) @app.route("/") def index(): - return discord.create_session(["guilds", "connections"]) + return discord.create_session() @app.route("/callback/") @@ -36,6 +37,8 @@ def me(): Connections +
+Add me to square server!