From dc74bdc18529696533d486d3fb5869e06dd97c8f Mon Sep 17 00:00:00 2001 From: pilot <657434@03b.ru> Date: Mon, 10 Aug 2026 16:00:56 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=85=20=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D0=BB=D1=91=D0=BD:=20restoran=5Fmax=5Fbot/promo=5Fhandlers.py?= =?UTF-8?q?=20=E2=80=94=20=D0=9F=D1=80=D0=B8=20=D0=BF=D0=BE=D0=B2=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=BD=D0=BE=D0=BC=20=D0=B7=D0=B0=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D1=81=D0=B5=20=D0=BD=D0=B5=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D0=BC=D0=BE=D0=BA=D0=BE=D0=B4=D0=B0=20=D1=82=D0=B5?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D1=8C=20=D1=82=D0=B0=D0=BA=D0=B6=D0=B5=20?= =?UTF-8?q?=D0=BE=D1=82=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D1=8F=D0=B5=D1=82?= =?UTF-8?q?=D1=81=D1=8F=20QR-=D0=BA=D0=BE=D0=B4,=20=D0=B0=20=D1=82=D0=B5?= =?UTF-8?q?=D0=BA=D1=81=D1=82=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D1=91=D0=BD=20?= =?UTF-8?q?=D0=BD=D0=B0=20=C2=AB=E2=84=B9=EF=B8=8F=20=D0=9F=D0=BE=D0=B2?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=BD=D1=8B=D0=B9=20QR-=D0=BA=D0=BE=D0=B4.?= =?UTF-8?q?=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../restoran_max_bot/promo_handlers.py | 32 ++++++++++++++----- 1 file changed, 24 insertions(+), 8 deletions(-) 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}"