#!/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完成")