AnimeController.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. <?php
  2. namespace App\Http\Controllers\Anime;
  3. use App\Transformer\Anime\AnimeTransformer;
  4. use App\Facade\Site;
  5. use App\Consts\ErrorConst;
  6. use App\Exceptions\ApiException;
  7. use App\Libs\ApiResponse;
  8. use App\Libs\Utils;
  9. use App\Services\AIGeneration\AIImageGenerationService;
  10. use App\Services\AIGeneration\AIVideoGenerationService;
  11. use App\Services\Anime\AnimeService;
  12. use Illuminate\Http\Request;
  13. use Illuminate\Routing\Controller as BaseController;
  14. use Illuminate\Support\Facades\DB;
  15. use Illuminate\Support\Facades\Redis;
  16. use Illuminate\Support\Facades\Validator;
  17. class AnimeController extends BaseController
  18. {
  19. use ApiResponse;
  20. protected $AnimeService;
  21. protected $AIImageGenerationService;
  22. protected $AIVideoGenerationService;
  23. public function __construct(
  24. AnimeService $AnimeService,
  25. AIImageGenerationService $AIImageGenerationService,
  26. AIVideoGenerationService $AIVideoGenerationService
  27. ) {
  28. $this->AnimeService = $AnimeService;
  29. $this->AIImageGenerationService = $AIImageGenerationService;
  30. $this->AIVideoGenerationService = $AIVideoGenerationService;
  31. }
  32. // 批量生成主体图片
  33. public function batchSetRoleImg(Request $request) {
  34. // 忽略所有超时限制
  35. set_time_limit(0);
  36. ini_set('max_execution_time', '0');
  37. $data = $request->all();
  38. $result = $this->AnimeService->batchSetRoleImg($data);
  39. return $this->success($result);
  40. }
  41. // 批量生成场景图片
  42. public function batchSetSceneImg(Request $request) {
  43. // 忽略所有超时限制
  44. set_time_limit(0);
  45. ini_set('max_execution_time', '0');
  46. $data = $request->all();
  47. $result = $this->AnimeService->batchSetSceneImg($data);
  48. return $this->success($result);
  49. }
  50. // 编辑动漫
  51. public function editAnime(Request $request) {
  52. $data = $request->all();
  53. $result = $this->AnimeService->editAnime($data);
  54. return $this->success(['success'=>$result ? 1 : 0]);
  55. }
  56. // 动漫对话列表
  57. public function chatList(Request $request) {
  58. $data = $request->all();
  59. $result = $this->AnimeService->chatList($data);
  60. return $this->success($result, [new AnimeTransformer(), 'newBuildChatList']);
  61. }
  62. // 动漫对话历史记录
  63. public function chatHistory(Request $request) {
  64. $data = $request->all();
  65. $result = $this->AnimeService->chatHistory($data);
  66. return $this->success($result);
  67. }
  68. // 动漫大纲
  69. public function animeDetail(Request $request) {
  70. $data = $request->all();
  71. $result = $this->AnimeService->animeDetail($data);
  72. return $this->success($result);
  73. }
  74. // 动漫剧集
  75. public function episodeInfo(Request $request) {
  76. $data = $request->all();
  77. $result = $this->AnimeService->episodeInfo($data);
  78. return $this->success($result);
  79. }
  80. // 复制剧集副本
  81. public function copyEpisodeVersion(Request $request) {
  82. $data = $request->all();
  83. $result = $this->AnimeService->copyEpisodeVersion($data);
  84. return $this->success(['success' => $result ? 1 : 0]);
  85. }
  86. // 剧集副本列表
  87. public function episodeVersions(Request $request) {
  88. $data = $request->all();
  89. $result = $this->AnimeService->episodeVersions($data);
  90. return $this->success($result);
  91. }
  92. // 绑定剧集副本
  93. public function bindEpisodeVersion(Request $request) {
  94. $data = $request->all();
  95. $result = $this->AnimeService->bindEpisodeVersion($data);
  96. return $this->success(['success' => $result ? 1 : 0]);
  97. }
  98. // 对话改图
  99. public function chatChangeImg(Request $request) {
  100. $data = $request->all();
  101. $result = $this->AnimeService->chatChangeImg($data);
  102. return $this->success(['img_url' => $result]);
  103. }
  104. // 一键生成分镜
  105. public function batchSetSegmentTasks(Request $request) {
  106. // 忽略所有超时限制
  107. set_time_limit(0);
  108. ini_set('max_execution_time', '0');
  109. $data = $request->all();
  110. $result = $this->AnimeService->batchSetSegmentTasks($data);
  111. return $this->success($result);
  112. }
  113. // public function scriptList(Request $request) {
  114. // $data = $request->all();
  115. // $result = $this->AnimeService->scriptList($data);
  116. // return $this->success($result, [new AnimeTransformer(), 'newBuildScriptList']);
  117. // }
  118. }