@@ -48,6 +48,7 @@ async function generateSiteJSON(options, requestHost, sub, pwd) {
4848 }
4949 }
5050 let sites = [ ] ;
51+ let link_jar = '' ;
5152 // console.log('hide_adult:', ENV.get('hide_adult'));
5253 if ( ENV . get ( 'hide_adult' ) === '1' ) {
5354 valid_files = valid_files . filter ( it => ! ( new RegExp ( '\\[[密]\\]|密+' ) ) . test ( it ) ) ;
@@ -205,9 +206,19 @@ async function generateSiteJSON(options, requestHost, sub, pwd) {
205206 let link_sites = [ ] ;
206207 let link_url = ENV . get ( 'link_url' ) ;
207208 let enable_link_push = ENV . get ( 'enable_link_push' , '0' ) ;
209+ let enable_link_jar = ENV . get ( 'enable_link_jar' , '0' ) ;
208210 try {
209211 let link_data = readFileSync ( path . join ( rootDir , './data/settings/link_data.json' ) , 'utf-8' ) ;
210- link_sites = JSON . parse ( link_data ) . sites . filter ( site => site . type = 4 ) ;
212+ let link_config = JSON . parse ( link_data ) ;
213+ link_sites = link_config . sites . filter ( site => site . type = 4 ) ;
214+ if ( link_config . spider && enable_link_jar === '1' ) {
215+ let link_spider_arr = link_config . spider . split ( ';' ) ;
216+ link_jar = urljoin ( link_url , link_spider_arr [ 0 ] ) ;
217+ if ( link_spider_arr . length > 1 ) {
218+ link_jar = [ link_jar ] . concat ( link_spider_arr . slice ( 1 ) ) . join ( ';' )
219+ }
220+ log ( `开始挂载外部T4 Jar: ${ link_jar } ` ) ;
221+ }
211222 link_sites . forEach ( ( site ) => {
212223 if ( site . key === 'push_agent' && enable_link_push !== '1' ) {
213224 return
@@ -246,7 +257,7 @@ async function generateSiteJSON(options, requestHost, sub, pwd) {
246257 sites = sites . filter ( it => ! ( new RegExp ( '\\[[密]\\]|密+' ) ) . test ( it . name ) ) ;
247258 }
248259 sites = naturalSort ( sites , 'name' , sort_list ) ;
249- return { sites} ;
260+ return { sites, spider : link_jar } ;
250261}
251262
252263async function generateParseJSON ( jxDir , requestHost ) {
@@ -495,7 +506,7 @@ export default (fastify, options, done) => {
495506 const parseJSON = await generateParseJSON ( options . jxDir , requestHost ) ;
496507 const livesJSON = generateLivesJSON ( requestHost ) ;
497508 const playerJSON = generatePlayerJSON ( options . configDir , requestHost ) ;
498- const configObj = { sites_count : siteJSON . sites . length , ...siteJSON , ...parseJSON , ...livesJSON , ...playerJSON } ;
509+ const configObj = { sites_count : siteJSON . sites . length , ...playerJSON , ...siteJSON , ...parseJSON , ...livesJSON } ;
499510 // console.log(configObj);
500511 const configStr = JSON . stringify ( configObj , null , 2 ) ;
501512 if ( ! process . env . VERCEL ) { // Vercel 环境不支持写文件,关闭此功能
0 commit comments