#!/usr/bin/env python3
"""Fix component configs: clean wrong rows + write correct rows."""

import json, subprocess

TOKEN = "t-g1045kg0ZYXHLVSY7EFUPUJUOLBGTOLYLPDKWLYN"
SHEET_ID = "wMQVyV"
SPREADSHEET_TOKEN = "It4AsFkC7hXHc4te9yUcyLHRnOe"

# === STEP 1: Clean up wrongly written rows ===
clear_rows = [120, 129, 133, 144, 146, 147, 162, 163, 164, 178, 179]
for row in clear_rows:
    body = {"valueRange": {"range": f"{SHEET_ID}!F{row}:F{row}", "values": [[""]]}}
    result = subprocess.run([
        "curl", "-s", "-X", "PUT",
        f"https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/{SPREADSHEET_TOKEN}/values",
        "-H", f"Authorization: Bearer {TOKEN}",
        "-H", "Content-Type: application/json",
        "-d", json.dumps(body, ensure_ascii=False)
    ], capture_output=True, text=True)
    resp = json.loads(result.stdout)
    print(f"CLEAR Row {row}: code={resp.get('code')}")

# === STEP 2: Fix rows with old 情境引入 (replace with 无) ===
fix_rows = {
    # Row 119: 对话选择-配图 - change Eva 情境引入 to 无
    119: """【任务标题】
查看关闭的门

【资源配置】
图片时机：
互动内容
互动反馈

【情境引入】
无

【互动内容】
要求：选择正确的回复
选项：（音频）
选项1：Look, the door is closed.（正确）
- 反馈: 无
选项2：Look, the door is open.
- 反馈 Eva: No, this door is closed. Look again.

【后置对话】
无""",

    # Row 128: 对话挖空-配图 - change Vicky 情境引入 to 无
    128: """【任务标题】
还剩最后一扇门

【资源配置】
图片时机：
互动内容
互动反馈

【情境引入】
无

【互动内容】
Only one ___ left.（音频）
选项1：door（正确）
选项2：room

【互动反馈】
正确 Vicky : Yes! Just one more room.
错误 Vicky : Think about it. What do we open?

【后置对话】
无""",
}

for row, content in sorted(fix_rows.items()):
    body = {"valueRange": {"range": f"{SHEET_ID}!F{row}:F{row}", "values": [[content]]}}
    result = subprocess.run([
        "curl", "-s", "-X", "PUT",
        f"https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/{SPREADSHEET_TOKEN}/values",
        "-H", f"Authorization: Bearer {TOKEN}",
        "-H", "Content-Type: application/json",
        "-d", json.dumps(body, ensure_ascii=False)
    ], capture_output=True, text=True)
    resp = json.loads(result.stdout)
    print(f"FIX Row {row}: code={resp.get('code')}")

# === STEP 3: Write new content to empty rows ===
new_rows = {
    # Row 152: 看图拼词 (1217413)
    152: """【任务标题】
拼写 door 的英文

【资源配置】
图片文件名：1217413.png

【互动内容】
任务描述：请拼出门的英文单词
题干：d(2)r
答案：oo
选项：o, a, e, r, n, p
辅助信息：门的英文是 door / 中间有两个一样的字母哦

【后置对话】
无""",

    # Row 168: 对话挖空 (1217414)
    168: """【任务标题】
回忆窗户的状态

【资源配置】无

【情境引入】
无

【互动内容】
I remember that. It was ___ before.（音频）
选项1：closed（正确）
选项2：open

【互动反馈】
正确 Alex : Yes, it was closed. But now it's different.
错误 Alex : No. Think about what I just said about the window.

【后置对话】
无""",

    # Row 169: 对话挖空 (1217415)
    169: """【任务标题】
发现窗户现在是开着的

【资源配置】无

【情境引入】
无

【互动内容】
But now it's ___.（音频）
选项1：open（正确）
选项2：closed

【互动反馈】
正确 Alex : Right! Someone opened it!
错误 Alex : Look at the window again. Is it really closed now?

【后置对话】
无""",

    # Row 188: 对话朗读 (1217416)
    188: """【任务标题】
问候 Grace 和 Dan

【资源配置】图片时机：无

【情境引入】无

【互动内容】
User : I'm glad you get home!（朗读）

【后置对话】
无""",
}

for row, content in sorted(new_rows.items()):
    body = {"valueRange": {"range": f"{SHEET_ID}!F{row}:F{row}", "values": [[content]]}}
    result = subprocess.run([
        "curl", "-s", "-X", "PUT",
        f"https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/{SPREADSHEET_TOKEN}/values",
        "-H", f"Authorization: Bearer {TOKEN}",
        "-H", "Content-Type: application/json",
        "-d", json.dumps(body, ensure_ascii=False)
    ], capture_output=True, text=True)
    resp = json.loads(result.stdout)
    print(f"WRITE Row {row}: code={resp.get('code')}")

print("\nDone! All operations completed.")
