From 8121d18eb4f83c872a5a41c22260a54ea8fa9195 Mon Sep 17 00:00:00 2001 From: diamante0018 Date: Thu, 11 Sep 2025 14:56:58 +0200 Subject: [PATCH] chore: fix exception handling here as well --- bot/discourse/handle_request.py | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/bot/discourse/handle_request.py b/bot/discourse/handle_request.py index 116691b..888c8fb 100644 --- a/bot/discourse/handle_request.py +++ b/bot/discourse/handle_request.py @@ -22,16 +22,27 @@ def get_topics_by_id(topic_id): Returns: dict or None: The topic data if successful, otherwise None. """ - response = requests.get(f"{DISCOURSE_BASE_URL}/t/{topic_id}.json", headers=headers) - if response.status_code == 200: - return response.json() - elif response.status_code == 403: - logger.error(f"Access forbidden for topic {topic_id}: {response.status_code}") - return None - else: - logger.error( - f"Error fetching topic {topic_id}: {response.status_code} - {response.text}" + try: + response = requests.get( + f"{DISCOURSE_BASE_URL}/t/{topic_id}.json", + headers=headers, + timeout=10, # prevent hanging forever ) + if response.status_code == 200: + return response.json() + elif response.status_code == 403: + logger.error( + f"Access forbidden for topic {topic_id}: {response.status_code}" + ) + return None + else: + logger.error( + f"Error fetching topic {topic_id}: {response.status_code} - {response.text}" + ) + return None + + except requests.exceptions.RequestException as e: + logger.error(f"Request failed for topic {topic_id}: {e}") return None