From 577a4dab02ebb864598d2153e88f04660682338e Mon Sep 17 00:00:00 2001 From: Default Date: Sat, 3 May 2025 23:54:37 +0800 Subject: [PATCH] feature --- code/app/admin/config/router.php | 1 + code/app/admin/controller/Video.php | 36 ++- code/app/api/config/router.php | 20 +- code/app/api/controller/Statis.php | 115 +++++++++ .../view/videoDadi/test/test01/index.html | 12 +- code/app/model/VideoCategoryModel.php | 10 +- code/app/model/VideoClicksModel.php | 10 +- code/app/model/VideoModel.php | 35 ++- code/app/services/StaticConfig.php | 244 ++++++++++++++++-- code/app/services/VideoService.php | 180 ++++++++++--- code/app/task/crawler/fengchao/Scheduler.php | 3 + code/app/task/crawler/fengchao/page/Site.php | 12 + .../crawler/fengchao/page/VideoCategory.php | 147 +++++++++++ .../crawler/fengchao/page/VideoInfoPage.php | 31 ++- code/app/task/crawler/wuxian/Scheduler.php | 2 +- code/app/task/crawler/wuxian/page/Site.php | 11 + .../crawler/wuxian/page/VideoCategory.php | 155 +++++++++++ .../crawler/wuxian/page/VideoInfoPage.php | 35 ++- code/app/task/crawler/youzhi/Scheduler.php | 9 +- code/app/task/crawler/youzhi/page/Site.php | 13 +- .../crawler/youzhi/page/VideoCategory.php | 214 +++++++++++++++ .../crawler/youzhi/page/VideoInfoPage.php | 33 ++- code/database/mongo/migrations/video.php | 25 +- .../mongo/migrations/video_clicks.php | 8 + code/extend/template/taglib/Video.php | 69 +++-- doc/TemplateTag.md | 22 +- 26 files changed, 1320 insertions(+), 132 deletions(-) create mode 100644 code/app/task/crawler/fengchao/page/VideoCategory.php create mode 100644 code/app/task/crawler/wuxian/page/VideoCategory.php create mode 100644 code/app/task/crawler/youzhi/page/VideoCategory.php diff --git a/code/app/admin/config/router.php b/code/app/admin/config/router.php index 2e3116d..7f7a201 100644 --- a/code/app/admin/config/router.php +++ b/code/app/admin/config/router.php @@ -46,6 +46,7 @@ Route::group("/novel", function () { Route::group("/video", function () { Route::get("/list", [Video::class, "getVideoList"])->name("Domain@getVideoList"); Route::post("/level/set", [Video::class, "updateVideoLevel"])->name("Video@updateVideoLevel"); + Route::post("/boxoffice/set", [Video::class, "updateBoxOffice"])->name("Video@updateBoxOffice"); Route::get("/category/list", [Video::class, "getCategory"])->name("Video@getCategory"); })->middleware(AdminAuth::class); diff --git a/code/app/admin/controller/Video.php b/code/app/admin/controller/Video.php index 216d41d..5b2833f 100644 --- a/code/app/admin/controller/Video.php +++ b/code/app/admin/controller/Video.php @@ -14,9 +14,37 @@ use think\Response; class Video extends BaseController { + /** + * 根据关键词修改视频票房 + * + * @param Request $Request + * @param AdminUserModel|null $AdminUserModel + * @return Response + */ + public function updateBoxOffice(Request $Request, ?AdminUserModel $AdminUserModel) + { + $arrData = [ + "keywords" => $Request->post('keywords'), + "v_box_office" => (float)$Request->post('v_box_office'), + ]; + + $arrRule = [ + 'keywords' => 'require', + 'v_box_office' => 'require', + ]; + + $this->validate($arrData, $arrRule); + + $arrKeywords = explode(',', $arrData['keywords']); + $arrUpdate = ['v_box_office' => $arrData['v_box_office']]; + $VideoModel = VideoModel::getInstance(); + $VideoModel->updateByKeywords($arrKeywords, $arrUpdate); + return $this->success(); + } + /** - * 根据关键词修改小说评级 + * 根据关键词修改视频评级 * * @param Request $Request * @param AdminUserModel|null $AdminUserModel @@ -37,13 +65,15 @@ class Video extends BaseController $this->validate($arrData, $arrRule); $arrKeywords = explode(',', $arrData['keywords']); + $arrUpdate = ['v_level' => $arrData['v_level']]; + $VideoModel = VideoModel::getInstance(); - $VideoModel->updateByKeywords($arrKeywords, $arrData['v_level']); + $VideoModel->updateByKeywords($arrKeywords, $arrUpdate); return $this->success(); } /** - * 小说分页 + * 视频分页 * * @param Request $Request * @param AdminUserModel|null $AdminUserModel diff --git a/code/app/api/config/router.php b/code/app/api/config/router.php index 903017f..7c763a8 100644 --- a/code/app/api/config/router.php +++ b/code/app/api/config/router.php @@ -15,19 +15,27 @@ Route::post("/publish", [Statis::class, 'publish']) ->name('Statis@publish'); -Route::get("/search", [Novel::class, 'search']) +// Route::get("/search", [Novel::class, 'search']) +// ->middleware(\think\middleware\Throttle::class, [ +// 'visit_rate' => '1/m', +// 'key' => '__CONTROLLER__/__ACTION__/__IP__', +// ]) +// ->name('Novel@search'); + + + + +Route::post("/publishv", [Statis::class, 'publishV']) // ->middleware(\think\middleware\Throttle::class, [ // 'visit_rate' => '1/m', // 'key' => '__CONTROLLER__/__ACTION__/__IP__', // ]) - ->name('Novel@search');; + ->name('Statis@publishV'); - - -Route::get("/test", [Statis::class, 'test']) +Route::get("/test0909", [Statis::class, 'test0909']) // ->middleware(\think\middleware\Throttle::class, [ // 'visit_rate' => '1/m', // 'key' => '__CONTROLLER__/__ACTION__/__IP__', // ]) - ->name('Statis@test'); + ->name('Statis@test0909'); diff --git a/code/app/api/controller/Statis.php b/code/app/api/controller/Statis.php index 3c9ca08..a37324f 100644 --- a/code/app/api/controller/Statis.php +++ b/code/app/api/controller/Statis.php @@ -8,6 +8,7 @@ use app\api\BaseController; use app\model\CategoryModel; use app\model\NovelClicksModel; use app\model\NovelModel; +use app\model\VideoClicksModel; use DateTime; use db\mongo\MongoBase; use ddl\DDLManage; @@ -41,4 +42,118 @@ class Statis extends BaseController return Response::create()->code(204); } + + /** + * novel statis + * + * @param Request $Request + * @return Response + */ + public function publishV(Request $Request): Response + { + $intNId = $Request->post('v_id/d'); + + if ($intNId <= 0) { + return Response::create('非法请求!')->code(400); + } + + $NovelClicksModel = VideoClicksModel::getInstance(); + + try { + $NovelClicksModel->addStatis($intNId); + } catch (\Exception $e) { + // throw $e; + } + + return Response::create()->code(204); + } + + public function test0909() + { + $a = [ + 'Hindi', + 'Malay', + 'Swahili', + 'Tamil', + '上海', + '丹麦语', + '乌克兰', + '乌尔都语', + '他加', + '俄语', + '其它', + '匈牙利语', + '北印度语', + '印地语', + '印地语Hindi', + '印尼语', + '印度尼西亚语', + '印度语', + '印度语Hindi', + '因纽特语', + '国语', + '土库曼语', + '土耳', + '土耳其语', + '基库尤语', + '希腊', + '希腊语', + '库尔德语', + '德语', + '意大', + '意大利', + '意大利语', + '挪威语', + '捷克语', + '日语', + '普通话', + '林加拉语', + '毛利语', + '汉语', + '汉语普通', + '汉语普通话', + '汉语普通话Manda', + '河南方言', + '法语', + '波兰语', + '波斯语', + '泰卢固语', + '泰米尔', + '泰米尔语', + '泰米尔语Tamil', + '泰语', + '澳大利亚语', + '瑞典语', + '粤语', + '美国手语', + '英语', + '英语手语', + '荷兰语', + '菲律宾语', + '葡萄', + '葡萄牙语', + '藏语', + '西班', + '西班牙语', + '越南语', + '闽南语', + '阿拉', + '阿拉伯', + '阿拉伯语', + '韩语', + '马拉雅拉姆语', + '马来西亚语', + '马来语' + + ]; + + $arrArea = []; + foreach ($a as $v) { + $arrArea[zhToPinYin($v)] = $v; + } + echo '
';
+
+        krsort($arrArea);
+        echo var_export($arrArea, true);
+    }
 }
diff --git a/code/app/home/view/videoDadi/test/test01/index.html b/code/app/home/view/videoDadi/test/test01/index.html
index 836569f..a110a8d 100644
--- a/code/app/home/view/videoDadi/test/test01/index.html
+++ b/code/app/home/view/videoDadi/test/test01/index.html
@@ -1,23 +1,23 @@
 
 
 
-{video:ranklist count="10" sort_type="total" n_status="wanjie" d_key="d_key" d_val="video" cache_life="1000"}
+
 
     
-
+
 
 
 
-