@@ -3,9 +3,10 @@ import path from 'path';
33import * as drpy from '../libs/drpyS.js' ;
44import { naturalSort , urljoin } from '../utils/utils.js'
55import { ENV } from "../utils/env.js" ;
6+ import { validatePwd } from "../utils/api_validate.js" ;
67
78// 工具函数:生成 JSON 数据
8- async function generateSiteJSON ( jsDir , requestHost , sub , subFilePath ) {
9+ async function generateSiteJSON ( jsDir , requestHost , sub , subFilePath , pwd ) {
910 const files = readdirSync ( jsDir ) ;
1011 let valid_files = files . filter ( ( file ) => file . endsWith ( '.js' ) && ! file . startsWith ( '_' ) ) ; // 筛选出不是 "_" 开头的 .js 文件
1112 let sort_list = [ ] ;
@@ -42,7 +43,10 @@ async function generateSiteJSON(jsDir, requestHost, sub, subFilePath) {
4243 const baseName = path . basename ( file , '.js' ) ; // 去掉文件扩展名
4344 let key = `drpyS_${ baseName } ` ;
4445 let name = `${ baseName } (DS)` ;
45- const api = `${ requestHost } /api/${ baseName } ` ; // 使用请求的 host 地址,避免硬编码端口
46+ let api = `${ requestHost } /api/${ baseName } ` ; // 使用请求的 host 地址,避免硬编码端口
47+ if ( pwd ) {
48+ api += `?pwd=${ pwd } ` ;
49+ }
4650 let ruleObject = {
4751 searchable : 0 , // 固定值
4852 filterable : 0 , // 固定值
@@ -168,7 +172,7 @@ function getSubs(subFilePath) {
168172
169173export default ( fastify , options , done ) => {
170174
171- fastify . get ( '/index' , async ( request , reply ) => {
175+ fastify . get ( '/index' , { preHandler : validatePwd } , async ( request , reply ) => {
172176 if ( ! existsSync ( options . indexFilePath ) ) {
173177 reply . code ( 404 ) . send ( { error : 'index.json not found' } ) ;
174178 return ;
@@ -179,9 +183,10 @@ export default (fastify, options, done) => {
179183 } ) ;
180184
181185 // 接口:返回配置 JSON,同时写入 index.json
182- fastify . get ( '/config*' , async ( request , reply ) => {
186+ fastify . get ( '/config*' , { preHandler : validatePwd } , async ( request , reply ) => {
183187 let t1 = ( new Date ( ) ) . getTime ( ) ;
184188 const query = request . query ; // 获取 query 参数
189+ const pwd = query . pwd || '' ;
185190 const sub_code = query . sub || '' ;
186191 const cfg_path = request . params [ '*' ] ; // 捕获整个路径
187192 try {
@@ -201,7 +206,7 @@ export default (fastify, options, done) => {
201206 }
202207 }
203208
204- const siteJSON = await generateSiteJSON ( options . jsDir , requestHost , sub , options . subFilePath ) ;
209+ const siteJSON = await generateSiteJSON ( options . jsDir , requestHost , sub , options . subFilePath , pwd ) ;
205210 const parseJSON = generateParseJSON ( options . jxDir , requestHost ) ;
206211 const livesJSON = generateLivesJSON ( requestHost ) ;
207212 const playerJSON = generatePlayerJSON ( options . configDir , requestHost ) ;
0 commit comments