From 074b6b246b66087b50e22b1f3017f9427c1ff844 Mon Sep 17 00:00:00 2001 From: pacnpal <183241239+pacnpal@users.noreply.github.com> Date: Fri, 15 Nov 2024 04:54:35 +0000 Subject: [PATCH] Exception Handling: Added DiscordAPIError to utils/exceptions.py Fixed exception imports in config_manager.py Ensured consistent exception hierarchy Improved error messages and context URL Processing: Added pre-filtering for URLs before yt-dlp checks Added common video platform patterns Reduced error logging noise Improved URL validation efficiency FFmpeg Management: Enhanced FFmpeg binary verification Added robust subprocess handling Improved cleanup of failed operations Added detailed logging Configuration: Fixed ConfigurationError import Improved error handling in config operations Enhanced channel validation Better error propagation --- videoarchiver/config_manager.py | 2 +- videoarchiver/exceptions.py | 2 ++ videoarchiver/utils/exceptions.py | 6 ++++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/videoarchiver/config_manager.py b/videoarchiver/config_manager.py index f2cf088..71399fe 100644 --- a/videoarchiver/config_manager.py +++ b/videoarchiver/config_manager.py @@ -5,7 +5,7 @@ import discord import logging from datetime import datetime import asyncio -from .exceptions import ConfigError, DiscordAPIError +from .utils.exceptions import ConfigurationError as ConfigError, DiscordAPIError logger = logging.getLogger('VideoArchiver') diff --git a/videoarchiver/exceptions.py b/videoarchiver/exceptions.py index 109a7bb..9a44787 100644 --- a/videoarchiver/exceptions.py +++ b/videoarchiver/exceptions.py @@ -6,6 +6,7 @@ from .utils.exceptions import ( VideoVerificationError, QueueError, FileCleanupError, + DiscordAPIError, ) # Re-export base exceptions @@ -18,6 +19,7 @@ __all__ = [ 'UpdateError', 'ProcessingError', 'ConfigError', + 'DiscordAPIError', ] # Alias exceptions for backward compatibility diff --git a/videoarchiver/utils/exceptions.py b/videoarchiver/utils/exceptions.py index 52f2c98..0a50c36 100644 --- a/videoarchiver/utils/exceptions.py +++ b/videoarchiver/utils/exceptions.py @@ -51,3 +51,9 @@ class QueueError(VideoArchiverError): class ComponentError(VideoArchiverError): """Error with component initialization or cleanup""" pass + +class DiscordAPIError(VideoArchiverError): + """Error with Discord API operations""" + def __init__(self, message: str, status_code: int = None): + self.status_code = status_code + super().__init__(f"Discord API Error: {message} (Status: {status_code if status_code else 'Unknown'})")