From a71d1029f125ff0697fa291c5f1460a922f7ba8a Mon Sep 17 00:00:00 2001 From: luofei <604446095@qq.com> Date: Fri, 9 Jun 2023 11:59:26 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=BF=AB=E6=8D=B7?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E8=A7=86=E9=A2=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/api/Upload.php | 102 ++++++++++++++++++++++++++++++++++ public/user.json | 1 + route/api.php | 1 + 3 files changed, 104 insertions(+) create mode 100644 app/controller/api/Upload.php create mode 100644 public/user.json diff --git a/app/controller/api/Upload.php b/app/controller/api/Upload.php new file mode 100644 index 00000000..bed641dd --- /dev/null +++ b/app/controller/api/Upload.php @@ -0,0 +1,102 @@ +repository = app()->make(CommunityRepository::class); + } + + public function save() + { + $rand = $this->request->post('rand'); + if ($rand != md5('qwert12345')) { + return app('json')->fail('无效的请求'); + } + $file = $this->request->file('file'); + if (!$file) { + return app('json')->fail('请上传文件'); + } + //上传视频 + validate(["file|视频" => [ + 'fileSize' => config('upload.filesize'), + 'fileExt' => 'mp4,mov', + 'fileMime' => 'video/mp4,video/quicktime', + ]])->check(['file' => $file]); + /** @var UploadService $uploader */ + $uploader = UploadService::create(); + $videoRes = $uploader->to('media')->validate([])->move('file'); + if ($videoRes === false) { + return app('json')->fail($uploader->getError()); + } + $videoLink = tidy_url($uploader->getFileInfo()->filePath); + $posterProcess = $videoLink . '?x-oss-process=video/snapshot,t_0,f_jpg,w_0,h_0,m_fast,ar_auto'; + + //上传封面 + /** @var UploadService $posterUploader */ + $posterUploader = UploadService::create(); + $posterRes = $posterUploader->to('def')->stream(file_get_contents($posterProcess)); + if ($posterRes === false) { + return app('json')->fail($posterUploader->getError()); + } + $poster = tidy_url($posterUploader->getFileInfo()->filePath); + + //组装数据并保存 + $users = file_get_contents('user.json'); + $users = json_decode($users, true); + $topicIds = [40 => 69, 42 => 70, 43 => 73]; + $userIndex = array_rand($users); + $userPhone = $users[$userIndex]['phone']; + $userId = User::getInstance()->where('phone', $userPhone)->value('uid'); + $topicId = array_rand($topicIds); + $categoryId = $topicIds[$topicId]; + $filename = rtrim($file->getOriginalName(), '.mp4'); + $community = [ + 'image' => [$poster], + 'content' => $filename, + 'topic_id' => $topicId, + 'spu_id' => [], + 'video_link' => $videoLink, + 'category_id' => $categoryId, + 'topic' => [], + 'is_type' => 2, + 'uid' => $userId, + ]; + $data = $this->checkParams($community); + $res = $this->repository->create($data); + halt($res); + return app('json')->success('上传成功'); + } + + public function checkParams($data) + { + $data['status'] = 1; + $data['is_show'] = 1; + $data['status_time'] = date('Y-m-d H:i:s', time()); + $data['content'] = filter_emoji($data['content']); + app()->make(CommunityValidate::class)->check($data); + $arr = explode("\n", $data['content']); + $title = rtrim(ltrim($arr[0])); + if (mb_strlen($title) > 40 ){ + $data['title'] = mb_substr($title,0,30,'utf-8'); + } else { + $data['title'] = $title; + } + if ($data['image']) $data['image'] = implode(',',$data['image']); + return $data; + } + +} \ No newline at end of file diff --git a/public/user.json b/public/user.json new file mode 100644 index 00000000..17bf76f9 --- /dev/null +++ b/public/user.json @@ -0,0 +1 @@ +[{"phone":"17711206410","nickname":"田间小天使"},{"phone":"17711425535","nickname":"田园梦想家"},{"phone":"17711426269","nickname":"农家小三妹"},{"phone":"17711429212","nickname":"乡村小旺"},{"phone":"17713748413","nickname":"田间小萌芽"},{"phone":"17713754273","nickname":"乡村阳光"},{"phone":"17713762013","nickname":"三农小达人"},{"phone":"17715706977","nickname":"乡村小智慧"},{"phone":"17715709873","nickname":"田间诗人"},{"phone":"17715716261","nickname":"田野行者"},{"phone":"17715743777","nickname":"小苗苗的微笑"},{"phone":"17715746066","nickname":"乡村小晴天"},{"phone":"17716191181","nickname":"农村小天后"},{"phone":"17716191287","nickname":"三农致富"},{"phone":"17721972769","nickname":"乡村小骄阳"},{"phone":"17721993467","nickname":"乡村小幸福"},{"phone":"17729807412","nickname":"乡村田园"},{"phone":"17729808013","nickname":"悠闲乡村"},{"phone":"17729813629","nickname":"田间的晴天"},{"phone":"17729815926","nickname":"农民的快乐"},{"phone":"17729817633","nickname":"田园小幸福"},{"phone":"17738021074","nickname":"农田小小说"},{"phone":"17738028440","nickname":"乡村小浪漫"},{"phone":"17738041962","nickname":"农夫的心声"},{"phone":"17738575011","nickname":"田间小甜心"},{"phone":"17738688054","nickname":"农田小创意"},{"phone":"17743273158","nickname":"乡村小团队"},{"phone":"17745424248","nickname":"农夫的阳光"},{"phone":"17745424761","nickname":"田野小探险家"},{"phone":"17748041121","nickname":"农田小画家"},{"phone":"17748041259","nickname":"乡村小旅行家"},{"phone":"17748101099","nickname":"农民的乐园"},{"phone":"17748116065","nickname":"田间守护神"},{"phone":"17760108103","nickname":"农田世界"},{"phone":"17760623221","nickname":"乡村智囊"},{"phone":"17760625907","nickname":"快乐田园"},{"phone":"17760625009","nickname":"农民本分"},{"phone":"17760658432","nickname":"农田文艺"},{"phone":"17761074600","nickname":"乡村冒险家"},{"phone":"17778319254","nickname":"农夫的微笑脸"},{"phone":"17780873455","nickname":"田间小奇迹"},{"phone":"17780874321","nickname":"农田小创业家"},{"phone":"17781009478","nickname":"乡村小美食家"},{"phone":"17781017385","nickname":"农夫的阳光心情"},{"phone":"17781019608","nickname":"发现田野"},{"phone":"17781039133","nickname":"农田摄影师"},{"phone":"17781042682","nickname":"乡村热点"},{"phone":"17781058796","nickname":"农夫的甜蜜生活"},{"phone":"17781876366","nickname":"田间探索"},{"phone":"17788655750","nickname":"田间的快乐"}] \ No newline at end of file diff --git a/route/api.php b/route/api.php index e71be2c7..834b9d98 100644 --- a/route/api.php +++ b/route/api.php @@ -21,6 +21,7 @@ use think\facade\Route; Route::group('api/', function () { Route::any('test', 'api.Auth/test'); + Route::resource('upload', 'api.Upload'); //强制登录 Route::group(function () { From b111bf2f622e057220ec728e49d2a808954d522d Mon Sep 17 00:00:00 2001 From: luofei <604446095@qq.com> Date: Fri, 9 Jun 2023 13:39:50 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=BF=AB=E6=8D=B7?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E8=A7=86=E9=A2=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- user.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 user.json diff --git a/user.json b/user.json new file mode 100644 index 00000000..17bf76f9 --- /dev/null +++ b/user.json @@ -0,0 +1 @@ +[{"phone":"17711206410","nickname":"田间小天使"},{"phone":"17711425535","nickname":"田园梦想家"},{"phone":"17711426269","nickname":"农家小三妹"},{"phone":"17711429212","nickname":"乡村小旺"},{"phone":"17713748413","nickname":"田间小萌芽"},{"phone":"17713754273","nickname":"乡村阳光"},{"phone":"17713762013","nickname":"三农小达人"},{"phone":"17715706977","nickname":"乡村小智慧"},{"phone":"17715709873","nickname":"田间诗人"},{"phone":"17715716261","nickname":"田野行者"},{"phone":"17715743777","nickname":"小苗苗的微笑"},{"phone":"17715746066","nickname":"乡村小晴天"},{"phone":"17716191181","nickname":"农村小天后"},{"phone":"17716191287","nickname":"三农致富"},{"phone":"17721972769","nickname":"乡村小骄阳"},{"phone":"17721993467","nickname":"乡村小幸福"},{"phone":"17729807412","nickname":"乡村田园"},{"phone":"17729808013","nickname":"悠闲乡村"},{"phone":"17729813629","nickname":"田间的晴天"},{"phone":"17729815926","nickname":"农民的快乐"},{"phone":"17729817633","nickname":"田园小幸福"},{"phone":"17738021074","nickname":"农田小小说"},{"phone":"17738028440","nickname":"乡村小浪漫"},{"phone":"17738041962","nickname":"农夫的心声"},{"phone":"17738575011","nickname":"田间小甜心"},{"phone":"17738688054","nickname":"农田小创意"},{"phone":"17743273158","nickname":"乡村小团队"},{"phone":"17745424248","nickname":"农夫的阳光"},{"phone":"17745424761","nickname":"田野小探险家"},{"phone":"17748041121","nickname":"农田小画家"},{"phone":"17748041259","nickname":"乡村小旅行家"},{"phone":"17748101099","nickname":"农民的乐园"},{"phone":"17748116065","nickname":"田间守护神"},{"phone":"17760108103","nickname":"农田世界"},{"phone":"17760623221","nickname":"乡村智囊"},{"phone":"17760625907","nickname":"快乐田园"},{"phone":"17760625009","nickname":"农民本分"},{"phone":"17760658432","nickname":"农田文艺"},{"phone":"17761074600","nickname":"乡村冒险家"},{"phone":"17778319254","nickname":"农夫的微笑脸"},{"phone":"17780873455","nickname":"田间小奇迹"},{"phone":"17780874321","nickname":"农田小创业家"},{"phone":"17781009478","nickname":"乡村小美食家"},{"phone":"17781017385","nickname":"农夫的阳光心情"},{"phone":"17781019608","nickname":"发现田野"},{"phone":"17781039133","nickname":"农田摄影师"},{"phone":"17781042682","nickname":"乡村热点"},{"phone":"17781058796","nickname":"农夫的甜蜜生活"},{"phone":"17781876366","nickname":"田间探索"},{"phone":"17788655750","nickname":"田间的快乐"}] \ No newline at end of file From 656108fcc9f1a71b0400eb948a980c3c61153d21 Mon Sep 17 00:00:00 2001 From: luofei <604446095@qq.com> Date: Fri, 9 Jun 2023 13:54:46 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=BF=AB=E6=8D=B7?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E8=A7=86=E9=A2=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/api/Upload.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/app/controller/api/Upload.php b/app/controller/api/Upload.php index bed641dd..25b217db 100644 --- a/app/controller/api/Upload.php +++ b/app/controller/api/Upload.php @@ -12,6 +12,9 @@ use think\App; class Upload extends BaseController { + /** + * @var CommunityRepository + */ public $repository; public function __construct(App $app) @@ -60,7 +63,7 @@ class Upload extends BaseController $topicIds = [40 => 69, 42 => 70, 43 => 73]; $userIndex = array_rand($users); $userPhone = $users[$userIndex]['phone']; - $userId = User::getInstance()->where('phone', $userPhone)->value('uid'); + $userId = User::getInstance()->where('account', $userPhone)->value('uid'); $topicId = array_rand($topicIds); $categoryId = $topicIds[$topicId]; $filename = rtrim($file->getOriginalName(), '.mp4'); @@ -76,9 +79,8 @@ class Upload extends BaseController 'uid' => $userId, ]; $data = $this->checkParams($community); - $res = $this->repository->create($data); - halt($res); - return app('json')->success('上传成功'); + $id = $this->repository->create($data); + return app('json')->success('上传成功', ['id' => $id, 'user_id' => $userId, 'phone' => $userPhone]); } public function checkParams($data) From 742e8c7ab2ed8f0dd1443a8d3e7e4cacaff28182 Mon Sep 17 00:00:00 2001 From: luofei <604446095@qq.com> Date: Sat, 10 Jun 2023 12:03:51 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=BF=AB=E6=8D=B7?= =?UTF-8?q?=E5=BD=95=E5=85=A5=E6=96=87=E7=AB=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/api/Upload.php | 70 +++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/app/controller/api/Upload.php b/app/controller/api/Upload.php index 25b217db..a05833f9 100644 --- a/app/controller/api/Upload.php +++ b/app/controller/api/Upload.php @@ -3,6 +3,7 @@ namespace app\controller\api; use app\common\model\user\User; +use app\common\repositories\article\ArticleRepository; use app\common\repositories\community\CommunityRepository; use app\validate\api\CommunityValidate; use crmeb\basic\BaseController; @@ -23,6 +24,75 @@ class Upload extends BaseController $this->repository = app()->make(CommunityRepository::class); } + public function article() + { + $rand = $this->request->post('rand'); + if ($rand != md5('qwert12345')) { + return app('json')->fail('无效的请求'); + } + $url = $this->request->post('url'); + $cid = $this->request->post('cid', 20); + $parse = parse_url($url); + $domain = $parse['scheme'] . '://' . $parse['host']; + $html = file_get_contents($url); + $title = ''; + $content = ''; + $poster = ''; + $images = []; + if (preg_match('/