mirror of
https://github.com/yawaflua/Flask-Discord.git
synced 2025-12-10 12:29:30 +02:00
Internally handle JSONDecodeError
This commit is contained in:
@@ -1,4 +1,6 @@
|
|||||||
import requests
|
import requests
|
||||||
|
import typing
|
||||||
|
import json
|
||||||
import os
|
import os
|
||||||
import abc
|
import abc
|
||||||
|
|
||||||
@@ -74,7 +76,7 @@ class DiscordOAuth2HttpClient(abc.ABC):
|
|||||||
auto_refresh_url=configs.DISCORD_TOKEN_URL,
|
auto_refresh_url=configs.DISCORD_TOKEN_URL,
|
||||||
token_updater=self._token_updater)
|
token_updater=self._token_updater)
|
||||||
|
|
||||||
def request(self, route: str, method="GET", data=None, oauth=True, **kwargs) -> dict:
|
def request(self, route: str, method="GET", data=None, oauth=True, **kwargs) -> typing.Union[dict, str]:
|
||||||
"""Sends HTTP request to provided route or discord endpoint.
|
"""Sends HTTP request to provided route or discord endpoint.
|
||||||
|
|
||||||
Note
|
Note
|
||||||
@@ -94,8 +96,9 @@ class DiscordOAuth2HttpClient(abc.ABC):
|
|||||||
|
|
||||||
Returns
|
Returns
|
||||||
-------
|
-------
|
||||||
dict
|
dict, str
|
||||||
Dictionary containing received from sent HTTP GET request.
|
Dictionary containing received from sent HTTP GET request if content-type is ``application/json``
|
||||||
|
otherwise returns raw text content of the response.
|
||||||
|
|
||||||
Raises
|
Raises
|
||||||
------
|
------
|
||||||
@@ -112,4 +115,7 @@ class DiscordOAuth2HttpClient(abc.ABC):
|
|||||||
if response.status_code == 401:
|
if response.status_code == 401:
|
||||||
raise exceptions.Unauthorized
|
raise exceptions.Unauthorized
|
||||||
|
|
||||||
|
try:
|
||||||
return response.json()
|
return response.json()
|
||||||
|
except json.JSONDecodeError:
|
||||||
|
return response.text
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
from .. import configs
|
from .. import configs
|
||||||
|
|
||||||
from json import JSONDecodeError
|
|
||||||
from .base import DiscordModelsBase
|
from .base import DiscordModelsBase
|
||||||
from flask import current_app, session
|
from flask import current_app, session
|
||||||
|
|
||||||
@@ -93,11 +92,9 @@ class User(DiscordModelsBase):
|
|||||||
"""
|
"""
|
||||||
data = {"access_token": session["DISCORD_OAUTH2_TOKEN"]["access_token"]}
|
data = {"access_token": session["DISCORD_OAUTH2_TOKEN"]["access_token"]}
|
||||||
headers = {"Authorization": f"Bot {current_app.config['DISCORD_BOT_TOKEN']}"}
|
headers = {"Authorization": f"Bot {current_app.config['DISCORD_BOT_TOKEN']}"}
|
||||||
try:
|
|
||||||
return current_app.discord.request(
|
return current_app.discord.request(
|
||||||
f"/guilds/{guild_id}/members/{self.id}", method="PUT", oauth=False, json=data, headers=headers)
|
f"/guilds/{guild_id}/members/{self.id}", method="PUT", oauth=False, json=data, headers=headers
|
||||||
except JSONDecodeError:
|
) or dict()
|
||||||
return dict()
|
|
||||||
|
|
||||||
|
|
||||||
class Bot(User):
|
class Bot(User):
|
||||||
|
|||||||
Reference in New Issue
Block a user