"""
邮件内容变形预览接口
让前端预览时调后端,看到的就是收件人真实收到的变形后的内容
"""
import sys, os
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))

import print_disguise as pd


def disguise_for_preview(html, mode='mua', mua_name=''):
    """模拟后端 _build_message 对 HTML 做的变形
    跟 core/sender.py _build_message 里的 disguise 路径一致
    """
    if not html:
        return html
    # 1. 剥追踪像素
    html = pd.strip_tracking_pixels(html)
    # 2. 深度变形 (句序隆替 + 同义词)
    html = pd.disguise_html_deep(html)
    # 3. 基础变形 (CSS 重命名 + 行尾空白 + 零宽字符)
    html = pd.disguise_html_body(html)
    # 4. META GENERATOR
    html = pd.inject_meta_generator(html, mua_name)
    # 5. MUA 购脚
    mua_names = ['Outlook-2019', 'Outlook-365', 'Thunderbird-115',
                 'AppleMail-14', 'Gmail-Web', 'YahooMail-Mobile',
                 'IphoneMail', 'Becky-Mail']
    if not mua_name:
        import random
        mua_name = random.choice(mua_names)
    # 获取对应 MUA 的 footer
    for fp in pd.MUA_FINGERPRINTS:
        if fp['name'] == mua_name:
            footer = fp.get('footer_text', '')
            if footer:
                html = pd.add_footer_marker(html, footer)
            break
    return html