diff --git a/restoran_max_bot/restoran_max_bot/promo_handlers.py b/restoran_max_bot/restoran_max_bot/promo_handlers.py index da50fb5..294b779 100644 --- a/restoran_max_bot/restoran_max_bot/promo_handlers.py +++ b/restoran_max_bot/restoran_max_bot/promo_handlers.py @@ -54,16 +54,32 @@ def bot_promo(client: Client, message: dict, settings_max: dict) -> bool: action_type='promo_already_used', details={'promo': promo, 'used_at': promo_obj.used_at} ) + return True else: - send_text(chat_id, settings_max['token'], "ℹ️ QR-код уже был отправлен.") - log_user_action( - client=client, - chat_id=chat_id, - action_type='promo_already_sent', - details={'promo': promo} - ) - return True + # Повторный запрос — отправляем QR снова с другим текстом + send_text(chat_id, settings_max['token'], "ℹ️ Повторный QR-код.") + # Генерируем QR заново (можно использовать существующий файл, но проще перегенерировать) + base_url = f"{BASE_URL}/promo/status/" + url_promo = f"{base_url}{promo}/{chat_id}/{client_id}" + img = qrcode.make(url_promo) + file_name = f"{promo}-{chat_id}-{client_id}.png" + promo_dir = os.path.join(STATICFILES_DIRS[0], 'promo') + os.makedirs(promo_dir, exist_ok=True) + img.save(os.path.join(promo_dir, file_name)) + qr_url = f"{BASE_URL}{STATIC_URL}promo/{file_name}" + send_image(chat_id, settings_max['token'], qr_url, 'Ваш QR-код.') + # Дополнительный контент также отправляем + for item in data: + if item.img: + img_url = f"https://cdn.telefon-ip.ru/{item.img}?thumb=600" + send_image(chat_id, settings_max['token'], img_url, item.descr) + if item.title and not item.img: + send_text(chat_id, settings_max['token'], item.descr) + if item.url: + send_text(chat_id, settings_max['token'], item.url) + return True + # Если создан новый промокод (первый запрос) # Генерируем QR base_url = f"{BASE_URL}/promo/status/" url_promo = f"{base_url}{promo}/{chat_id}/{client_id}"