build.test2.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  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 and ExampleSentence is not null order by ID;;"
  9. let list = await commonModel.RunSql(null,sql);
  10. let count=list.length;
  11. const start=0;
  12. //count=10;
  13. // 添加延时函数,确保每分钟只发送9次请求(约每6.67秒一次请求)
  14. // const delay = (ms ) => new Promise(resolve => setTimeout(resolve, ms));
  15. // const requestDelay = 300; // 7秒,确保每分钟最多9次请求
  16. for(let i=start;i<count;i++){
  17. let item=list[i];
  18. id=item.ID;
  19. //获得单词
  20. word=item.Word;
  21. let exampleSentence=item.ExampleSentence;
  22. if (exampleSentence){
  23. try{
  24. exampleSentence=JSON.parse(exampleSentence);
  25. let sql2="update Words set ExampleSentence=?,Level='"+exampleSentence.CEFR_Level+"' where BookID<>110 and BookID not in (141,142,143,144,145,146,161,162,163,164,165,166,167,168) and ExampleSentence is null and Word='"+word+"';";
  26. //console.log(sql2);
  27. await commonModel.RunSql(item.ExampleSentence,sql2);
  28. }
  29. catch(e){
  30. //let sql2="update Words set ExampleSentence='' where ID="+id+";";
  31. console.log("出错:"+word);
  32. process.exit(1);
  33. //await commonModel.RunSql(item.ExampleSentence,sql2);
  34. }
  35. }
  36. else{
  37. console.log( word +" 空");
  38. process.exit(1);
  39. }
  40. console.log( i +"/"+ list.length);
  41. // 在每次请求后添加延时,除非是最后一个请求
  42. // if (i < count - 1) {
  43. // console.log(`等待 ${requestDelay/1000} 秒后继续下一个请求...`);
  44. // await delay(requestDelay);
  45. // }
  46. }
  47. console.log("完成");
  48. process.exit(1);
  49. } catch (error) {
  50. console.log(id + " " +word);
  51. console.error('Error executing script:', error);
  52. process.exit(1);
  53. }
  54. }
  55. async function runScript2(){
  56. let id,word;
  57. try {
  58. const sql="SELECT * FROM kylx365_db.Words where BookID=110 and ExampleSentence like '{\"word\"%}]}%例句%';"
  59. let list = await commonModel.RunSql(null,sql);
  60. let count=list.length;
  61. const start=0;
  62. //count=10;
  63. for(let i=start;i<count;i++){
  64. let item=list[i];
  65. id=item.ID;
  66. //获得单词
  67. word=item.Word;
  68. let exampleSentence=item.ExampleSentence;
  69. exampleSentence=exampleSentence.substr(exampleSentence.lastIndexOf("{\"word"),exampleSentence.lastIndexOf("}]}")+3);
  70. console.log(exampleSentence);
  71. let sql2="update Words set ExampleSentence=? where ID="+id+";";
  72. //console.log(sql2);
  73. await commonModel.RunSql(exampleSentence,sql2);
  74. console.log( i +"/"+ list.length);
  75. }
  76. console.log("完成");
  77. } catch (error) {
  78. console.log(id + " " +word);
  79. console.error('Error executing script:', error);
  80. }
  81. }
  82. // 处理Promise并添加错误捕获
  83. if (1==1){
  84. runScript().catch(error => {
  85. console.error('Error in runScript:', error);
  86. });
  87. }
  88. else
  89. runScript2();