diff --git a/app/Http/Controllers/Api/Nasa/V1/FnPoolController.php b/app/Http/Controllers/Api/Nasa/V1/FnPoolController.php
new file mode 100755
index 00000000..1847eaea
--- /dev/null
+++ b/app/Http/Controllers/Api/Nasa/V1/FnPoolController.php
@@ -0,0 +1,75 @@
+ 'id',
+ 'code' => 'code',
+ 'content' => 'content'
+ ];
+
+ protected array $aValueStyle = [ // 特定文字渲染样式
+// '关闭' => "关闭",
+// '开启' => "开启"
+ ];
+
+ protected array $aFieldTypes = [
+// 'url_file' => 'json',
+// 'file_real' => 'json',
+ ];
+
+ 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/MasterFnPoolController.php b/app/Http/Controllers/Web/Nasa/V1/MasterFnPoolController.php
new file mode 100644
index 00000000..2924ae47
--- /dev/null
+++ b/app/Http/Controllers/Web/Nasa/V1/MasterFnPoolController.php
@@ -0,0 +1,26 @@
+sSiteWww = config("path.url_master_base") ?? '';
+ }
+
+}
diff --git a/app/Services/Cron.php b/app/Services/Cron.php
index d4f1a3cd..0cf99a5a 100755
--- a/app/Services/Cron.php
+++ b/app/Services/Cron.php
@@ -62,7 +62,7 @@ final class Cron
if ($h % 3 === 0 && $i === 3) {
CronFreenodeSync::nodehub(); // fn分到到nodehub
CronFreenodeSync::run(); // fn分发到各到各站,旧版
- NasaTestFnSubfile::run_b();
+ NasaTestFnSubfile::run_b(); // nasa测试订阅文件
}
if ($h == 11 && $i == 3) {
diff --git a/routes/api.php b/routes/api.php
index 4dc47aba..61e84967 100644
--- a/routes/api.php
+++ b/routes/api.php
@@ -5,6 +5,7 @@ use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Api\Nasa\V1\SettingNavController as NasaV1SettingNavController;
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\BladeBaseController as NasaV1BladeBaseController;
use App\Http\Controllers\Api\Nasa\V1\ArticleBaseController as NasaV1ArticleBaseController;
use App\Http\Controllers\Api\Nasa\V1\ArticleCacheController as NasaV1ArticleCacheController;
@@ -39,7 +40,19 @@ Route::prefix('nasa/v1')->middleware('nasa.auth')->group(function () {
Route::put('clone/save', [NasaV1TestsFnSubfileController::class, 'cloneSave']);
Route::get('hit/{id}/{field}', [NasaV1TestsFnSubfileController::class, 'hit']);
});
-
+
+ Route::prefix('fn/pool')->group(function() {
+ Route::get('', [NasaV1FnPoolController::class, 'index']);
+ Route::get('detail/{id}', [NasaV1FnPoolController::class, 'detail']);
+ Route::put('detail/save/{id}', [NasaV1FnPoolController::class, 'detailSave']);
+ Route::delete('delete/{id}', [NasaV1FnPoolController::class, 'delete']);
+ Route::get('add', [NasaV1FnPoolController::class, 'add']);
+ Route::put('add/save', [NasaV1FnPoolController::class, 'addSave']);
+ Route::get('clone/{id}', [NasaV1FnPoolController::class, 'clone']);
+ Route::put('clone/save', [NasaV1FnPoolController::class, 'cloneSave']);
+ Route::get('hit/{id}/{field}', [NasaV1FnPoolController::class, 'hit']);
+ });
+
Route::prefix('fn/craw')->group(function() {
Route::get('', [NasaV1FnCrawController::class, 'index']);
Route::get('detail/{id}', [NasaV1FnCrawController::class, 'detail']);
diff --git a/routes/web.php b/routes/web.php
index 3f39f17b..655f6d6b 100755
--- a/routes/web.php
+++ b/routes/web.php
@@ -29,6 +29,7 @@ use App\Http\Controllers\Web\Nasa\V1\Base\ListController as NasaListController;
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\FuNodeBaseController as NasaFuNodeBaseController;
use App\Http\Controllers\Web\Nasa\V1\FuNodeActionController as NasaFuNodeActionController;
use App\Http\Controllers\Web\Nasa\V1\FuEnvConfigController as NasaFuEnvConfigController;
@@ -89,6 +90,7 @@ Route::prefix('nasa')->middleware(['auth'])->group(function () {
Route::get('/master/sitemap/base', [NasaMasterSitemapBaseController::class, 'index'])->name('nasa.master.sitemap.base');
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('/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');