@ -54,16 +54,32 @@ def bot_promo(client: Client, message: dict, settings_max: dict) -> bool:
action_type = ' promo_already_used ' ,
action_type = ' promo_already_used ' ,
details = { ' promo ' : promo , ' used_at ' : promo_obj . used_at }
details = { ' promo ' : promo , ' used_at ' : promo_obj . used_at }
)
)
return True
else :
else :
send_text ( chat_id , settings_max [ ' token ' ] , " ℹ ️ QR-код уже был отправлен." )
# Повторный запрос — отправляем QR снова с другим текстом
log_user_action (
send_text ( chat_id , settings_max [ ' token ' ] , " ℹ ️ Повторный QR-код." )
client = client ,
# Генерируем QR заново (можно использовать существующий файл, но проще перегенерировать)
chat_id = chat_id ,
base_url = f " { BASE_URL } /promo/status/ "
action_type = ' promo_already_sent ' ,
url_promo = f " { base_url } { promo } / { chat_id } / { client_id } "
details = { ' promo ' : promo }
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
return True
# Если создан новый промокод (первый запрос)
# Генерируем QR
# Генерируем QR
base_url = f " { BASE_URL } /promo/status/ "
base_url = f " { BASE_URL } /promo/status/ "
url_promo = f " { base_url } { promo } / { chat_id } / { client_id } "
url_promo = f " { base_url } { promo } / { chat_id } / { client_id } "