build.test31.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. import commonModel from '../model/commonModel.js';
  2. import fs from 'fs';
  3. import { stringUtils } from '../util/stringClass.js';
  4. import aiController from '../api/yjbdc/aiController.js';
  5. async function runScript(){
  6. let id,word;
  7. try {
  8. const sql="select * from Words where BookID=110 order by ID;"
  9. let list = await commonModel.RunSql(null,sql);
  10. const start=0;
  11. //const start=0;
  12. let count=list.length;
  13. //count=100;
  14. // 添加延时函数,确保每分钟只发送9次请求(约每6.67秒一次请求)
  15. // const delay = (ms ) => new Promise(resolve => setTimeout(resolve, ms));
  16. // const requestDelay = 300; // 7秒,确保每分钟最多9次请求
  17. for(let i=start;i<count;i++){
  18. let item=list[i];
  19. id=item.ID;
  20. //获得单词
  21. word=item.Word;
  22. let exampleSentence=item.ExampleSentence;
  23. if (exampleSentence){
  24. try{
  25. if (exampleSentence.indexOf("\"\"")>=0){
  26. exampleSentence=exampleSentence("\"\"Sentences\"\"","\"Sentences\"");
  27. exampleSentence=exampleSentence("\"\",","\",");
  28. exampleSentence=exampleSentence(",\"\"",",\"");
  29. exampleSentence=exampleSentence("\"\":","\":");
  30. exampleSentence=exampleSentence(":\"\"",":\"");
  31. let sql5="update Words set ExampleSentence='"+exampleSentence+"' where ID="+id+";";
  32. //console.log(exampleSentence);
  33. await commonModel.RunSql(null,sql5);
  34. }
  35. exampleSentence=JSON.parse(exampleSentence);
  36. //console.log(exampleSentence);
  37. let sql2="select * from MiaoguoLiteracy where Word='"+word+"';";
  38. let list2= await commonModel.RunSql(null,sql2);
  39. for(let j=0;j<list2.length;j++){
  40. let json=list2[j].JSONString;
  41. json=JSON.parse(json);
  42. //console.log(json);
  43. let b=false;
  44. if (json.ENG && json.ENG.ExamplesSentences){
  45. for(let k=0;k<json.ENG.ExamplesSentences.length;k++){
  46. debugger;
  47. let sentence1=json.ENG.ExamplesSentences[k][0];
  48. if (sentence1.indexOf("[线]")<0){
  49. //console.log("word:"+word);
  50. let words=stringUtils.getWordAllForms(word);
  51. for(let n=0;n<words.length;n++){
  52. if (sentence1.indexOf(words[n])>=0){
  53. sentence1=sentence1.replace(words[n],"[线]"+words[n]+"[/线]");
  54. break;
  55. }
  56. else{
  57. let word1=words[n].charAt(0).toUpperCase() + words[n].slice(1).toLowerCase();
  58. if (sentence1.indexOf(word1)>=0){
  59. sentence1=sentence1.replace(word1,"[线]"+word1+"[/线]");
  60. break;
  61. }
  62. }
  63. }
  64. //console.log("words:"+words.join(", "));
  65. //console.log("sentence1:"+sentence1);
  66. json.ENG.ExamplesSentences[k][0]=sentence1;
  67. b=true;
  68. }
  69. }
  70. }
  71. if (b){
  72. json.ENG.CEFR_Level=exampleSentence.CEFR_Level;
  73. json=JSON.stringify(json);
  74. let sql3="update MiaoguoLiteracy set JSONString=? where ID="+list2[j].ID+";";
  75. // //console.log(sql3);
  76. // //console.log(json);
  77. await commonModel.RunSql(json,sql3);
  78. }
  79. }
  80. }
  81. catch(e){
  82. // let sql2="update Words set ExampleSentence='' where ID="+id+";";
  83. // await commonModel.RunSql(item.ExampleSentence,sql2);
  84. console.log("出错:"+word);
  85. console.log("error:"+e);
  86. process.exit(1);
  87. }
  88. }
  89. console.log(i +"/"+ list.length+" "+word);
  90. // 在每次请求后添加延时,除非是最后一个请求
  91. // if (i < count - 1) {
  92. // console.log(`等待 ${requestDelay/1000} 秒后继续下一个请求...`);
  93. // await delay(requestDelay);
  94. // }
  95. }
  96. console.log("完成");
  97. process.exit(1);
  98. } catch (error) {
  99. console.log(id + " " +word);
  100. console.error('Error executing script:', error);
  101. throw new Error('终止程序');
  102. process.exit(1);
  103. }
  104. }
  105. runScript().catch(error => {
  106. console.error('Error in runScript:', error);
  107. });