auto backup 2026-05-05 08:10:01
This commit is contained in:
parent
f03a04ab02
commit
0c5b031977
@ -1583,3 +1583,13 @@ To https://git.valavala.com/ai_member_only/ai_member_xiaobian.git
|
||||
From https://git.valavala.com/ai_member_only/ai_member_xiaobian
|
||||
* branch master -> FETCH_HEAD
|
||||
Already up to date.
|
||||
[master f03a04a] auto backup 2026-05-04 08:10:01
|
||||
1 file changed, 10 insertions(+)
|
||||
remote: . Processing 1 references
|
||||
remote: Processed 1 references in total
|
||||
To https://git.valavala.com/ai_member_only/ai_member_xiaobian.git
|
||||
c91c1c6..f03a04a master -> master
|
||||
{"code":0,"data":{"body":{"content":"{\"text\":\"✅ 小编Workspace每日自动备份完成(2026-05-04 08:10)\\n提交哈希:f03a04a\\n所有Workspace变更已同步到远程Git仓库\"}"},"chat_id":"oc_056898e8cc3689d305b4c69f7178ca27","create_time":"1777853402599","deleted":false,"message_id":"om_x100b504a736a9ca4b4bbb9f804a1bf5","msg_type":"text","sender":{"id":"cli_a9311be796f85cbd","id_type":"app_id","sender_type":"app","tenant_key":"176b7bf89fc6d75e"},"update_time":"1777853402599","updated":false},"msg":"success"}✅ 备份完成:Mon May 4 08:10:02 AM CST 2026
|
||||
From https://git.valavala.com/ai_member_only/ai_member_xiaobian
|
||||
* branch master -> FETCH_HEAD
|
||||
Already up to date.
|
||||
|
||||
67
memory/2026-05-04.md
Normal file
67
memory/2026-05-04.md
Normal file
@ -0,0 +1,67 @@
|
||||
# 2026-05-04 工作日志
|
||||
|
||||
## U18 L2 剧本创作进度同步(林逸瀚提供)
|
||||
|
||||
### 当前进度(截至4/30)
|
||||
- ✅ 故事大纲:已优化确认
|
||||
- ✅ 第1幕剧本:已完成初稿,已导出Excel给林逸瀚,林逸瀚正在修改中
|
||||
- ⏳ 第2幕剧本:待开始
|
||||
- ⏳ 第3幕剧本:待开始
|
||||
- ⏳ 第4幕剧本:待开始
|
||||
|
||||
### 本课基本信息
|
||||
- **课程:** U18 L2 舞龙初体验
|
||||
- **Unit主题:** 中国文化周
|
||||
- **场景:** 课室内
|
||||
- **出场人物:** User、Ben、Leo、Vicky、Sue、Sunny、11号机器人、Justin
|
||||
- **知识点:**
|
||||
- 单词:Blackboard、Read、Line、Example
|
||||
- 句型:(v.) in line、Take...as an example.
|
||||
|
||||
### 创作关键经验
|
||||
1. 剧本格式是4列表格(类型/剧情描述/名字/台词)
|
||||
2. User对话互动不能无意义重复知识点,必须有剧情推进意义
|
||||
3. 台词必须Pre-A1/A1水平,极简英文短句
|
||||
4. 所有对话互动必须包含本课知识点
|
||||
5. 11号没有额外造型(无美术资源)
|
||||
6. Justin是Vicky的Grandpa,不是11号的
|
||||
|
||||
### 大纲四幕结构
|
||||
- 第1幕:奇怪的黑板图谱(11号代班,触发Blackboard、Read)
|
||||
- 第2幕:Leo的变身大乌龙(Leo误解图谱,触发Example、Read复现)
|
||||
- 第3幕:爷爷的正确解法(Justin登场,触发Line、句型(v.) in line)
|
||||
- 第4幕:我当上龙头啦(触发Line复现、句型Take...as an example.)
|
||||
|
||||
### L2 剧本已完成 ✅(全4幕,221行,16个中互动+1核心互动)
|
||||
|
||||
---
|
||||
|
||||
## U18 L3 剧本创作准备(与林逸瀚协作)
|
||||
|
||||
### 基本信息
|
||||
- **课程:** U18 L3 造龙身
|
||||
- **场景:** 承接L2学完龙舞,大家动手造纸龙
|
||||
- **出场人物:** User、Vicky、Ben、Sunny、Matt
|
||||
- Sunny:班花,不喜欢劳动但喜欢美丽的东西
|
||||
- Matt:偏执狂,所有东西都想做完美
|
||||
|
||||
### 知识点
|
||||
- 单词:Chinese(adj. 中国的)、Paper(adj. 纸制的)、Eraser、Ruler
|
||||
- 句型:It is too (adj.)、We can use... to...
|
||||
- ⚠️ Chinese在本课指"中国的"(形容词),Paper指"纸制的"(形容词),注意词性
|
||||
|
||||
### 故事大纲(4段)
|
||||
1. 纸张很弱?Justin用纸盒证明纸制品很坚硬。Paper是Chinese的东西,正确排列就很坚固
|
||||
2. 造龙骨需要把纸折好,但龙骨很长一个人做不完,需要Ruler量度
|
||||
3. 剪纸折叠做龙身、用纸杯餐具造龙头、用Ruler量各部位、用Eraser擦掉画错的地方重画
|
||||
4. 把各部位合体,请Rock老师涂上红色(Chinese的颜色)
|
||||
|
||||
### 林逸瀚指示
|
||||
- 本课较多互动和玩法,故事感可偏弱
|
||||
- 节奏表会由林逸瀚在下一步指引
|
||||
|
||||
### L3 剧本已完成 ✅(全4段,198行,16个中互动+1核心互动)
|
||||
- 飞书文档:https://makee-interactive.feishu.cn/wiki/LuD4wFRaoi0HrMkeAaRcUaFlnGe
|
||||
- 内嵌电子表格 token:SOn6s7DINh3orvtVIgLcbJCsnqd,sheet: wMQVyV
|
||||
- 第4段结尾 Justin 铺了L4悬念:学写“Loong”
|
||||
- 特别注意:Paper=纸制的(adj),Chinese=中国的(adj),始终搭配名词使用
|
||||
BIN
output/U18_L2_第2幕剩余剧本.xlsx
Normal file
BIN
output/U18_L2_第2幕剩余剧本.xlsx
Normal file
Binary file not shown.
BIN
output/U18_L2_第3幕剧本.xlsx
Normal file
BIN
output/U18_L2_第3幕剧本.xlsx
Normal file
Binary file not shown.
BIN
output/U18_L2_第3幕剧本_v2.xlsx
Normal file
BIN
output/U18_L2_第3幕剧本_v2.xlsx
Normal file
Binary file not shown.
BIN
output/U18_L2_第4幕剧本.xlsx
Normal file
BIN
output/U18_L2_第4幕剧本.xlsx
Normal file
Binary file not shown.
BIN
output/U18_L3_第1段剧本.xlsx
Normal file
BIN
output/U18_L3_第1段剧本.xlsx
Normal file
Binary file not shown.
BIN
output/U18_L3_第2段剧本.xlsx
Normal file
BIN
output/U18_L3_第2段剧本.xlsx
Normal file
Binary file not shown.
BIN
output/U18_L3_第3段剧本.xlsx
Normal file
BIN
output/U18_L3_第3段剧本.xlsx
Normal file
Binary file not shown.
BIN
output/U18_L3_第4段剧本.xlsx
Normal file
BIN
output/U18_L3_第4段剧本.xlsx
Normal file
Binary file not shown.
70
scripts/export_L3_act1.py
Normal file
70
scripts/export_L3_act1.py
Normal file
@ -0,0 +1,70 @@
|
||||
import openpyxl
|
||||
from openpyxl.styles import Font
|
||||
|
||||
wb = openpyxl.Workbook()
|
||||
ws = wb.active
|
||||
ws.title = "L3第1段剧本"
|
||||
|
||||
col_widths = {"A": 12, "B": 8, "C": 10, "D": 10, "E": 55, "F": 15, "G": 55, "H": 10, "I": 15}
|
||||
for col, w in col_widths.items():
|
||||
ws.column_dimensions[col].width = w
|
||||
|
||||
headers = ["类型", "ID", "组件配置", "知识点", "剧情描述", "名字", "台词", "角色", "台词润色"]
|
||||
bold = Font(bold=True)
|
||||
for i, h in enumerate(headers, 1):
|
||||
cell = ws.cell(row=1, column=i, value=h)
|
||||
cell.font = bold
|
||||
|
||||
rows = [
|
||||
["TL", None, None, None, "【场景】教室 【角色】User、Vicky、Ben、Sunny、Matt、Justin", None, None, None, None],
|
||||
[None, None, None, None, "Justin走进教室,带着一个大纸箱。大家看了看——11号不在。", None, None, None, None],
|
||||
[None, None, None, None, None, "Vicky", "Where is Eleven?", None, None],
|
||||
[None, None, None, None, None, "Justin", "Eleven is broken. It's getting a repair!", None, None],
|
||||
[None, None, None, None, None, "Ben", "Too much smoke! Haha!", None, None],
|
||||
["TL", None, None, None, "Justin打开纸箱。里面全是纸制品——paper cups、paper spoons、paper plates、还有纸板。", None, None, None, None],
|
||||
[None, None, None, None, None, "Justin", "Today, we make our dragon! With these!", None, None],
|
||||
[None, None, None, None, None, "Sunny", "Paper cups? It is too ugly!", None, None],
|
||||
[None, None, None, None, None, "Matt", "It is too soft. It will break!", None, None],
|
||||
[None, None, None, None, "Ben用手指戳了一下纸板——戳出个洞。", None, None, None, None],
|
||||
[None, None, None, None, None, "Ben", "See? One poke!", None, None],
|
||||
[None, None, None, None, None, "Ben", "A paper dragon? What do you think?", None, None],
|
||||
["中互动", None, None, None, None, "User", "A paper dragon? It is too weak!", None, None],
|
||||
["TL", None, None, None, "Justin笑了笑,从箱子底下抽出一个网格状的paper box,放在地上。", None, None, None, None],
|
||||
[None, None, None, None, None, "Justin", "Who wants to try? Stand on it!", None, None],
|
||||
[None, None, None, None, "Ben第一个踩上去——稳稳的。", None, None, None, None],
|
||||
[None, None, None, None, None, "Ben", "Wow! It's okay!", None, None],
|
||||
[None, None, None, None, "Vicky也站上去——没事。", None, None, None, None],
|
||||
[None, None, None, None, "Matt小心翼翼上去,使劲跺了两脚。Paper box纹丝不动。", None, None, None, None],
|
||||
[None, None, None, None, None, "Matt", "How? It's a paper box!", None, None],
|
||||
[None, None, None, None, "Sunny站在旁边。", None, None, None, None],
|
||||
[None, None, None, None, None, "Sunny", "It is too dirty. I'm not going up.", None, None],
|
||||
[None, None, None, None, "Sunny偷偷看着paper box上的网格花纹。", None, None, None, None],
|
||||
[None, None, None, None, None, "Sunny", "Well... the pattern is kind of pretty.", None, None],
|
||||
[None, None, None, None, None, "Justin", "See? A paper box can be very strong!", None, None],
|
||||
["中互动", None, None, None, None, "Justin", "What is this box made of?", None, None],
|
||||
[None, None, None, None, None, "User", "It is a paper box! But it is so strong!", None, None],
|
||||
["TL", None, None, None, None, "Justin", "Paper things are Chinese.", None, None],
|
||||
[None, None, None, None, None, "Justin", "Chinese people made paper long ago.", None, None],
|
||||
[None, None, None, None, None, "Justin", "If you fold paper the right way, it is very strong!", None, None],
|
||||
[None, None, None, None, None, "Matt", "So if I fold it right, it will be perfect?", None, None],
|
||||
[None, None, None, None, None, "Justin", "Yes!", None, None],
|
||||
[None, None, None, None, "Sunny翻了个白眼,但手已经在挑好看的彩纸了。", None, None, None, None],
|
||||
["中互动", None, None, None, None, "Justin", "Where do paper things come from?", None, None],
|
||||
[None, None, None, None, None, "User", "Paper things are Chinese! Chinese people made them!", None, None],
|
||||
["TL", None, None, None, None, "Justin", "Today, we use paper to make our dragon!", None, None],
|
||||
[None, None, None, None, "Matt已经在研究paper box的折叠结构。", None, None, None, None],
|
||||
[None, None, None, None, None, "Matt", "I need to study this first...", None, None],
|
||||
[None, None, None, None, "Ben搓手。", None, None, None, None],
|
||||
[None, None, None, None, None, "Ben", "Let's go!", None, None],
|
||||
[None, None, None, None, "Sunny挑了一张彩色纸板,端详着。", None, None, None, None],
|
||||
[None, None, None, None, None, "Sunny", "This color is nice. Only this one.", None, None],
|
||||
]
|
||||
|
||||
for r_idx, row in enumerate(rows, 2):
|
||||
for c_idx, val in enumerate(row, 1):
|
||||
if val is not None:
|
||||
ws.cell(row=r_idx, column=c_idx, value=val)
|
||||
|
||||
output_path = "/root/.openclaw/workspace-xiaobian/output/U18_L3_第1段剧本.xlsx"
|
||||
wb.save(output_path)
|
||||
print(f"OK: {output_path}")
|
||||
64
scripts/export_L3_act2.py
Normal file
64
scripts/export_L3_act2.py
Normal file
@ -0,0 +1,64 @@
|
||||
import openpyxl
|
||||
from openpyxl.styles import Font
|
||||
|
||||
wb = openpyxl.Workbook()
|
||||
ws = wb.active
|
||||
ws.title = "L3第2段剧本"
|
||||
|
||||
col_widths = {"A": 12, "B": 8, "C": 10, "D": 10, "E": 55, "F": 15, "G": 55, "H": 10, "I": 15}
|
||||
for col, w in col_widths.items():
|
||||
ws.column_dimensions[col].width = w
|
||||
|
||||
headers = ["类型", "ID", "组件配置", "知识点", "剧情描述", "名字", "台词", "角色", "台词润色"]
|
||||
bold = Font(bold=True)
|
||||
for i, h in enumerate(headers, 1):
|
||||
cell = ws.cell(row=1, column=i, value=h)
|
||||
cell.font = bold
|
||||
|
||||
rows = [
|
||||
["TL", None, None, None, "Justin拿出一张龙骨设计图展开。龙骨很长。", None, None, None, None],
|
||||
[None, None, None, None, None, "Justin", "Now, we need a dragon bone.", None, None],
|
||||
[None, None, None, None, None, "Justin", "The bone is paper too. If you fold it right, it is very strong!", None, None],
|
||||
[None, None, None, None, None, "Justin", "But it is very long. Each of you makes one piece.", None, None],
|
||||
[None, None, None, None, None, "Justin", "Every piece must be 15cm.", None, None],
|
||||
[None, None, None, None, None, "Matt", "How do we make sure?", None, None],
|
||||
[None, None, None, None, "Justin从工具箱拿出一把ruler。", None, None, None, None],
|
||||
[None, None, None, None, None, "Justin", "We can use a ruler to measure!", None, None],
|
||||
["中互动", None, None, None, None, "Justin", "How do we make every piece the same?", None, None],
|
||||
[None, None, None, None, None, "User", "We can use a ruler to measure!", None, None],
|
||||
["TL", None, None, None, "大家开始折龙骨。Matt折得很认真,每一下都量了又量。Ben大大咧咧直接折。Sunny懒洋洋地折了几下就停了。", None, None, None, None],
|
||||
[None, None, None, None, None, "Justin", "Good work everyone!", None, None],
|
||||
[None, None, None, None, None, "Justin", "Now, User, take this ruler.", None, None],
|
||||
[None, None, None, None, None, "Justin", "Check everyone's bone. Is it 15cm?", None, None],
|
||||
[None, None, None, None, "User拿着ruler,走到Ben面前量。", None, None, None, None],
|
||||
[None, None, None, None, None, "Ben", "How is mine?", None, None],
|
||||
[None, None, None, None, "Ben的龙骨明显太长了。", None, None, None, None],
|
||||
["中互动", None, None, None, "User量度Ben的龙骨。", None, None, None, None],
|
||||
[None, None, None, None, None, "User", "It is too long! Cut it!", None, None],
|
||||
[None, None, None, None, None, "Ben", "Oops!", None, None],
|
||||
["TL", None, None, None, "User走到Sunny面前量。Sunny的龙骨很短。", None, None, None, None],
|
||||
[None, None, None, None, None, "Sunny", "Is mine okay?", None, None],
|
||||
["中互动", None, None, None, "User量度Sunny的龙骨。", None, None, None, None],
|
||||
[None, None, None, None, None, "User", "It is too short! Do it again!", None, None],
|
||||
[None, None, None, None, None, "Sunny", "But my hands are tired...", None, None],
|
||||
[None, None, None, None, None, "Vicky", "I'll help you, Sunny.", None, None],
|
||||
["TL", None, None, None, "User走到Matt面前量——刚好15cm。", None, None, None, None],
|
||||
[None, None, None, None, None, "Matt", "How is mine?", None, None],
|
||||
[None, None, None, None, None, "User", "Perfect! 15cm!", None, None],
|
||||
[None, None, None, None, None, "Matt", "Of course. I measured it three times.", None, None],
|
||||
[None, None, None, None, "【emoji】全班 emoji_laugh", None, None, None, None],
|
||||
["TL", None, None, None, "Ben剪掉多余的部分。Vicky拉着Sunny重新折。最后大家的龙骨都是15cm。", None, None, None, None],
|
||||
[None, None, None, None, None, "Justin", "Well done! Every piece is 15cm now.", None, None],
|
||||
[None, None, None, None, None, "Justin", "How did you do it?", None, None],
|
||||
["中互动", None, None, None, None, "User", "My paper dragon bone is done! I used a ruler!", None, None],
|
||||
[None, None, None, None, None, "Justin", "Great! Now let's make the dragon body and head!", None, None],
|
||||
]
|
||||
|
||||
for r_idx, row in enumerate(rows, 2):
|
||||
for c_idx, val in enumerate(row, 1):
|
||||
if val is not None:
|
||||
ws.cell(row=r_idx, column=c_idx, value=val)
|
||||
|
||||
output_path = "/root/.openclaw/workspace-xiaobian/output/U18_L3_第2段剧本.xlsx"
|
||||
wb.save(output_path)
|
||||
print(f"OK: {output_path}")
|
||||
74
scripts/export_L3_act3.py
Normal file
74
scripts/export_L3_act3.py
Normal file
@ -0,0 +1,74 @@
|
||||
import openpyxl
|
||||
from openpyxl.styles import Font
|
||||
|
||||
wb = openpyxl.Workbook()
|
||||
ws = wb.active
|
||||
ws.title = "L3第3段剧本"
|
||||
|
||||
col_widths = {"A": 18, "B": 8, "C": 10, "D": 10, "E": 55, "F": 15, "G": 55, "H": 10, "I": 15}
|
||||
for col, w in col_widths.items():
|
||||
ws.column_dimensions[col].width = w
|
||||
|
||||
headers = ["类型", "ID", "组件配置", "知识点", "剧情描述", "名字", "台词", "角色", "台词润色"]
|
||||
bold = Font(bold=True)
|
||||
for i, h in enumerate(headers, 1):
|
||||
cell = ws.cell(row=1, column=i, value=h)
|
||||
cell.font = bold
|
||||
|
||||
rows = [
|
||||
["TL", None, None, None, "龙头用paper cups和paper spoons拼好了。Justin拍拍手。", None, None, None, None],
|
||||
[None, None, None, None, None, "Justin", "The dragon head is ready!", None, None],
|
||||
[None, None, None, None, None, "Justin", "Now we need to decorate it.", None, None],
|
||||
[None, None, None, None, None, "Justin", "But remember, the patterns must be Chinese!", None, None],
|
||||
[None, None, None, None, None, "Justin", "Chinese cloud, Chinese dragon scales!", None, None],
|
||||
[None, None, None, None, "Sunny直接把几片叶子放到龙头上。", None, None, None, None],
|
||||
[None, None, None, None, None, "Sunny", "We can use these leaves to make it beautiful!", None, None],
|
||||
[None, None, None, None, None, "User", "No Sunny! Leaves are not Chinese!", None, None],
|
||||
["中互动", None, None, None, "【教研图】几个装饰选项(叶子❌/Chinese money✅/其他❌),User选择Chinese money。", None, None, None, None],
|
||||
[None, None, None, None, None, "User", "We can use Chinese money to make it beautiful!", None, None],
|
||||
["TL", None, None, None, "Sunny嘟嘴把叶子拿掉,换上Chinese money图案。其实她贴得很好看。", None, None, None, None],
|
||||
[None, None, None, None, None, "Sunny", "Fine... Chinese money then.", None, None],
|
||||
[None, None, None, None, None, "Ben", "Wow Sunny, that looks nice!", None, None],
|
||||
[None, None, None, None, None, "Sunny", "Of course it does.", None, None],
|
||||
["TL", None, None, None, "画龙点睛时间。Justin骄傲地让Vicky来画龙的眼睛。他掏出手机准备拍照。", None, None, None, None],
|
||||
[None, None, None, None, None, "Justin", "Now, the eyes! My Vicky can do it!", None, None],
|
||||
[None, None, None, None, None, "Justin", "Everyone watch! I need to take a photo!", None, None],
|
||||
[None, None, None, None, "全班盯着看。Vicky拿起笔,手抖。", None, None, None, None],
|
||||
[None, None, None, None, None, "Vicky", "Grandpa... don't film me...", None, None],
|
||||
[None, None, None, None, "Vicky害羞,手一抖——眼睛画歪了。", None, None, None, None],
|
||||
[None, None, None, None, "【emoji】全班 emoji_shock", None, None, None, None],
|
||||
[None, None, None, None, None, "Matt", "Oh no! It's wrong!", None, None],
|
||||
[None, None, None, None, None, "Justin", "Ah... what can we do?", None, None],
|
||||
[None, None, None, None, "Matt从口袋掏出一块橡皮。", None, None, None, None],
|
||||
[None, None, None, None, None, "Vicky", "An eraser!", None, None],
|
||||
["中互动", None, None, None, None, "User", "We can use an eraser to fix it!", None, None],
|
||||
["TL", None, None, None, "Vicky拿起eraser擦掉,重新画。这次画好了。", None, None, None, None],
|
||||
[None, None, None, None, None, "Vicky", "There... much better.", None, None],
|
||||
[None, None, None, None, None, "Justin", "Beautiful! That's my girl!", None, None],
|
||||
[None, None, None, None, "【emoji】Vicky emoji_shy", None, None, None, None],
|
||||
["TL", None, None, None, "Matt帮忙画龙嘴。追求完美——画了擦、擦了画,反复好多次。", None, None, None, None],
|
||||
[None, None, None, None, None, "Matt", "No... the mouth is not right.", None, None],
|
||||
[None, None, None, None, None, "Matt", "Again...", None, None],
|
||||
[None, None, None, None, None, "Matt", "Still not perfect!", None, None],
|
||||
[None, None, None, None, "Matt的eraser越来越短,快捏不住了。", None, None, None, None],
|
||||
[None, None, None, None, None, "Matt", "My eraser is too small now!", None, None],
|
||||
[None, None, None, None, None, "Matt", "Can I use yours?", None, None],
|
||||
["中互动", None, None, None, None, "User", "Here! We can use my eraser to help you!", None, None],
|
||||
["TL", None, None, None, "Matt终于画出满意的龙嘴。", None, None, None, None],
|
||||
[None, None, None, None, None, "Matt", "Yes! Perfect! Finally!", None, None],
|
||||
[None, None, None, None, "【emoji】全班 emoji_laugh", None, None, None, None],
|
||||
["TL", None, None, None, "龙头完成了!大家围着看——Chinese money图案、完美的眼睛和嘴巴、paper cups做的角。", None, None, None, None],
|
||||
[None, None, None, None, None, "Justin", "Look at this dragon head!", None, None],
|
||||
[None, None, None, None, None, "Justin", "Tell everyone what we did!", None, None],
|
||||
["核心互动(口语)", None, None, None, "【教研图】龙头特写。User口语介绍龙头。", None, None, None, None],
|
||||
[None, None, None, None, None, "User", "I used a ruler to measure. We used an eraser to fix it. And we put Chinese money on it. It's a paper dragon head!", None, None],
|
||||
]
|
||||
|
||||
for r_idx, row in enumerate(rows, 2):
|
||||
for c_idx, val in enumerate(row, 1):
|
||||
if val is not None:
|
||||
ws.cell(row=r_idx, column=c_idx, value=val)
|
||||
|
||||
output_path = "/root/.openclaw/workspace-xiaobian/output/U18_L3_第3段剧本.xlsx"
|
||||
wb.save(output_path)
|
||||
print(f"OK: {output_path}")
|
||||
48
scripts/export_L3_act4.py
Normal file
48
scripts/export_L3_act4.py
Normal file
@ -0,0 +1,48 @@
|
||||
import openpyxl
|
||||
from openpyxl.styles import Font
|
||||
|
||||
wb = openpyxl.Workbook()
|
||||
ws = wb.active
|
||||
ws.title = "L3第4段剧本"
|
||||
|
||||
col_widths = {"A": 12, "B": 8, "C": 10, "D": 10, "E": 55, "F": 15, "G": 55, "H": 10, "I": 15}
|
||||
for col, w in col_widths.items():
|
||||
ws.column_dimensions[col].width = w
|
||||
|
||||
headers = ["类型", "ID", "组件配置", "知识点", "剧情描述", "名字", "台词", "角色", "台词润色"]
|
||||
bold = Font(bold=True)
|
||||
for i, h in enumerate(headers, 1):
|
||||
cell = ws.cell(row=1, column=i, value=h)
|
||||
cell.font = bold
|
||||
|
||||
rows = [
|
||||
["TL", None, None, None, "大家把龙骨、龙身、龙头合在一起。一条完整的paper dragon拼好了!但全是白色的。", None, None, None, None],
|
||||
[None, None, None, None, None, "Ben", "It's done! But...", None, None],
|
||||
[None, None, None, None, None, "Matt", "It's all white. It doesn't look strong.", None, None],
|
||||
[None, None, None, None, None, "Sunny", "It needs color!", None, None],
|
||||
[None, None, None, None, "这时Rock老师经过教室门口。气场强烈。", None, None, None, None],
|
||||
[None, None, None, None, None, "Justin", "Rock! Come here! We need your help!", None, None],
|
||||
[None, None, None, None, "Rock老师走进来,看了一眼纸龙。", None, None, None, None],
|
||||
[None, None, None, None, None, "Rock", "Hmm. It needs color.", None, None],
|
||||
[None, None, None, None, None, "Rock", "Chinese dragons are red.", None, None],
|
||||
[None, None, None, None, None, "Rock", "What color is a Chinese dragon?", None, None],
|
||||
["中互动", None, None, None, None, "User", "Chinese dragons are red! Red is a Chinese color!", None, None],
|
||||
["TL", None, None, None, "Rock拿出红色颜料,开始给纸龙涂色。", None, None, None, None],
|
||||
[None, None, None, None, "纸龙变成了红色——威武极了!大家欢呼。", None, None, None, None],
|
||||
[None, None, None, None, None, "Ben", "Wow!", None, None],
|
||||
[None, None, None, None, None, "Matt", "Now that's a real dragon.", None, None],
|
||||
[None, None, None, None, "Sunny看呆了。", None, None, None, None],
|
||||
[None, None, None, None, None, "Sunny", "How is it? Do you like it?", None, None],
|
||||
["中互动", None, None, None, None, "User", "It is too beautiful!", None, None],
|
||||
[None, None, None, None, None, "Justin", "Next class, we dance with our dragon!", None, None],
|
||||
[None, None, None, None, "【emoji】全班 emoji_cheer", None, None, None, None],
|
||||
]
|
||||
|
||||
for r_idx, row in enumerate(rows, 2):
|
||||
for c_idx, val in enumerate(row, 1):
|
||||
if val is not None:
|
||||
ws.cell(row=r_idx, column=c_idx, value=val)
|
||||
|
||||
output_path = "/root/.openclaw/workspace-xiaobian/output/U18_L3_第4段剧本.xlsx"
|
||||
wb.save(output_path)
|
||||
print(f"OK: {output_path}")
|
||||
64
scripts/export_act2.py
Normal file
64
scripts/export_act2.py
Normal file
@ -0,0 +1,64 @@
|
||||
import openpyxl
|
||||
from openpyxl.styles import Font
|
||||
|
||||
wb = openpyxl.Workbook()
|
||||
ws = wb.active
|
||||
ws.title = "第2幕剩余剧本"
|
||||
|
||||
# 列宽
|
||||
col_widths = {"A": 12, "B": 8, "C": 10, "D": 10, "E": 45, "F": 15, "G": 45, "H": 10, "I": 15}
|
||||
for col, w in col_widths.items():
|
||||
ws.column_dimensions[col].width = w
|
||||
|
||||
# 表头
|
||||
headers = ["类型", "ID", "组件配置", "知识点", "剧情描述", "名字", "台词", "角色", "台词润色"]
|
||||
bold = Font(bold=True)
|
||||
for i, h in enumerate(headers, 1):
|
||||
cell = ws.cell(row=1, column=i, value=h)
|
||||
cell.font = bold
|
||||
|
||||
# 剧本数据
|
||||
rows = [
|
||||
["TL", None, None, None, "【插入图】(复用)黑板图谱,标记1、2、3动作。Leo站在黑板前盯着看。", None, None, None, None],
|
||||
[None, None, None, None, None, "Leo", "Okay! Number one...", None, None],
|
||||
[None, None, None, None, "Leo做1号动作,胳膊拧到背后。", None, None, None, None],
|
||||
[None, None, None, None, None, "Leo", "Number two...", None, None],
|
||||
[None, None, None, None, "Leo做2号动作,踢腿,身体摇晃。", None, None, None, None],
|
||||
[None, None, None, None, None, "Leo", "Number three... Hero change!", None, None],
|
||||
[None, None, None, None, "Leo旋转,失去平衡,一屁股坐在地上。", None, None, None, None],
|
||||
[None, None, None, None, "【音效】摔倒\"砰\"", None, None, None, None],
|
||||
[None, None, None, None, "【emoji】全班 emoji_laugh", None, None, None, None],
|
||||
[None, None, None, None, "【镜头】11号从角落探出头,还冒着微弱黑烟。", None, None, None, None],
|
||||
[None, None, None, None, None, "Eleven", "Bip! Hero change... 37%! Keep going!", None, None],
|
||||
[None, None, None, None, None, "Leo", "Oww...", None, None],
|
||||
[None, None, None, None, None, "Leo", "But I did read it right!", None, None],
|
||||
[None, None, None, None, None, "Ben", "Haha! You look so funny!", None, None],
|
||||
["中互动", None, None, None, "【教研图】左:黑板图谱(1/2/3动作)。右:Leo摔倒的滑稽样。题目:\"Leo tried to read the blackboard. Did he do it right?\" 选项:Yes / No。正确答案:No", None, None, None, None],
|
||||
[None, None, None, None, None, "User", "No! Leo did not read it right.", None, None],
|
||||
["TL", None, None, None, None, "Ben", "Your example is so funny!", None, None],
|
||||
[None, None, None, None, None, "Vicky", "That's not a dragon for sure.", None, None],
|
||||
[None, None, None, None, None, "Leo", "But the blackboard shows 1, 2, 3!", None, None],
|
||||
[None, None, None, None, None, "Leo", "I did it as an example!", None, None],
|
||||
[None, None, None, None, None, "Sue", "Hmm... Maybe you are wrong.", None, None],
|
||||
[None, None, None, None, None, "Sue", "Hey, what do you think?", None, None],
|
||||
["中互动", None, None, None, None, "User", "Leo's example is wrong. That's not a dragon!", None, None],
|
||||
["TL", None, None, None, "Leo揉着屁股站起来,嘟囔着不服气。", None, None, None, None],
|
||||
[None, None, None, None, None, "Leo", "Fine... But then what is it?", None, None],
|
||||
[None, None, None, None, "大家又看向黑板,还是看不懂。", None, None, None, None],
|
||||
[None, None, None, None, None, "Vicky", "We still can't read the blackboard...", None, None],
|
||||
[None, None, None, None, None, "Vicky", "Maybe we need Grandpa.", None, None],
|
||||
[None, None, None, None, "【音效】门\"砰\"推开", None, None, None, None],
|
||||
[None, None, None, None, "【镜头】Justin爷爷抱着一摞彩色绸缎出现在门口,看到Leo揉屁股。", None, None, None, None],
|
||||
[None, None, None, None, "【emoji】Justin emoji_laugh", None, None, None, None],
|
||||
[None, None, None, None, None, "Justin", "Hahaha! What happened here?", None, None],
|
||||
["中互动", None, None, None, None, "User", "We tried to read the blackboard. But we can't!", None, None],
|
||||
]
|
||||
|
||||
for r_idx, row in enumerate(rows, 2):
|
||||
for c_idx, val in enumerate(row, 1):
|
||||
if val is not None:
|
||||
ws.cell(row=r_idx, column=c_idx, value=val)
|
||||
|
||||
output_path = "/root/.openclaw/workspace-xiaobian/output/U18_L2_第2幕剩余剧本.xlsx"
|
||||
wb.save(output_path)
|
||||
print(f"OK: {output_path}")
|
||||
96
scripts/export_act3.py
Normal file
96
scripts/export_act3.py
Normal file
@ -0,0 +1,96 @@
|
||||
import openpyxl
|
||||
from openpyxl.styles import Font
|
||||
|
||||
wb = openpyxl.Workbook()
|
||||
ws = wb.active
|
||||
ws.title = "第3幕剧本"
|
||||
|
||||
col_widths = {"A": 12, "B": 8, "C": 10, "D": 10, "E": 50, "F": 15, "G": 50, "H": 10, "I": 15}
|
||||
for col, w in col_widths.items():
|
||||
ws.column_dimensions[col].width = w
|
||||
|
||||
headers = ["类型", "ID", "组件配置", "知识点", "剧情描述", "名字", "台词", "角色", "台词润色"]
|
||||
bold = Font(bold=True)
|
||||
for i, h in enumerate(headers, 1):
|
||||
cell = ws.cell(row=1, column=i, value=h)
|
||||
cell.font = bold
|
||||
|
||||
rows = [
|
||||
# === 桥段1:排队 ===
|
||||
["TL", None, None, None, "Justin笑着摇头。", None, None, None, None],
|
||||
[None, None, None, None, None, "Justin", "No no no. This is not hero change.", None, None],
|
||||
[None, None, None, None, None, "Justin", "This is a dragon dance!", None, None],
|
||||
[None, None, None, None, None, "Leo", "Dragon dance?", None, None],
|
||||
[None, None, None, None, None, "Justin", "Yes! But first, you need to stand in a line.", None, None],
|
||||
[None, None, None, None, None, "Justin", "Come! Everyone, stand in line!", None, None],
|
||||
[None, None, None, None, "Leo第一个冲到最前面。", None, None, None, None],
|
||||
[None, None, None, None, None, "Leo", "I'm number 1! I'm first in line!", None, None],
|
||||
[None, None, None, None, "Ben排到Leo后面,Vicky排第三。", None, None, None, None],
|
||||
[None, None, None, None, None, "Ben", "I'm number 2.", None, None],
|
||||
[None, None, None, None, None, "Vicky", "And I'm number 3 in line.", None, None],
|
||||
[None, None, None, None, None, "Justin", "Good! Now, number 1 does move 1.", None, None],
|
||||
[None, None, None, None, None, "Justin", "Number 2 does move 2.", None, None],
|
||||
[None, None, None, None, None, "Justin", "When you all move together, you look like a dragon!", None, None],
|
||||
# === 中互动8 ===
|
||||
["中互动", None, None, None, "【教研图】教室场景,同学散乱站着。User需要把Leo拖到位置1、Ben到位置2、Vicky到位置3,排成一条line。完成后队列亮起。", None, None, None, None],
|
||||
[None, None, None, None, None, "User", "Stand in line! Leo is 1, Ben is 2, Vicky is 3!", None, None],
|
||||
# === 桥段2:Justin示范,Leo做不好 ===
|
||||
["TL", None, None, None, "大家排好了。Justin走到队伍前方。", None, None, None, None],
|
||||
[None, None, None, None, None, "Justin", "Number 1 is the dragon head.", None, None],
|
||||
[None, None, None, None, None, "Justin", "The head move is very important.", None, None],
|
||||
[None, None, None, None, None, "Justin", "Take me as an example.", None, None],
|
||||
[None, None, None, None, None, "Justin", "Watch my head and arms.", None, None],
|
||||
[None, None, None, None, "Justin做了一个流畅的龙头动作——抬头、双臂向前划。", None, None, None, None],
|
||||
[None, None, None, None, None, "Leo", "Easy! Watch me!", None, None],
|
||||
[None, None, None, None, "Leo尝试模仿,但做成了超人变身招式。", None, None, None, None],
|
||||
[None, None, None, None, None, "Justin", "No no, not hero change!", None, None],
|
||||
[None, None, None, None, "Leo再试一次,胳膊不协调地乱甩。", None, None, None, None],
|
||||
[None, None, None, None, "【emoji】Leo emoji_sad", None, None, None, None],
|
||||
[None, None, None, None, None, "Leo", "Hmm... it's hard.", None, None],
|
||||
[None, None, None, None, "Justin看了一眼Vicky。", None, None, None, None],
|
||||
[None, None, None, None, None, "Justin", "My Vicky's move is so good!", None, None],
|
||||
[None, None, None, None, None, "Justin", "She's always the best!", None, None],
|
||||
[None, None, None, None, "【emoji】Vicky emoji_shy", None, None, None, None],
|
||||
[None, None, None, None, None, "Vicky", "Grandpa... not again...", None, None],
|
||||
[None, None, None, None, "【emoji】全班 emoji_laugh", None, None, None, None],
|
||||
# === 中互动9 ===
|
||||
["中互动", None, None, None, None, "Justin", "Is Leo in the right place?", None, None],
|
||||
[None, None, None, None, None, "User", "Leo is number 1 in line. But his move is wrong!", None, None],
|
||||
# === 桥段3:Leo退出,User接替 ===
|
||||
["TL", None, None, None, "Leo又试了一次,还是做不好。", None, None, None, None],
|
||||
[None, None, None, None, None, "Leo", "Ahh... I can't do it.", None, None],
|
||||
[None, None, None, None, None, "Leo", "I'm a Hero... not a Dragon.", None, None],
|
||||
[None, None, None, None, None, "Leo", "Hero change is my thing!", None, None],
|
||||
[None, None, None, None, "Leo从1号位退出来,有点失落。", None, None, None, None],
|
||||
[None, None, None, None, None, "Ben", "It's okay Leo.", None, None],
|
||||
[None, None, None, None, None, "Leo", "Someone better can be number 1.", None, None],
|
||||
[None, None, None, None, "大家看向User。", None, None, None, None],
|
||||
[None, None, None, None, None, "Justin", "We need a new number 1 in line.", None, None],
|
||||
[None, None, None, None, None, "Justin", "Who wants to be the dragon head?", None, None],
|
||||
# === 中互动10 ===
|
||||
["中互动", None, None, None, None, "User", "I'll stand in line! I'm number 1!", None, None],
|
||||
# === 桥段4:User做龙头,初次成功 ===
|
||||
["TL", None, None, None, "User站到队伍最前面。队伍变成:User 1号、Ben 2号、Vicky 3号。", None, None, None, None],
|
||||
[None, None, None, None, None, "Justin", "Good! Now do the head move.", None, None],
|
||||
[None, None, None, None, "Justin再次示范龙头动作。User跟着做,比Leo协调。", None, None, None, None],
|
||||
[None, None, None, None, None, "Justin", "Yes! Very good!", None, None],
|
||||
[None, None, None, None, "Leo在后面挥拳。", None, None, None, None],
|
||||
[None, None, None, None, None, "Leo", "Go go go! Dragon head!", None, None],
|
||||
[None, None, None, None, None, "Justin", "Everyone, follow the head. Move!", None, None],
|
||||
[None, None, None, None, "大家跟着动起来,歪歪扭扭但有了雏形。", None, None, None, None],
|
||||
[None, None, None, None, "【emoji】全班 emoji_laugh", None, None, None, None],
|
||||
[None, None, None, None, None, "Vicky", "We look so funny!", None, None],
|
||||
[None, None, None, None, None, "Ben", "But it's working!", None, None],
|
||||
# === 中互动11 ===
|
||||
["中互动", None, None, None, None, "Leo", "How does it feel? Being the dragon head?", None, None],
|
||||
[None, None, None, None, None, "User", "I'm the head of the line! Let's move together!", None, None],
|
||||
]
|
||||
|
||||
for r_idx, row in enumerate(rows, 2):
|
||||
for c_idx, val in enumerate(row, 1):
|
||||
if val is not None:
|
||||
ws.cell(row=r_idx, column=c_idx, value=val)
|
||||
|
||||
output_path = "/root/.openclaw/workspace-xiaobian/output/U18_L2_第3幕剧本.xlsx"
|
||||
wb.save(output_path)
|
||||
print(f"OK: {output_path}")
|
||||
114
scripts/export_act3_v2.py
Normal file
114
scripts/export_act3_v2.py
Normal file
@ -0,0 +1,114 @@
|
||||
import openpyxl
|
||||
from openpyxl.styles import Font
|
||||
|
||||
wb = openpyxl.Workbook()
|
||||
ws = wb.active
|
||||
ws.title = "第3幕剧本"
|
||||
|
||||
col_widths = {"A": 12, "B": 8, "C": 10, "D": 10, "E": 50, "F": 15, "G": 50, "H": 10, "I": 15}
|
||||
for col, w in col_widths.items():
|
||||
ws.column_dimensions[col].width = w
|
||||
|
||||
headers = ["类型", "ID", "组件配置", "知识点", "剧情描述", "名字", "台词", "角色", "台词润色"]
|
||||
bold = Font(bold=True)
|
||||
for i, h in enumerate(headers, 1):
|
||||
cell = ws.cell(row=1, column=i, value=h)
|
||||
cell.font = bold
|
||||
|
||||
rows = [
|
||||
# === 11号耍宝 ===
|
||||
["TL", None, None, None, "【镜头】11号从角落探出来,黑烟已经散了一些。它挺起胸膛。", None, None, None, None],
|
||||
[None, None, None, None, None, "Eleven", "Bip Bop! I am a good teacher!", None, None],
|
||||
[None, None, None, None, None, "Eleven", "I showed an example for my students!", None, None],
|
||||
[None, None, None, None, None, "Eleven", "Doctor Eleven is the best example! BipBop!", None, None],
|
||||
[None, None, None, None, None, "Ben", "Haha! You? A good example?", None, None],
|
||||
[None, None, None, None, None, "Ben", "You can't even read the blackboard!", None, None],
|
||||
[None, None, None, None, "【emoji】全班 emoji_laugh", None, None, None, None],
|
||||
# === 中互动8:Example ===
|
||||
["中互动", None, None, None, None, "Ben", "Was Eleven a good example?", None, None],
|
||||
[None, None, None, None, None, "User", "No! Eleven is a bad example!", None, None],
|
||||
# === 11号冒烟退场 ===
|
||||
["TL", None, None, None, "【emoji】Eleven emoji_sad", None, None, None, None],
|
||||
[None, None, None, None, None, "Eleven", "Bip...Bip... I'm a good teacher...", None, None],
|
||||
[None, None, None, None, "11号又开始冒黑烟,缩回角落。", None, None, None, None],
|
||||
[None, None, None, None, None, "Eleven", "I need to cool down again... BipBip...", None, None],
|
||||
[None, None, None, None, "【emoji】全班 emoji_laugh", None, None, None, None],
|
||||
# === Justin进入正题 ===
|
||||
[None, None, None, None, "Justin笑着摇头。", None, None, None, None],
|
||||
[None, None, None, None, None, "Justin", "Okay okay. Let me help.", None, None],
|
||||
[None, None, None, None, None, "Justin", "This is not hero change.", None, None],
|
||||
[None, None, None, None, None, "Justin", "This is a dragon dance!", None, None],
|
||||
[None, None, None, None, None, "Leo", "Dragon dance?", None, None],
|
||||
[None, None, None, None, None, "Justin", "Yes! But first, you need to stand in a line.", None, None],
|
||||
[None, None, None, None, None, "Justin", "Come! Everyone, stand in line!", None, None],
|
||||
[None, None, None, None, "Leo第一个冲到最前面。", None, None, None, None],
|
||||
[None, None, None, None, None, "Leo", "I'm number 1! I'm first in line!", None, None],
|
||||
[None, None, None, None, "Ben排到Leo后面,Vicky排第三。", None, None, None, None],
|
||||
[None, None, None, None, None, "Ben", "I'm number 2.", None, None],
|
||||
[None, None, None, None, None, "Vicky", "And I'm number 3 in line.", None, None],
|
||||
[None, None, None, None, None, "Justin", "Good! Now, number 1 does move 1.", None, None],
|
||||
[None, None, None, None, None, "Justin", "Number 2 does move 2.", None, None],
|
||||
[None, None, None, None, None, "Justin", "When you all move together, you look like a dragon!", None, None],
|
||||
# === 中互动9:Line拖拽 ===
|
||||
["中互动", None, None, None, "【教研图】教室场景,同学散乱站着。User把Leo拖到位置1、Ben到位置2、Vicky到位置3,排成一条line。完成后队列亮起。", None, None, None, None],
|
||||
[None, None, None, None, None, "User", "Stand in line! Leo is 1, Ben is 2, Vicky is 3!", None, None],
|
||||
# === Justin示范,Leo做不好 ===
|
||||
["TL", None, None, None, "大家排好了。Justin走到队伍前方。", None, None, None, None],
|
||||
[None, None, None, None, None, "Justin", "Number 1 is the dragon head.", None, None],
|
||||
[None, None, None, None, None, "Justin", "The head move is very important.", None, None],
|
||||
[None, None, None, None, None, "Justin", "Take me as an example.", None, None],
|
||||
[None, None, None, None, None, "Justin", "Watch my head and arms.", None, None],
|
||||
[None, None, None, None, "Justin做了一个流畅的龙头动作——抬头、双臂向前划。", None, None, None, None],
|
||||
[None, None, None, None, None, "Leo", "Easy! Watch me!", None, None],
|
||||
[None, None, None, None, "Leo尝试模仿,但做成了超人变身招式。", None, None, None, None],
|
||||
[None, None, None, None, None, "Justin", "No no, not hero change!", None, None],
|
||||
[None, None, None, None, "Leo再试一次,胳膊不协调地乱甩。", None, None, None, None],
|
||||
[None, None, None, None, "【emoji】Leo emoji_sad", None, None, None, None],
|
||||
[None, None, None, None, None, "Leo", "Hmm... it's hard.", None, None],
|
||||
[None, None, None, None, "Justin看了一眼Vicky。", None, None, None, None],
|
||||
[None, None, None, None, None, "Justin", "My Vicky's move is so good!", None, None],
|
||||
[None, None, None, None, None, "Justin", "She's always the best!", None, None],
|
||||
[None, None, None, None, "【emoji】Vicky emoji_shy", None, None, None, None],
|
||||
[None, None, None, None, None, "Vicky", "Grandpa... not again...", None, None],
|
||||
[None, None, None, None, "【emoji】全班 emoji_laugh", None, None, None, None],
|
||||
# === 中互动10 ===
|
||||
["中互动", None, None, None, None, "Justin", "Is Leo in the right place?", None, None],
|
||||
[None, None, None, None, None, "User", "Leo is number 1 in line. But his move is wrong!", None, None],
|
||||
# === Leo退出,User接替 ===
|
||||
["TL", None, None, None, "Leo又试了一次,还是做不好。", None, None, None, None],
|
||||
[None, None, None, None, None, "Leo", "Ahh... I can't do it.", None, None],
|
||||
[None, None, None, None, None, "Leo", "I'm a Hero... not a Dragon.", None, None],
|
||||
[None, None, None, None, None, "Leo", "Hero change is my thing!", None, None],
|
||||
[None, None, None, None, "Leo从1号位退出来,有点失落。", None, None, None, None],
|
||||
[None, None, None, None, None, "Ben", "It's okay Leo.", None, None],
|
||||
[None, None, None, None, None, "Leo", "Someone better can be number 1.", None, None],
|
||||
[None, None, None, None, "大家看向User。", None, None, None, None],
|
||||
[None, None, None, None, None, "Justin", "We need a new number 1 in line.", None, None],
|
||||
[None, None, None, None, None, "Justin", "Who wants to be the dragon head?", None, None],
|
||||
# === 中互动11 ===
|
||||
["中互动", None, None, None, None, "User", "I'll stand in line! I'm number 1!", None, None],
|
||||
# === User做龙头 ===
|
||||
["TL", None, None, None, "User站到队伍最前面。队伍变成:User 1号、Ben 2号、Vicky 3号。", None, None, None, None],
|
||||
[None, None, None, None, None, "Justin", "Good! Now do the head move.", None, None],
|
||||
[None, None, None, None, "Justin再次示范龙头动作。User跟着做,比Leo协调。", None, None, None, None],
|
||||
[None, None, None, None, None, "Justin", "Yes! Very good!", None, None],
|
||||
[None, None, None, None, "Leo在后面挥拳。", None, None, None, None],
|
||||
[None, None, None, None, None, "Leo", "Go go go! Dragon head!", None, None],
|
||||
[None, None, None, None, None, "Justin", "Everyone, follow the head. Move!", None, None],
|
||||
[None, None, None, None, "大家跟着动起来,歪歪扭扭但有了雏形。", None, None, None, None],
|
||||
[None, None, None, None, "【emoji】全班 emoji_laugh", None, None, None, None],
|
||||
[None, None, None, None, None, "Vicky", "We look so funny!", None, None],
|
||||
[None, None, None, None, None, "Ben", "But it's working!", None, None],
|
||||
# === 中互动12 ===
|
||||
["中互动", None, None, None, None, "Leo", "How does it feel? Being the dragon head?", None, None],
|
||||
[None, None, None, None, None, "User", "I'm the head of the line! Let's move together!", None, None],
|
||||
]
|
||||
|
||||
for r_idx, row in enumerate(rows, 2):
|
||||
for c_idx, val in enumerate(row, 1):
|
||||
if val is not None:
|
||||
ws.cell(row=r_idx, column=c_idx, value=val)
|
||||
|
||||
output_path = "/root/.openclaw/workspace-xiaobian/output/U18_L2_第3幕剧本_v2.xlsx"
|
||||
wb.save(output_path)
|
||||
print(f"OK: {output_path}")
|
||||
45
scripts/export_act4.py
Normal file
45
scripts/export_act4.py
Normal file
@ -0,0 +1,45 @@
|
||||
import openpyxl
|
||||
from openpyxl.styles import Font
|
||||
|
||||
wb = openpyxl.Workbook()
|
||||
ws = wb.active
|
||||
ws.title = "第4幕剧本"
|
||||
|
||||
col_widths = {"A": 18, "B": 8, "C": 10, "D": 10, "E": 55, "F": 15, "G": 55, "H": 10, "I": 15}
|
||||
for col, w in col_widths.items():
|
||||
ws.column_dimensions[col].width = w
|
||||
|
||||
headers = ["类型", "ID", "组件配置", "知识点", "剧情描述", "名字", "台词", "角色", "台词润色"]
|
||||
bold = Font(bold=True)
|
||||
for i, h in enumerate(headers, 1):
|
||||
cell = ws.cell(row=1, column=i, value=h)
|
||||
cell.font = bold
|
||||
|
||||
rows = [
|
||||
["TL", None, None, None, "Justin看着歪扭但在动的小龙,满意点头。", None, None, None, None],
|
||||
[None, None, None, None, None, "Justin", "Very good! Take you as an example.", None, None],
|
||||
[None, None, None, None, None, "Justin", "Your move is the best!", None, None],
|
||||
[None, None, None, None, None, "Justin", "You are the dragon head!", None, None],
|
||||
[None, None, None, None, None, "Leo", "Yeah! Dragon head!", None, None],
|
||||
["中互动", None, None, None, None, "Justin", "Tell everyone. Why are you the head?", None, None],
|
||||
[None, None, None, None, None, "User", "Take me as an example! My move is the best!", None, None],
|
||||
["核心互动-听力拖拽", None, None, None, "【教研图】教室队列场景。Justin语音逐句说指令,User听后操作:① \"Stand in line!\"(拖角色排队)② \"Read the blackboard!\"(点击黑板对应动作)③ \"Take number 1 as an example!\"(选出龙头动作)。全部完成后,小龙动画动起来。", None, None, None, None],
|
||||
["TL", None, None, None, "小龙成功动起来!大家欢呼。", None, None, None, None],
|
||||
[None, None, None, None, None, "Justin", "Well done!", None, None],
|
||||
[None, None, None, None, None, "Justin", "Next time, we make a real dragon!", None, None],
|
||||
[None, None, None, None, None, "Justin", "And give it a cool Chinese name!", None, None],
|
||||
[None, None, None, None, None, "Leo", "I have a name! Earthman Dragon!", None, None],
|
||||
[None, None, None, None, "【emoji】全班 emoji_laugh", None, None, None, None],
|
||||
[None, None, None, None, None, "Vicky", "That's not Chinese, Leo...", None, None],
|
||||
["中互动", None, None, None, None, "Justin", "What did we learn today?", None, None],
|
||||
[None, None, None, None, None, "User", "We stand in line and dance like a dragon! Take us as an example!", None, None],
|
||||
]
|
||||
|
||||
for r_idx, row in enumerate(rows, 2):
|
||||
for c_idx, val in enumerate(row, 1):
|
||||
if val is not None:
|
||||
ws.cell(row=r_idx, column=c_idx, value=val)
|
||||
|
||||
output_path = "/root/.openclaw/workspace-xiaobian/output/U18_L2_第4幕剧本.xlsx"
|
||||
wb.save(output_path)
|
||||
print(f"OK: {output_path}")
|
||||
Loading…
Reference in New Issue
Block a user