import fs from 'node:fs'; import assert from 'node:assert/strict'; import {login,call} from './role-permissions-live.mjs'; import {introductionPages} from '../../unreal_tran_web/src/features/training/introduction.js'; const dir='reports/bridge-introduction-narration-20260924';fs.mkdirSync(dir,{recursive:true}); const session=await login('root'),pages=[]; for(const id of [86,87,88,89]){ const response=await call('tran/v1/teaching/assignments/'+id,session.accessToken);assert.equal(response.status,200); const task=response.data; for(const [index,page] of introductionPages(task.definitionSnapshot.introduction).entries()){ assert.equal(page.format,'image-text');assert.ok(page.body); const text=page.body.replace(/\n\s*/g,'\n').trim(); assert.ok(!/原稿|未展开|没有展开/.test(text)); pages.push({key:task.code+'-intro-'+String(index).padStart(2,'0'),code:task.code,scriptId:task.definitionSnapshot.runtime.scriptId, assignmentId:String(id),contentVersionId:task.contentVersionId,pageId:page.id,title:page.title,body:page.body,format:page.format,text}); } } fs.writeFileSync(dir+'/sources.json',JSON.stringify(pages,null,2)); console.log(pages.map(p=>({key:p.key,title:p.title,characters:p.text.length})));