#!/usr/bin/env python3
"""Update 图片描述 for reading_pic_judge records."""
import json, requests, time

CRED_FILE = "/root/.openclaw/credentials/xiaoyan/config.json"
APP_TOKEN = "CMHSbUUjka3TrUsaxxEc297ongf"
TABLE_ID = "tblJc60aO0T163MJ"

IMAGE_DESC = {
    # ---- 121301 ----
    "recvj5nIAxF3XG": """1.

风格: 卡通，简单线条
场景：住宅街道，阳光下三栋彩色小房子并排而立
三栋卡通房子 - 黄色屋顶、红色屋顶、蓝色屋顶，并排站着，前面有小路和花草。

2.

风格: 卡通，简单线条
场景：厨房一角
棕色木质橱柜 - 靠着墙，柜子上放着几个盘子，柜门半开能看到里面的杯子。

3.

风格: 卡通，简单线条
场景：客厅一角
一张大沙发 - 蓝色软沙发，沙发上有两个彩色靠垫，沙发前有小茶几。

4.

风格: 卡通，简单线条
场景：卧室
一间卧室 - 里面有粉色小床、床头柜，墙上有时钟和画，地板上铺着地毯。

5.

风格: 卡通，简单线条
场景：卧室
一张小床 - 粉色小床上有枕头和被子，床头柜上放着一盏台灯，房间墙上贴着星星贴纸。

6.

风格: 卡通，简单线条
场景：动物园门口
动物园入口 - 大拱门上写着"ZOO"，门外能看到长颈鹿和狮子在围栏里。

7.

风格: 卡通，简单线条
场景：动物园水池
河马 - 一只胖胖的河马泡在浅蓝色的水池里，只露出头和两只小耳朵，旁边有水草。

8.

风格: 卡通，简单线条
场景：卧室衣柜前
牛仔裤 - 一条蓝色牛仔裤叠放在椅子上。

9.

风格: 卡通，简单线条
场景：卧室衣柜前
牛仔裤 - 一条蓝色牛仔裤挂在衣架上。

10.

风格: 卡通，简单线条
场景：森林里
大棕熊 - 一只棕色大熊站在绿色森林中，旁边有大树。""",

    # ---- 121401 ----
    "recvj5nJG33bBE": """1.

风格: 卡通，简单线条
场景：小学教室
学生们 - 三个穿校服的小学生坐在课桌前，女孩扎着马尾，男孩短发，每人桌上放着课本。

2.

风格: 卡通，简单线条
场景：学校外观
学校建筑 - 一栋红色砖墙的学校大楼，楼顶有国旗飘动，大门敞开，门口有"School"标牌。

3.

风格: 卡通，简单线条
场景：美术课桌面
蜡笔 - 桌上散落着红黄蓝绿紫五支彩色蜡笔。

4.

风格: 卡通，简单线条
场景：美术课桌面
蜡笔 - 红黄蓝绿四支蜡笔整齐排放在白纸上。

5.

风格: 卡通，简单线条
场景：教室
女老师 - 穿着裙子的女老师站在讲台前，手里拿着粉笔，身后的黑板上写着字母。

6.

风格: 卡通，简单线条
场景：儿童卧室地面
垫子 - 一张彩色图案的方形游戏垫铺在地板上，垫子旁边散放着积木玩具。

7.

风格: 卡通，简单线条
场景：儿童卧室
课桌 - 一张木色小课桌，桌上有台灯、铅笔筒和一本打开的书。

8.

风格: 卡通，简单线条
场景：衣帽间
手提包 - 一个红色女士手提包挂在挂钩上，包上有金色扣子。

9.

风格: 卡通，简单线条
场景：卧室门口
书包 - 一个蓝色卡通书包靠在门边。

10.

风格: 卡通，简单线条
场景：衣帽间
手提包 - 一个红色手提包放在白色架子上。""",

    # ---- 121501 ----
    "recvj5nKxhm8X6": """1.

风格: 卡通，简单线条
场景：白色背景前
小男孩全身 - 一个穿红色T恤和蓝色短裤的男孩，从头到脚完整站立，双臂自然下垂。

2.

风格: 卡通，简单线条
场景：白色背景前
嘴的特写 - 一张微笑的嘴，上下两排白色牙齿，嘴唇粉色。

3.

风格: 卡通，简单线条
场景：公园草地上
两个小朋友 - 男孩和女孩在草地上一起玩球，两人都笑得很开心。

4.

风格: 卡通，简单线条
场景：白色背景前
耳朵的特写 - 一只人的耳朵，耳廓清晰可见。

5.

风格: 卡通，简单线条
场景：公园
两个小朋友 - 一个男孩和一个女孩手牵手站在树下，两人微笑着看向前方。

6.

风格: 卡通，简单线条
场景：白色背景前
相机 - 一台黑色单反相机，镜头朝前，闪光灯在顶部。

7.

风格: 卡通，简单线条
场景：公园
小男孩 - 一个戴棒球帽的男孩，穿着条纹T恤和短裤，站在草地上微笑。

8.

风格: 卡通，简单线条
场景：背景前
滑板 - 一个蓝色滑板平放在地上，侧面有火焰图案。

9.

风格: 卡通，简单线条
场景：户外滑板场
女孩滑滑板 - 一个扎马尾的女孩踩在滑板上滑行，滑板在脚下。

10.

风格: 卡通，简单线条
场景：背景前
滑板 - 一个蓝色带火焰图案的滑板平放在地面。""",

    # ---- 121601 ----
    "recvj5nLUpubaU": """1.

风格: 卡通，简单线条
场景：海滩
夏天 - 金色沙滩上有一把遮阳伞，蓝色大海远处有小帆船，天空挂着大太阳。

2.

风格: 卡通，简单线条
场景：户外
冬天雪景 - 白色雪覆盖地面和房屋屋顶，树木光秃秃的没有树叶，空中飘着雪花。

3.

风格: 卡通，简单线条
场景：户外
冬天雪景 - 一个雪人戴着帽子和围巾站在雪地里，房屋和树上都覆盖着白雪。

4.

风格: 卡通，简单线条
场景：冬天户外
穿厚棉衣的男孩 - 一个男孩穿着厚厚的外套，戴着围巾和手套，嘴里呼出白气，背景是雪地。

5.

风格: 卡通，简单线条
场景：户外
秋天 - 橙色和黄色的落叶铺满地面，树木只剩下稀疏的叶子，天空有一群飞鸟。

6.

风格: 卡通，简单线条
场景：马路上
公交车 - 一辆红色双层公交车停在路边，有窗户和车门。

7.

风格: 卡通，简单线条
场景：卧室
长裤 - 一条蓝色长裤叠放在床边的凳子上。

8.

风格: 卡通，简单线条
场景：卧室
长裤 - 一条深蓝色长裤挂在衣架上。

9.

风格: 卡通，简单线条
场景：户外
下雪 - 白色雪花从天空中纷纷落下，地面和房屋屋顶积了厚厚一层雪。

10.

风格: 卡通，简单线条
场景：户外
雪地 - 白色雪覆盖了整个地面，空中飘着雪花，远处有积雪覆盖的屋顶。""",
}

with open(CRED_FILE) as f:
    cred = json.load(f)
app_id = cred["apps"][0]["appId"]
app_secret = cred["apps"][0]["appSecret"]

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

for rid, desc in IMAGE_DESC.items():
    resp = requests.put(
        f"https://open.feishu.cn/open-apis/bitable/v1/apps/{APP_TOKEN}/tables/{TABLE_ID}/records/{rid}",
        headers={"Authorization": f"Bearer {token}", "Content-Type": "application/json"},
        json={"fields": {"图片描述": desc}},
    )
    code = resp.json().get("code")
    print(f"  {rid}: code={code}, desc_len={len(desc)}")
    time.sleep(0.5)

# Verify
print("\nVerification:")
for rid in IMAGE_DESC:
    resp = requests.get(
        f"https://open.feishu.cn/open-apis/bitable/v1/apps/{APP_TOKEN}/tables/{TABLE_ID}/records/{rid}",
        headers={"Authorization": f"Bearer {token}"},
    )
    desc_len = len(resp.json()["data"]["record"]["fields"].get("图片描述", ""))
    print(f"  {rid}: 图片描述={desc_len}chars {'✅' if desc_len > 100 else '❌'}")
print("\nDone.")
