mirror of
				https://git.mirrors.martin98.com/https://github.com/sub-store-org/Sub-Store.git
				synced 2025-11-01 07:21:09 +08:00 
			
		
		
		
	feat: 远程订阅支持 insecure 不验证服务器证书
This commit is contained in:
		
							parent
							
								
									b048ecdfff
								
							
						
					
					
						commit
						e09d66060d
					
				| @ -1,6 +1,6 @@ | ||||
| { | ||||
|   "name": "sub-store", | ||||
|   "version": "2.14.405", | ||||
|   "version": "2.14.406", | ||||
|   "description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and ShadowRocket.", | ||||
|   "main": "src/main.js", | ||||
|   "scripts": { | ||||
|  | ||||
| @ -185,7 +185,7 @@ async function downloadSubscription(req, res) { | ||||
|                     if (!$arguments.noFlow) { | ||||
|                         // forward flow headers
 | ||||
|                         const flowInfo = await getFlowHeaders( | ||||
|                             url, | ||||
|                             $arguments?.insecure ? `${url}#insecure` : url, | ||||
|                             $arguments.flowUserAgent, | ||||
|                             undefined, | ||||
|                             proxy || sub.proxy, | ||||
| @ -378,7 +378,7 @@ async function downloadCollection(req, res) { | ||||
|                         } | ||||
|                         if (!$arguments.noFlow) { | ||||
|                             const flowInfo = await getFlowHeaders( | ||||
|                                 url, | ||||
|                                 $arguments?.insecure ? `${url}#insecure` : url, | ||||
|                                 $arguments.flowUserAgent, | ||||
|                                 undefined, | ||||
|                                 proxy || sub.proxy || collection.proxy, | ||||
|  | ||||
| @ -152,7 +152,7 @@ async function getFlowInfo(req, res) { | ||||
|             } | ||||
|         } else { | ||||
|             const flowHeaders = await getFlowHeaders( | ||||
|                 url, | ||||
|                 $arguments?.insecure ? `${url}#insecure` : url, | ||||
|                 $arguments.flowUserAgent, | ||||
|                 undefined, | ||||
|                 sub.proxy, | ||||
|  | ||||
| @ -157,8 +157,13 @@ export default async function download( | ||||
|             $.write(cached, customCacheKey); | ||||
|         } | ||||
|     } else { | ||||
|         const insecure = $arguments?.insecure | ||||
|             ? isNode | ||||
|                 ? { strictSSL: false } | ||||
|                 : { insecure: true } | ||||
|             : undefined; | ||||
|         $.info( | ||||
|             `Downloading...\nUser-Agent: ${userAgent}\nTimeout: ${requestTimeout}\nProxy: ${proxy}\nURL: ${url}`, | ||||
|             `Downloading...\nUser-Agent: ${userAgent}\nTimeout: ${requestTimeout}\nProxy: ${proxy}\nInsecure: ${!!insecure}\nURL: ${url}`, | ||||
|         ); | ||||
|         try { | ||||
|             const { body, headers } = await http.get({ | ||||
| @ -167,6 +172,7 @@ export default async function download( | ||||
|                 ...(isLoon && proxy ? { node: proxy } : {}), | ||||
|                 ...(isQX && proxy ? { opts: { policy: proxy } } : {}), | ||||
|                 ...(proxy ? getPolicyDescriptor(proxy) : {}), | ||||
|                 ...(insecure ? insecure : {}), | ||||
|             }); | ||||
| 
 | ||||
|             if (headers) { | ||||
|  | ||||
| @ -47,6 +47,11 @@ export async function getFlowHeaders( | ||||
|         // $.info(`使用缓存的流量信息: ${url}`);
 | ||||
|         flowInfo = cached; | ||||
|     } else { | ||||
|         const insecure = $arguments?.insecure | ||||
|             ? $.env.isNode | ||||
|                 ? { strictSSL: false } | ||||
|                 : { insecure: true } | ||||
|             : undefined; | ||||
|         const { defaultProxy, defaultFlowUserAgent, defaultTimeout } = | ||||
|             $.read(SETTINGS_KEY); | ||||
|         let proxy = customProxy || defaultProxy; | ||||
| @ -64,7 +69,7 @@ export async function getFlowHeaders( | ||||
|             $.info( | ||||
|                 `使用 GET 方法从响应体获取流量信息: ${flowUrl}, User-Agent: ${ | ||||
|                     userAgent || '' | ||||
|                 }`,
 | ||||
|                 }, Insecure: ${!!insecure}, Proxy: ${proxy}`,
 | ||||
|             ); | ||||
|             const { body } = await http.get({ | ||||
|                 url: flowUrl, | ||||
| @ -72,6 +77,11 @@ export async function getFlowHeaders( | ||||
|                     'User-Agent': userAgent, | ||||
|                 }, | ||||
|                 timeout: requestTimeout, | ||||
|                 ...(proxy ? { proxy } : {}), | ||||
|                 ...(isLoon && proxy ? { node: proxy } : {}), | ||||
|                 ...(isQX && proxy ? { opts: { policy: proxy } } : {}), | ||||
|                 ...(proxy ? getPolicyDescriptor(proxy) : {}), | ||||
|                 ...(insecure ? insecure : {}), | ||||
|             }); | ||||
|             flowInfo = body; | ||||
|         } else { | ||||
| @ -79,7 +89,7 @@ export async function getFlowHeaders( | ||||
|                 $.info( | ||||
|                     `使用 HEAD 方法从响应头获取流量信息: ${url}, User-Agent: ${ | ||||
|                         userAgent || '' | ||||
|                     }, Proxy: ${proxy}`,
 | ||||
|                     }, Insecure: ${!!insecure}, Proxy: ${proxy}`,
 | ||||
|                 ); | ||||
|                 const { headers } = await http.head({ | ||||
|                     url: url | ||||
| @ -103,20 +113,23 @@ export async function getFlowHeaders( | ||||
|                     ...(isLoon && proxy ? { node: proxy } : {}), | ||||
|                     ...(isQX && proxy ? { opts: { policy: proxy } } : {}), | ||||
|                     ...(proxy ? getPolicyDescriptor(proxy) : {}), | ||||
|                     ...(insecure ? insecure : {}), | ||||
|                 }); | ||||
|                 flowInfo = getFlowField(headers); | ||||
|             } catch (e) { | ||||
|                 $.error( | ||||
|                     `使用 HEAD 方法从响应头获取流量信息失败: ${url}, User-Agent: ${ | ||||
|                         userAgent || '' | ||||
|                     }, Proxy: ${proxy}: ${e.message ?? e}`,
 | ||||
|                     }, Insecure: ${!!insecure}, Proxy: ${proxy}: ${ | ||||
|                         e.message ?? e | ||||
|                     }`,
 | ||||
|                 ); | ||||
|             } | ||||
|             if (!flowInfo) { | ||||
|                 $.info( | ||||
|                     `使用 GET 方法获取流量信息: ${url}, User-Agent: ${ | ||||
|                         userAgent || '' | ||||
|                     }, Proxy: ${proxy}`,
 | ||||
|                     }, Insecure: ${!!insecure}, Proxy: ${proxy}`,
 | ||||
|                 ); | ||||
|                 const { headers } = await http.get({ | ||||
|                     url: url | ||||
| @ -140,6 +153,7 @@ export async function getFlowHeaders( | ||||
|                     ...(isLoon && proxy ? { node: proxy } : {}), | ||||
|                     ...(isQX && proxy ? { opts: { policy: proxy } } : {}), | ||||
|                     ...(proxy ? getPolicyDescriptor(proxy) : {}), | ||||
|                     ...(insecure ? insecure : {}), | ||||
|                 }); | ||||
|                 flowInfo = getFlowField(headers); | ||||
|             } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 xream
						xream