group(function() { Route::get('fn/looktrans/{client}/{xieyi}/{like?}', [SakaiFnController::class, 'looktrans']); // like可以空怎么表示 }); Route::get('/birds/create', [BirdController::class, 'create'])->name('birds.create'); // 录入界面 Route::get('/birds/{id}', [BirdController::class, 'show'])->name('birds.show'); // 详情展示界面 Route::post('/birds', [BirdController::class, 'store'])->name('birds.store'); Route::get('/birds', [BirdController::class, 'index'])->name('birds.index'); Route::get('/nasa/login', [AuthController::class, 'login'])->name('login'); Route::post('/nasa/auth/in', [AuthController::class, 'in']); Route::prefix('nasa')->middleware(['auth'])->group(function () { Route::get('book/{id}', [NasaBookController::class, 'find']); Route::put('book/{id}', [NasaBookController::class, 'save']); Route::get('list', [NasaListController::class, 'index']); Route::get('list/detail/{id}', [NasaListController::class, 'detail']); Route::put('list/detail/{id}', [NasaListController::class, 'detailSave']); Route::delete('list/delete/{id}', [NasaListController::class, 'delete']); Route::get('list/add', [NasaListController::class, 'add']); Route::put('list/add', [NasaListController::class, 'addSave']); Route::get('list/clone/{id}', [NasaListController::class, 'clone']); Route::put('list/clone', [NasaListController::class, 'cloneSave']); Route::get('list/hit/{id}/{field}', [NasaListController::class, 'hit']); Route::get('/', [NasaStatsDashboardTotalController::class, 'index'])->name('nasa.stats.dashboard.total'); Route::get('auth/out', [AuthController::class, 'out'])->name('logout'); Route::get('stats')->name('nasa.stats'); Route::prefix('stats')->group(function() { Route::get('dashboard/total', [NasaStatsDashboardTotalController::class, 'index'])->name('nasa.stats.dashboard.total'); }); Route::get('/master/panel/nav', [NasaMasterPanelNavController::class, 'index'])->name('nasa.master.panel.nav'); Route::get('/master/fn/craw', [NasaMasterFnCrawController::class, 'index'])->name('nasa.master.fn.craw'); Route::get('/master/blade/base', [NasaMasterBladeBaseController::class, 'index'])->name('nasa.master.blade.base'); Route::get('/master/article/base', [NasaMasterArticleBaseController::class, 'index'])->name('nasa.master.article.base'); Route::get('/master/article/cache', [NasaMasterArticleCacheController::class, 'index'])->name('nasa.master.article.cache'); Route::get('/master/article/sitemapgroup', [NasaMasterArticleSitemapgroupController::class, 'index'])->name('nasa.master.article.sitemapgroup'); Route::get('/master/article/artsync/save', [NasaActionsController::class, 'artsyncSave']); Route::get('/master/option/base', [NasaMasterOptionBaseController::class, 'index'])->name('nasa.master.option.base'); 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('/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/article/authormap', [NasaResourceArticleAuthormapController::class, 'index'])->name('nasa.resource.article.authormap'); 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'); Route::get('/fu/node/action/fly', [NasaFuNodeActionController::class, 'fly']); Route::get('/fu/env/config', [NasaFuEnvConfigController::class, 'index'])->name('nasa.fu.env.config'); Route::get('/fu/mail/mustlog', [NasaFuMailMustlogController::class, 'index'])->name('nasa.fu.mail.mustlog'); Route::get('/fu/ann/base', [NasaFuAnnBaseController::class, 'index'])->name('nasa.fu.ann.base'); Route::get('/tests/fn/subfile', [NasaTestsFnSubfileController::class, 'index'])->name('nasa.tests.fn.subfile'); Route::get('/github/article/github-1', [NasaGithubArticleGithubController::class, 'index'])->defaults('nick', 'github-1')->name('nasa.github.article.github-1'); Route::get('/github/article/github-2', [NasaGithubArticleGithubController::class, 'index'])->defaults('nick', 'github-2')->name('nasa.github.article.github-2'); Route::get('/github/article/github-3', [NasaGithubArticleGithubController::class, 'index'])->defaults('nick', 'github-3')->name('nasa.github.article.github-3'); Route::get('/github/article/github-4', [NasaGithubArticleGithubController::class, 'index'])->defaults('nick', 'github-4')->name('nasa.github.article.github-4'); Route::get('/github/article/github-5', [NasaGithubArticleGithubController::class, 'index'])->defaults('nick', 'github-5')->name('nasa.github.article.github-5'); Route::get('/github/article/github-6', [NasaGithubArticleGithubController::class, 'index'])->defaults('nick', 'github-6')->name('nasa.github.article.github-6'); Route::get('/fn/category/cfn', [NasaFnCategoryHubController::class, 'index'])->defaults('nick', 'cfn')->name('nasa.fn.category.cfn'); Route::get('/fn/category/cvf', [NasaFnCategoryHubController::class, 'index'])->defaults('nick', 'cvf')->name('nasa.fn.category.cvf'); Route::get('/fn/category/vcf', [NasaFnCategoryHubController::class, 'index'])->defaults('nick', 'vcf')->name('nasa.fn.category.vcf'); Route::get('/fn/category/vfn', [NasaFnCategoryHubController::class, 'index'])->defaults('nick', 'vfn')->name('nasa.fn.category.vfn'); Route::get('demo')->name('nasa.demo'); Route::prefix('demo')->group(function() { Route::get('nasa/style/dashboard', [NasaDemoNasaStyleController::class, 'dashboard'])->name('nasa.demo.nasa.style.dashboard'); Route::get('nasa/style/rabc', [NasaDemoNasaStyleController::class, 'rbac'])->name('nasa.demo.nasa.style.rbac'); Route::get('nasa/style/topology', [NasaDemoNasaStyleController::class, 'topology'])->name('nasa.demo.nasa.style.topology'); Route::get('nasa/style/config', [NasaDemoNasaStyleController::class, 'config'])->name('nasa.demo.nasa.style.config'); Route::get('nasa/style/getway', [NasaDemoNasaStyleController::class, 'getway'])->name('nasa.demo.nasa.style.getway'); Route::get('nasa/style/rsa', [NasaDemoNasaStyleController::class, 'rsa'])->name('nasa.demo.nasa.style.rsa'); Route::get('nasa/style/finder', [NasaDemoNasaStyleController::class, 'finder'])->name('nasa.demo.nasa.style.finder'); Route::get('nasa/style/disaster', [NasaDemoNasaStyleController::class, 'disaster'])->name('nasa.demo.nasa.style.disaster'); Route::get('nasa/style/cache', [NasaDemoNasaStyleController::class, 'cache'])->name('nasa.demo.nasa.style.cache'); Route::get('nasa/style/cron', [NasaDemoNasaStyleController::class, 'cron'])->name('nasa.demo.nasa.style.cron'); Route::get('nasa/style/kafka', [NasaDemoNasaStyleController::class, 'kafka'])->name('nasa.demo.nasa.style.kafka'); Route::get('nasa/style/topology2', [NasaDemoNasaStyleController::class, 'topology2'])->name('nasa.demo.nasa.style.topology2'); Route::get('nasa/style/shifter', [NasaDemoNasaStyleController::class, 'shifter'])->name('nasa.demo.nasa.style.shifter'); Route::get('nasa/style/download', [NasaDemoNasaStyleController::class, 'download'])->name('nasa.demo.nasa.style.download'); Route::get('nasa/style/tuning', [NasaDemoNasaStyleController::class, 'tuning'])->name('nasa.demo.nasa.style.tuning'); Route::get('nasa/style/sandbox', [NasaDemoNasaStyleController::class, 'sandbox'])->name('nasa.demo.nasa.style.sandbox'); Route::get('nasa/style/interlock', [NasaDemoNasaStyleController::class, 'interlock'])->name('nasa.demo.nasa.style.interlock'); Route::get('nasa/style/list', [NasaDemoNasaStyleController::class, 'list'])->name('nasa.demo.nasa.style.list'); Route::get('nasa/style/botton', [NasaDemoNasaStyleController::class, 'botton'])->name('nasa.demo.nasa.style.botton'); Route::get('nasa/style/botton2', [NasaDemoNasaStyleController::class, 'botton2'])->name('nasa.demo.nasa.style.botton2'); }); }); //// 视图系列 Route::get('/nima', [NimaController::class, 'index']); Route::any('/api/v1/freenode/url_feed_today/{siteCode}/{client?}', [FreenodeHelperController::class, 'urlFeedToday']); Route::any('/api/v1/freenode/country_speed', [FreenodeCountrySpeedController::class, 'build']); Route::any('/api/telegram/post', [ServiceOpenApiTelegram::class, 'post']); Route::any('/api/article/schema/build', [ServiceArticleSchema::class, 'api_buildArticle']); Route::any('/api/article/schema/build/receive', [ServiceArticleSchema::class, 'api_build_receive']); Route::get('/sub/{siteCode}/{client}/{date?}', [ApiFreenodeController::class, "sub"]); Route::get('/cmd', [CmdController::class, 'index']); Route::post('/cmd/send', [CmdController::class, 'ajaxSend']); Route::get('/cmd/image/upload', [CmdController::class, 'imageUpload']); Route::post('/cmd/image/upload/exec', [CmdController::class, 'imageUploadExec']); Route::post('/api/open/telegam/queue/add', [ServiceTelegram::class, 'queueAdd']); Route::post('/api/github/get', [GithubController::class, 'get']); Route::get('/api/good/rand/{class}', [GoodController::class, 'rand']); Route::get('/api/freenode/country/rand/{case?}', [CountryController::class, 'rand']); Route::get('/api/ship/get/{shipCode}/{clientClass}/{clientCode?}', [ShipController::class, 'getShipByCode']); Route::get('/cron', [CronController::class, 'index']); Route::get('/test/hook', [SakaiController::class, 'hook']); Route::get('/test1', [SakaiController::class, 'test1']); Route::get('/test2', [SakaiController::class, 'test2']); Route::get('/test3', [SakaiController::class, 'test3']); Route::get('/test4', [SakaiController::class, 'test4']); Route::get('/test5', [SakaiController::class, 'test5']); Route::any('/api/tg/hook', [HookController::class, 'cmd']); Route::any('/api/tg/hook/cmd_ffq_article', [HookController::class, 'cmd_ffq_article']); Route::any('/api/tg/hook/cache_tg/{group_code}', [HookController::class, 'cache_tg']); Route::any('/api/tg/hook/cache_tg_new', [HookController::class, 'cache_tg_new']); Route::get('/tool', [SakaiController::class, 'tool']);