From 79090b5f52bdc9889298b1b49669e5a00ca8e4f2 Mon Sep 17 00:00:00 2001 From: hellcat Date: Wed, 29 Jul 2026 15:08:44 +0800 Subject: [PATCH] no message --- .../Api/Nasa/V1/FnTemplateController.php | 82 +++++++++++++++++++ .../Nasa/V1/MasterFnTemplateController.php | 26 ++++++ app/Services/Cron.php | 2 +- routes/api.php | 13 +++ routes/web.php | 2 + 5 files changed, 124 insertions(+), 1 deletion(-) create mode 100755 app/Http/Controllers/Api/Nasa/V1/FnTemplateController.php create mode 100644 app/Http/Controllers/Web/Nasa/V1/MasterFnTemplateController.php diff --git a/app/Http/Controllers/Api/Nasa/V1/FnTemplateController.php b/app/Http/Controllers/Api/Nasa/V1/FnTemplateController.php new file mode 100755 index 00000000..c8480cb8 --- /dev/null +++ b/app/Http/Controllers/Api/Nasa/V1/FnTemplateController.php @@ -0,0 +1,82 @@ + 'id', + 'group_code' => 'group_code', + 'title' => 'title', + 'title_sub' => 'title_sub', + 'content' => 'content', + 'stauts' => 'stauts', + 'created_at' => 'created_at', + 'updated_at' => 'updated_at' + ]; + + protected array $aValueStyle = [ // 特定文字渲染样式 +// '关闭' => "关闭", +// '开启' => "开启" + ]; + + protected array $aFieldTypes = [ + 'content' => 'text', +// 'content_custom' => 'text', +// 'content_v2ray' => 'content_v2ray', +// 'content_clash' => 'content_clash' + ]; + + protected array $aOrderBy = [ +// [ +// "sField" => "status", +// "sSort" => "desc", +// ], + [ + "sField" => "id", + "sSort" => "desc", + ] + ]; + + protected array $aJsonFields = [ // json字段 + + ]; + + protected array $aDateFields = [ // date字段 +// 'dtUpdatedAt' + ]; + + protected array $aLenthFields = [ // 限制长度的字段 +// "xx" => 100, + ]; + + protected array $aSelectFields = [ // 作为默认select的字段 +// 'status', + ]; + + protected array $aValueFields = [ // 值映射 +// 'status' => [ +// '1' => '开启', +// '0' => '关闭', +// ] + ]; + + protected array $aCcExtFields = [ +// 'dtCreatedAt' => '创建时间' + ]; + +// protected array $aLimit = [3, 15, 40, 100]; // list长度,第一个为默认 + +} diff --git a/app/Http/Controllers/Web/Nasa/V1/MasterFnTemplateController.php b/app/Http/Controllers/Web/Nasa/V1/MasterFnTemplateController.php new file mode 100644 index 00000000..e35c968b --- /dev/null +++ b/app/Http/Controllers/Web/Nasa/V1/MasterFnTemplateController.php @@ -0,0 +1,26 @@ +sSiteWww = config("path.url_master_base") ?? ''; + } + +} diff --git a/app/Services/Cron.php b/app/Services/Cron.php index 0cf99a5a..a0b55c7d 100755 --- a/app/Services/Cron.php +++ b/app/Services/Cron.php @@ -61,7 +61,7 @@ final class Cron if ($h % 3 === 0 && $i === 3) { CronFreenodeSync::nodehub(); // fn分到到nodehub - CronFreenodeSync::run(); // fn分发到各到各站,旧版 + CronFreenodeSync::run(); // fn分发到各到各站,旧版!! NasaTestFnSubfile::run_b(); // nasa测试订阅文件 } diff --git a/routes/api.php b/routes/api.php index 61e84967..b2de89f4 100644 --- a/routes/api.php +++ b/routes/api.php @@ -6,6 +6,7 @@ use App\Http\Controllers\Api\Nasa\V1\SettingNavController as NasaV1SettingNavCon use App\Http\Controllers\Api\Nasa\V1\TestsFnSubfileController as NasaV1TestsFnSubfileController; use App\Http\Controllers\Api\Nasa\V1\FnCrawController as NasaV1FnCrawController; use App\Http\Controllers\Api\Nasa\V1\FnPoolController as NasaV1FnPoolController; +use App\Http\Controllers\Api\Nasa\V1\FnTemplateController as NasaV1FnTemplateController; use App\Http\Controllers\Api\Nasa\V1\BladeBaseController as NasaV1BladeBaseController; use App\Http\Controllers\Api\Nasa\V1\ArticleBaseController as NasaV1ArticleBaseController; use App\Http\Controllers\Api\Nasa\V1\ArticleCacheController as NasaV1ArticleCacheController; @@ -52,6 +53,18 @@ Route::prefix('nasa/v1')->middleware('nasa.auth')->group(function () { Route::put('clone/save', [NasaV1FnPoolController::class, 'cloneSave']); Route::get('hit/{id}/{field}', [NasaV1FnPoolController::class, 'hit']); }); + + Route::prefix('fn/template')->group(function() { + Route::get('', [NasaV1FnTemplateController::class, 'index']); + Route::get('detail/{id}', [NasaV1FnTemplateController::class, 'detail']); + Route::put('detail/save/{id}', [NasaV1FnTemplateController::class, 'detailSave']); + Route::delete('delete/{id}', [NasaV1FnTemplateController::class, 'delete']); + Route::get('add', [NasaV1FnTemplateController::class, 'add']); + Route::put('add/save', [NasaV1FnTemplateController::class, 'addSave']); + Route::get('clone/{id}', [NasaV1FnTemplateController::class, 'clone']); + Route::put('clone/save', [NasaV1FnTemplateController::class, 'cloneSave']); + Route::get('hit/{id}/{field}', [NasaV1FnTemplateController::class, 'hit']); + }); Route::prefix('fn/craw')->group(function() { Route::get('', [NasaV1FnCrawController::class, 'index']); diff --git a/routes/web.php b/routes/web.php index 655f6d6b..76b64d14 100755 --- a/routes/web.php +++ b/routes/web.php @@ -30,6 +30,7 @@ use App\Http\Controllers\Web\Nasa\V1\AuthController; use App\Http\Controllers\Web\Nasa\V1\MasterPanelNavController as NasaMasterPanelNavController; use App\Http\Controllers\Web\Nasa\V1\MasterFnCrawController as NasaMasterFnCrawController; use App\Http\Controllers\Web\Nasa\V1\MasterFnPoolController as NasaMasterFnPoolController; +use App\Http\Controllers\Web\Nasa\V1\MasterFnTemplateController as NasaMasterFnTemplateController; use App\Http\Controllers\Web\Nasa\V1\FuNodeBaseController as NasaFuNodeBaseController; use App\Http\Controllers\Web\Nasa\V1\FuNodeActionController as NasaFuNodeActionController; use App\Http\Controllers\Web\Nasa\V1\FuEnvConfigController as NasaFuEnvConfigController; @@ -91,6 +92,7 @@ Route::prefix('nasa')->middleware(['auth'])->group(function () { Route::get('/master/cachetg/base', [NasaMasterCachetgBaseController::class, 'index'])->name('nasa.master.cachetg.base'); Route::get('/master/telegram/keys', [NasaMasterTelegramKeysController::class, 'index'])->name('nasa.master.telegram.keys'); Route::get('/master/fn/pool', [NasaMasterFnPoolController::class, 'index'])->name('nasa.master.fn.pool'); + Route::get('/master/fn/template', [NasaMasterFnTemplateController::class, 'index'])->name('nasa.master.fn.template'); Route::get('/resource/article/base', [NasaResourceArticleBaseController::class, 'index'])->name('nasa.resource.article.base'); Route::get('/resource/uploadimages/base', [NasaResourceUploadimagesBaseController::class, 'index'])->name('nasa.resource.uploadimages.base'); Route::get('/fu/node/base', [NasaFuNodeBaseController::class, 'index'])->name('nasa.fu.node.base');