diff options
-rw-r--r-- | docs/changelog.rst | 3 | ||||
-rw-r--r-- | pydis_core/utils/members.py | 14 | ||||
-rw-r--r-- | pyproject.toml | 2 |
3 files changed, 12 insertions, 7 deletions
diff --git a/docs/changelog.rst b/docs/changelog.rst index ed46f90e..ee4cc69c 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -4,6 +4,9 @@ Changelog ========= +- :release:`9.3.0 <13th December 2022>` +- :feature:`169` Return :obj:`None` upon receiving a bad request from Discord in :obj:`pydis_core.utils.members.get_or_fetch_member` + - :release:`9.2.0 <17th November 2022>` - :support:`151` Add support for Python 3.11 diff --git a/pydis_core/utils/members.py b/pydis_core/utils/members.py index b6eacc88..fa8481cc 100644 --- a/pydis_core/utils/members.py +++ b/pydis_core/utils/members.py @@ -18,13 +18,15 @@ async def get_or_fetch_member(guild: discord.Guild, member_id: int) -> typing.Op """ if member := guild.get_member(member_id): log.trace(f"{member} retrieved from cache.") - else: - try: - member = await guild.fetch_member(member_id) - except discord.errors.NotFound: - log.trace(f"Failed to fetch {member_id} from API.") + return member + try: + member = await guild.fetch_member(member_id) + except discord.errors.HTTPException as e: + log.trace(f"Failed to fetch {member_id} from API.") + if e.status in [400, 404]: return None - log.trace(f"{member} fetched from API.") + raise + log.trace(f"{member} fetched from API.") return member diff --git a/pyproject.toml b/pyproject.toml index 0b080c3a..482dfdca 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "pydis_core" -version = "9.2.0" +version = "9.3.0" description = "PyDis core provides core functionality and utility to the bots of the Python Discord community." authors = ["Python Discord <[email protected]>"] license = "MIT" |