#!/usr/bin/env python3
"""Add [2-组图] to 021801/022001/022201/032601/032801 speaking-P2 records"""
import requests, json, time

APP_TOKEN = "CMHSbUUjka3TrUsaxxEc297ongf"
APP_ID = "cli_a931175d41799cc7"
APP_SECRET = "Iw2vEfbjT6GtV0GhbxbZqfQ4nAPtbR14"
TABLE = "tblGoWYBmVI0IrvQ"

r = requests.post("https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal",
    json={"app_id": APP_ID, "app_secret": APP_SECRET}, timeout=10)
token = r.json()["tenant_access_token"]

r = requests.get(f"https://open.feishu.cn/open-apis/bitable/v1/apps/{APP_TOKEN}/tables/{TABLE}/records?page_size=200",
    headers={"Authorization": f"Bearer {token}"}, timeout=15)

# [2-组图] prompts matching each record's second block questions
# Only prompts 2-5 (questions 0-3), question 4 is reflection — no prompt
pic_2 = {
    "021801": '[2-组图]:{"prompt_2":"黑白线条图:一个孩子拿着作业本主动走到需要帮助的同学身边面带微笑，课桌上散落着打开的书本和铅笔","prompt_3":"黑白线条图:在学校走廊里，一个孩子蹲下来帮另一个同学系鞋带，另一个同学感激地看着他","prompt_4":"黑白线条图:两个孩子一起在花园里种下小树苗，一个扶着树苗一个培土，脸上带着共同的期待和开心","prompt_5":"黑白线条图:学校集会上，一个孩子站在台上双手接过助人为乐奖状，台下同学们纷纷起立鼓掌"}',

    "022001": '[2-组图]:{"prompt_2":"黑白线条图:两个孩子在学校操场边，一个孩子拍拍同伴的肩膀用积极的话安慰，同伴紧皱的眉头逐渐舒展","prompt_3":"黑白线条图:一个孩子站在游泳池边有些紧张，旁边一位教练轻轻扶着他的手臂，表情充满鼓励","prompt_4":"黑白线条图:一个孩子坐在房间里反复练习弹钢琴，琴谱上标着红色笔记，表情从沮丧逐渐变为专注自信","prompt_5":"黑白线条图:操场上正在进行拔河比赛，所有孩子的表情认真又兴奋，绳子上系着的红丝带缓缓移动"}',

    "022201": '[2-组图]:{"prompt_2":"黑白线条图:一群孩子在教室中围坐在地板上，有人在写活动计划清单，有人在剪彩纸装饰，气氛热闹活跃","prompt_3":"黑白线条图:墙上刚贴好的装饰物掉了下来散落一地，一个孩子满脸沮丧地蹲着，同伴们围过来想要帮忙","prompt_4":"黑白线条图:孩子们使用彩纸、剪刀、胶水和马克笔精心制作大型展示板，分工明确各有任务","prompt_5":"黑白线条图:全班学生在装饰后的教室里开心庆祝活动成功，大家分享着食物，脸上带着满足的笑容"}',

    "032601": '[2-组图]:{"prompt_2":"黑白线条图:一个孩子在舞台中央表演，台下父母坐在观众席中激动地抹眼泪，聚光灯照在孩子身上","prompt_3":"黑白线条图:一个孩子坐在书桌前好奇地翻阅一本世界职业图册，上面有宇航员、教师、消防员等各种工作场景","prompt_4":"黑白线条图:一个孩子把远大的梦想写在旗帜上挂在高处，又认真地在地上用小石子一步步标记出通向目标的路径","prompt_5":"黑白线条图:一个孩子坐在朋友身边紧握朋友的手给予鼓励，朋友原本沮丧的表情逐渐露出希望的光"}',

    "032801": '[2-组图]:{"prompt_2":"黑白线条图:一个孩子把手机放进一个小盒子里锁起来放到一边，然后转而拿起桌上的一本厚书认真阅读","prompt_3":"黑白线条图:一个孩子清晨醒来第一件事就是仔细叠被子整理床铺，家长站在门口微笑赞许","prompt_4":"黑白线条图:一个孩子坐在钢琴前弹奏出优美的旋律，墙上的日历从一月翻到六月每一页都打着勾，显示长期坚持","prompt_5":"黑白线条图:一个年长的孩子坐在年幼的学弟旁边，指着时间管理计划表耐心解释每项任务该如何安排"}',
}

for it in r.json()["data"]["items"]:
    qsid = it["fields"].get("题目集合 ID", "")
    if qsid not in pic_2: continue
    rid = it["record_id"]
    pic_old = it["fields"].get("图片描述", "")
    # Append [2-组图] to existing [1-组图]
    pic_new = pic_old + "\n" + pic_2[qsid] if pic_old else pic_2[qsid]
    
    r2 = requests.put(
        f"https://open.feishu.cn/open-apis/bitable/v1/apps/{APP_TOKEN}/tables/{TABLE}/records/{rid}",
        headers={"Authorization": f"Bearer {token}", "Content-Type": "application/json"},
        json={"fields": {"图片描述": pic_new}}, timeout=15)
    code = r2.json().get("code")
    print(f"  {'✅' if code==0 else '❌'} {qsid}: +[2-组图] (总长{len(pic_new)}字)")
    time.sleep(0.3)

# Verify
print(f"\n=== 验证 ===")
r = requests.get(f"https://open.feishu.cn/open-apis/bitable/v1/apps/{APP_TOKEN}/tables/{TABLE}/records?page_size=200",
    headers={"Authorization": f"Bearer {token}"}, timeout=15)

for it in r.json()["data"]["items"]:
    qsid = it["fields"].get("题目集合 ID", "")
    if qsid not in pic_2: continue
    pic = it["fields"].get("图片描述", "")
    has_1 = "[1-组图]" in pic
    has_2 = "[2-组图]" in pic
    print(f"  {qsid}: [1-组图]={'✅' if has_1 else '❌'} [2-组图]={'✅' if has_2 else '❌'}")

print("\n完成")
