diff options
author | 2022-12-13 20:50:00 +0100 | |
---|---|---|
committer | 2022-12-13 20:50:00 +0100 | |
commit | b0384ec69941cbf475445ed4971d10d1156640b8 (patch) | |
tree | 27fe7bd56dbd7564e7ac6c93d72add369276b952 /pydis_core | |
parent | save strong references of newly created tasks in the `TASKS` set (diff) | |
parent | Return None upon receiving a bad request from Discord in get_or_fetch_member ... (diff) |
Merge branch 'main' of https://github.com/shtlrs/bot-core
Diffstat (limited to 'pydis_core')
-rw-r--r-- | pydis_core/utils/members.py | 14 |
1 files changed, 8 insertions, 6 deletions
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 |