From f82ec46acf0234e746e577158d8f048637d9d006 Mon Sep 17 00:00:00 2001 From: "I. Ahmad" <54180221+nerdguyahmad@users.noreply.github.com> Date: Mon, 30 May 2022 17:48:36 +0500 Subject: [PATCH] Use json_or_text helper for parsing webhook responses --- discord/webhook/async_.py | 7 ++----- discord/webhook/sync.py | 7 +++++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/discord/webhook/async_.py b/discord/webhook/async_.py index 5b190786d..4379a09b9 100644 --- a/discord/webhook/async_.py +++ b/discord/webhook/async_.py @@ -26,7 +26,6 @@ from __future__ import annotations import logging import asyncio -import json import re from urllib.parse import quote as urlquote @@ -44,7 +43,7 @@ from ..user import BaseUser, User from ..flags import MessageFlags from ..asset import Asset from ..partial_emoji import PartialEmoji -from ..http import Route, handle_message_parameters, MultipartParameters, HTTPClient +from ..http import Route, handle_message_parameters, MultipartParameters, HTTPClient, json_or_text from ..mixins import Hashable from ..channel import TextChannel, PartialMessageable from ..file import File @@ -182,9 +181,7 @@ class AsyncWebhookAdapter: url, response.status, ) - data = (await response.text(encoding='utf-8')) or None - if data and response.headers['Content-Type'] == 'application/json': - data = json.loads(data) + data = await json_or_text(response) remaining = response.headers.get('X-Ratelimit-Remaining') if remaining == '0' and response.status != 429: diff --git a/discord/webhook/sync.py b/discord/webhook/sync.py index 71b634b9a..aa40e1989 100644 --- a/discord/webhook/sync.py +++ b/discord/webhook/sync.py @@ -178,8 +178,11 @@ class WebhookAdapter: response.status = response.status_code # type: ignore data = response.text or None - if data and response.headers['Content-Type'] == 'application/json': - data = json.loads(data) + try: + if data and response.headers['Content-Type'] == 'application/json': + data = json.loads(data) + except KeyError: + pass remaining = response.headers.get('X-Ratelimit-Remaining') if remaining == '0' and response.status_code != 429: