Refactor bot username retrieval in bulk promo code creation

- Updated the logic to retrieve the bot username dynamically, enhancing the accuracy of CSV links for promo codes.
- Improved error handling to log failures in fetching the bot username, ensuring better traceability.
- Adjusted the promo code service initialization in the start command handler to use the message context, improving consistency in bot interactions.
This commit is contained in:
machka-pasla
2025-08-06 18:03:14 +03:00
parent 859263dc2d
commit 649528e165
2 changed files with 14 additions and 3 deletions
+13 -2
View File
@@ -439,8 +439,19 @@ async def create_bulk_promo_codes_final(callback_or_message,
"Команда для старта", "Ссылка для активации"
])
# Add bot username from settings
bot_username = getattr(settings, 'BOT_USERNAME', 'your_bot')
# Get real bot username
bot_username = 'your_bot' # fallback
try:
if hasattr(callback_or_message, 'message'):
bot = callback_or_message.message.bot
else:
bot = callback_or_message.bot
bot_info = await bot.get_me()
bot_username = bot_info.username or 'your_bot'
except Exception as e:
logging.error(f"Failed to get bot username for CSV links: {e}")
bot_username = 'your_bot'
for code in created_codes:
# Determine validity info
+1 -1
View File
@@ -224,7 +224,7 @@ async def start_command_handler(message: types.Message,
if promo_code_to_apply:
try:
from bot.services.promo_code_service import PromoCodeService
promo_code_service = PromoCodeService(settings, subscription_service, bot, i18n)
promo_code_service = PromoCodeService(settings, subscription_service, message.bot, i18n)
success, result = await promo_code_service.apply_promo_code(
session, user_id, promo_code_to_apply, current_lang