FastMovieAI AI短剧创作平台 二开基线

- 源码: xhadmincn/FastMovieAI (Apache 2.0)
- 二开: Docker部署, Swoole改Select, route.php修复, 补update/VERSION
- vendor/示例资源已gitignore
This commit is contained in:
李建琦
2026-08-26 18:37:36 +08:00
commit eae151fd57
888 changed files with 105571 additions and 0 deletions
@@ -0,0 +1,94 @@
<?php
namespace app\expose\utils\wechat\modules;
trait Reply
{
private function replyText($data,$content)
{
$result=[
'ToUserName' => "<![CDATA[{$data['FromUserName']}]]>",
'FromUserName' => "<![CDATA[{$data['ToUserName']}]]>",
'CreateTime' => time(),
'MsgType' => '<![CDATA[text]]>',
'Content' => "<![CDATA[{$content}]]>"
];
return xml(arrayToXml($result));
}
private function replyImage($data,$media_id)
{
$result=[
'ToUserName' => "<![CDATA[{$data['FromUserName']}]]>",
'FromUserName' => "<![CDATA[{$data['ToUserName']}]]>",
'CreateTime' => time(),
'MsgType' => '<![CDATA[image]]>',
'Image' => [
'MediaId' => "<![CDATA[{$media_id}]]>"
]
];
return xml(arrayToXml($result));
}
private function replyVoice($data,$media_id)
{
$result=[
'ToUserName' => "<![CDATA[{$data['FromUserName']}]]>",
'FromUserName' => "<![CDATA[{$data['ToUserName']}]]>",
'CreateTime' => time(),
'MsgType' => '<![CDATA[voice]]>',
'Voice' => [
'MediaId' => "<![CDATA[{$media_id}]]>"
]
];
return xml(arrayToXml($result));
}
private function replyVideo($data,$media_id,$title='',$description='')
{
$result=[
'ToUserName' => "<![CDATA[{$data['FromUserName']}]]>",
'FromUserName' => "<![CDATA[{$data['ToUserName']}]]>",
'CreateTime' => time(),
'MsgType' => '<![CDATA[video]]>',
'Video' => [
'MediaId' => "<![CDATA[{$media_id}]]>",
'Title' => "<![CDATA[{$title}]]>",
'Description' => "<![CDATA[{$description}]]>"
]
];
return xml(arrayToXml($result));
}
private function replyMusic($data,$thumb_media_id,$title='',$description='',$music_url='',$hq_music_url='')
{
$result=[
'ToUserName' => "<![CDATA[{$data['FromUserName']}]]>",
'FromUserName' => "<![CDATA[{$data['ToUserName']}]]>",
'CreateTime' => time(),
'MsgType' => '<![CDATA[music]]>',
'Music' => [
'Title' => "<![CDATA[{$title}]]>",
'Description' => "<![CDATA[{$description}]]>",
'MusicUrl' => "<![CDATA[{$music_url}]]>",
'HQMusicUrl' => "<![CDATA[{$hq_music_url}]]>",
'ThumbMediaId' => "<![CDATA[{$thumb_media_id}]]>"
]
];
return xml(arrayToXml($result));
}
private function replyNews($data,$articles)
{
$result=[
'ToUserName' => "<![CDATA[{$data['FromUserName']}]]>",
'FromUserName' => "<![CDATA[{$data['ToUserName']}]]>",
'CreateTime' => time(),
'MsgType' => '<![CDATA[news]]>',
'ArticleCount' => count($articles),
'Articles' => []
];
foreach ($articles as $article) {
$result['Articles'][]=[
'Title' => "<![CDATA[{$article['title']}]]>",
'Description' => "<![CDATA[{$article['description']}]]>",
'PicUrl' => "<![CDATA[{$article['picurl']}]]>",
'Url' => "<![CDATA[{$article['url']}]]>"
];
}
return xml(arrayToXml($result));
}
}