Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 
 

20 righe
1.2 KiB

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