import subprocess
import os

# ==============================================
#             🖨️  打印计价计算器
#        （支持多文件相加 + 显示文件数量）
# ==============================================

# 颜色设置（红色加粗）
RED_BOLD = "\033[1;31m"
RESET = "\033[0m"

def copy_to_clipboard(text):
    """将文本复制到 Windows 剪贴板"""
    try:
        # 使用 Windows 自带的 clip 命令，指定 utf-16 编码以支持 Emoji 和中文
        subprocess.run(['clip'], input=text.encode('utf-16'), check=True)
        return True
    except Exception:
        return False

print("=" * 70)
print(" " * 22 + "🖨️  打印计价计算器")
print("=" * 70)
print("📋 收费标准：")
print("  1 - 10 张   →  0.5 元/页   ✅ 最低消费：1 元")
print(" 11 - 50 张   →  0.4 元/页   ✅ 最低消费：5 元")
print(" 51 - 100张   →  0.35元/页")
print("101 - 500张   →  0.25元/页")
print("  501张以上   →  0.2 元/页")
print("💡 计价规则：0.2以下取整，0.2-0.7取0.5，0.7以上进1")
print("=" * 70)

# ========== 输入支持 + 号相加 ==========
while True:
    try:
        user_input = input("👉 请输入打印页数（支持+号相加）：")
        # 分割并计算
        page_list = [int(p) for p in user_input.replace('，', ',').replace('+', ' ').replace(',', ' ').split()]
        total_pages = sum(page_list)
        file_count = len(page_list)  # 🔥 自动算多少个文件
        
        if total_pages <= 0:
            print("❌ 总页数必须大于0，请重新输入！\n")
            continue
        break
    except:
        print("❌ 输入无效！格式如：8+14+16\n")

# ========== 计价逻辑 ==========
if 1 <= total_pages <= 10:
    price = 0.5
    calc_price = total_pages * price
    final_price = calc_price if calc_price >= 1 else 1.0

elif 11 <= total_pages <= 50:
    price = 0.4
    calc_price = total_pages * price
    final_price = calc_price if calc_price >= 5 else 5.0

elif 51 <= total_pages <= 100:
    price = 0.35
    calc_price = total_pages * price
    final_price = calc_price

elif 101 <= total_pages <= 500:
    price = 0.25
    calc_price = total_pages * price
    final_price = calc_price

else:
    price = 0.2
    calc_price = total_pages * price
    final_price = calc_price

# ========== 自定义取整规则 ==========
def custom_round(price):
    integer = int(price)          # 整数部分
    decimal = round(price - integer, 2)    # 小数部分
    if decimal < 0.2:
        return float(integer)
    elif 0.2 <= decimal <= 0.7:
        return integer + 0.5
    else:
        return float(integer + 1)

# 应用取整
final_price = custom_round(final_price)

# ========== 输出结果 ==========
print("\n" + "=" * 70)
print(" " * 24 + "🧾 结算详情")
print("=" * 70)
print(f"📝 你输入的页数：{user_input}")
print(f"📂 一共文件数：{file_count} 个")
print(f"📄 总打印页数：{total_pages} 页")
print(f"💲 适用单价：{price} 元/页")
print(f"🧮 原始计算：{total_pages} × {price} = {calc_price:.2f} 元")

# 提示信息
if 1 <= total_pages <= 10 and calc_price < 1:
    print("⚠️  提示：按 1 元最低消费计算")
elif 11 <= total_pages <= 50 and calc_price < 5:
    print("⚠️  提示：按 5 元最低消费计算")

print(f"✅ 计价取整：按规则取整后 → {final_price:.1f} 元")
print("-" * 70)
print(f"💰 【{RED_BOLD}最终应付总价{RESET}】：{RED_BOLD}{final_price:.1f} 元{RESET}")
print("=" * 70)

# ========== 一键复制功能 ==========
# 准备复制的内容
copy_content = (
    f"📂 一共文件数：{file_count} 个\n"
    f"📄 总打印页数：{total_pages} 页\n"
    f"💰 【最终应付总价】：{final_price:.1f} 元"
)

# 提示用户复制
print(f"\n👉 按 {RED_BOLD}回车{RESET} 键自动复制结果并退出，或输入 {RED_BOLD}N{RESET} 取消复制并退出。")
choice = input().strip().lower()

if choice != 'n':
    if copy_to_clipboard(copy_content):
        print("✅ 【结果已成功复制到剪贴板！】直接去粘贴即可。")
    else:
        print("❌ 复制失败，请手动选择文字复制。")
else:
    print("👋 已跳过复制。")