-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
added exception handling #641
Conversation
Reviewer's Guide by SourceryThis PR implements a custom exception handling system for the Telegram bot. The implementation adds a new ExceptionHandler class that captures, logs, and reports exceptions to a designated Telegram channel with detailed formatting and timestamps. Sequence diagram for exception handling and reportingsequenceDiagram
participant User
participant Bot as TelegramBot
participant Handler as ExceptionHandler
participant Messenger as TelegramMessenger
participant Logger
participant Settings
User->>Bot: Trigger an action
Bot->>Handler: Exception occurs
Handler->>Logger: Log exception with timestamp
Handler->>Messenger: Send formatted exception message
Messenger->>Settings: Retrieve TELEGRAM_BUG_REPORTER_CHANNEL_ID
Messenger->>User: Notify about the error
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @alimaktabi - I've reviewed your changes and they look great!
Here's what I looked at during the review
- 🟡 General issues: 1 issue found
- 🟡 Security: 1 issue found
- 🟢 Testing: all looks good
- 🟢 Complexity: all looks good
- 🟢 Documentation: all looks good
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
|
||
from telegram.models import TelegramConnection | ||
|
||
|
||
logger = logging.getLogger(__name__) | ||
|
||
telebot_instance = telebot.TeleBot(settings.TELEGRAM_BOT_API_KEY) | ||
|
||
class ExceptionHandler(ExceptionHandler): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
issue (bug_risk): The ExceptionHandler class name shadows the imported ExceptionHandler from telebot
Consider renaming this class to something more specific like TelegramExceptionHandler to avoid naming conflicts and potential confusion
timestamp = timezone.now().strftime("%d/%m/%Y, %H:%M:%S") | ||
|
||
logger.error(f"Custom exception handler triggered for {exception}: {timestamp}") | ||
traceback.print_exception(type(exception), exception, exception.__traceback__) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🚨 issue (security): Indiscriminate exception handling could expose sensitive information
Consider implementing exception filtering or sanitization before logging and sending to Telegram. Not all exceptions should be treated equally, and some might contain sensitive data
Summary by Sourcery
Enhancements: