koishi-plugin-aka-ai-generator 0.7.8 → 0.7.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/lib/index.js +78 -0
  2. package/package.json +1 -1
package/lib/index.js CHANGED
@@ -2459,6 +2459,45 @@ ${infoParts.join("\n")}`;
2459
2459
  return addResult.message || "队列已满,请先查询已有任务";
2460
2460
  }
2461
2461
  await session.send("开始生成视频...");
2462
+ await new Promise((resolve) => setTimeout(resolve, 1e4));
2463
+ try {
2464
+ const firstStatus = await videoProvider.queryTaskStatus(taskId);
2465
+ if (firstStatus.status === "failed") {
2466
+ const errorMsg = firstStatus.error || "视频生成失败";
2467
+ await userManager.deletePendingVideoTask(taskId);
2468
+ return `视频生成失败:${sanitizeString(errorMsg)}`;
2469
+ }
2470
+ if (firstStatus.status === "completed" && firstStatus.videoUrl) {
2471
+ await session.send(import_koishi2.h.video(firstStatus.videoUrl));
2472
+ await recordUserUsage(session, "图生视频", videoCredits, false);
2473
+ await userManager.markPendingVideoTaskCharged(taskId);
2474
+ await userManager.deletePendingVideoTask(taskId);
2475
+ return "视频生成完成!";
2476
+ }
2477
+ await session.send("视频正在生成中,请稍候...");
2478
+ } catch (error) {
2479
+ logger.error("第一次查询视频状态失败", { taskId, error: sanitizeError(error) });
2480
+ }
2481
+ await new Promise((resolve) => setTimeout(resolve, config.videoMaxWaitTime * 1e3));
2482
+ try {
2483
+ const secondStatus = await videoProvider.queryTaskStatus(taskId);
2484
+ if (secondStatus.status === "completed" && secondStatus.videoUrl) {
2485
+ await session.send(import_koishi2.h.video(secondStatus.videoUrl));
2486
+ await recordUserUsage(session, "图生视频", videoCredits, false);
2487
+ await userManager.markPendingVideoTaskCharged(taskId);
2488
+ await userManager.deletePendingVideoTask(taskId);
2489
+ return "视频生成完成!";
2490
+ } else if (secondStatus.status === "failed") {
2491
+ const errorMsg = secondStatus.error || "视频生成失败";
2492
+ await userManager.deletePendingVideoTask(taskId);
2493
+ return `视频生成失败:${sanitizeString(errorMsg)}`;
2494
+ } else {
2495
+ return '视频仍在生成中,请稍后使用"查询视频"指令获取结果';
2496
+ }
2497
+ } catch (error) {
2498
+ logger.error("第二次查询视频状态失败", { taskId, error: sanitizeError(error) });
2499
+ return '视频生成中,请稍后使用"查询视频"指令获取结果';
2500
+ }
2462
2501
  } catch (error) {
2463
2502
  logger.error("视频生成任务提交失败", { userId, error: sanitizeError(error) });
2464
2503
  if (createdTaskId) {
@@ -2627,6 +2666,45 @@ ${messages.join("\n")}`;
2627
2666
  return addResult.message || "队列已满,请先查询已有任务";
2628
2667
  }
2629
2668
  await session.send(`开始生成视频(${style.commandName})...`);
2669
+ await new Promise((resolve) => setTimeout(resolve, 1e4));
2670
+ try {
2671
+ const firstStatus = await videoProvider.queryTaskStatus(taskId);
2672
+ if (firstStatus.status === "failed") {
2673
+ const errorMsg = firstStatus.error || "视频生成失败";
2674
+ await userManager.deletePendingVideoTask(taskId);
2675
+ return `视频生成失败:${sanitizeString(errorMsg)}`;
2676
+ }
2677
+ if (firstStatus.status === "completed" && firstStatus.videoUrl) {
2678
+ await session.send(import_koishi2.h.video(firstStatus.videoUrl));
2679
+ await recordUserUsage(session, style.commandName, videoCredits, false);
2680
+ await userManager.markPendingVideoTaskCharged(taskId);
2681
+ await userManager.deletePendingVideoTask(taskId);
2682
+ return "视频生成完成!";
2683
+ }
2684
+ await session.send("视频正在生成中,请稍候...");
2685
+ } catch (error) {
2686
+ logger.error("第一次查询视频状态失败", { taskId, error: sanitizeError(error) });
2687
+ }
2688
+ await new Promise((resolve) => setTimeout(resolve, config.videoMaxWaitTime * 1e3));
2689
+ try {
2690
+ const secondStatus = await videoProvider.queryTaskStatus(taskId);
2691
+ if (secondStatus.status === "completed" && secondStatus.videoUrl) {
2692
+ await session.send(import_koishi2.h.video(secondStatus.videoUrl));
2693
+ await recordUserUsage(session, style.commandName, videoCredits, false);
2694
+ await userManager.markPendingVideoTaskCharged(taskId);
2695
+ await userManager.deletePendingVideoTask(taskId);
2696
+ return "视频生成完成!";
2697
+ } else if (secondStatus.status === "failed") {
2698
+ const errorMsg = secondStatus.error || "视频生成失败";
2699
+ await userManager.deletePendingVideoTask(taskId);
2700
+ return `视频生成失败:${sanitizeString(errorMsg)}`;
2701
+ } else {
2702
+ return '视频仍在生成中,请稍后使用"查询视频"指令获取结果';
2703
+ }
2704
+ } catch (error) {
2705
+ logger.error("第二次查询视频状态失败", { taskId, error: sanitizeError(error) });
2706
+ return '视频生成中,请稍后使用"查询视频"指令获取结果';
2707
+ }
2630
2708
  } catch (error) {
2631
2709
  logger.error("视频风格转换任务提交失败", { userId, style: style.commandName, error: sanitizeError(error) });
2632
2710
  if (createdTaskId) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "koishi-plugin-aka-ai-generator",
3
3
  "description": "自用AI生成插件(GPTGod & Yunwu)",
4
- "version": "0.7.8",
4
+ "version": "0.7.10",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
7
7
  "files": [