Skip to content

Commit 9572a0d

Browse files
author
Taois
committed
feat:完成解析功能对接。json解析支持代理访问以解决跨域问题
1 parent 7dde0cd commit 9572a0d

File tree

2 files changed

+67
-12
lines changed

2 files changed

+67
-12
lines changed

dashboard/src/api/services/parser.js

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -139,17 +139,30 @@ class ParserService {
139139

140140
console.log('要解析的视频URL:', videoUrl)
141141

142-
let requestUrl = parser.url
142+
// 构建完整的解析地址:解析器URL + 待解析URL
143+
const fullParseUrl = parser.url + encodeURIComponent(videoUrl)
144+
console.log('拼接后的解析地址:', fullParseUrl)
143145

144-
// 直接将解析器URL与待解析URL相加
145-
if (parser.url.includes('{url}')) {
146-
// 如果包含{url}占位符,替换它(兼容旧格式)
147-
requestUrl = parser.url.replace(/\{url\}/g, encodeURIComponent(videoUrl))
148-
console.log('使用占位符替换,最终URL:', requestUrl)
146+
// 获取代理访问接口配置
147+
const savedAddresses = JSON.parse(localStorage.getItem('addressSettings') || '{}')
148+
const proxyAccessEnabled = savedAddresses.proxyAccessEnabled || false
149+
const proxyAccess = savedAddresses.proxyAccess || ''
150+
151+
let requestUrl = fullParseUrl
152+
153+
// 如果启用了代理访问接口,使用代理访问链接
154+
if (proxyAccessEnabled && proxyAccess) {
155+
console.log('🔄 [代理访问] 使用代理访问接口:', proxyAccess)
156+
157+
if (proxyAccess.includes('${url}')) {
158+
// 替换代理访问链接中的${url}占位符
159+
requestUrl = proxyAccess.replace(/\$\{url\}/g, encodeURIComponent(fullParseUrl))
160+
console.log('🔄 [代理访问] 替换占位符后的最终URL:', requestUrl)
161+
} else {
162+
console.warn('⚠️ [代理访问] 代理访问链接中未找到${url}占位符,将直接访问原地址')
163+
}
149164
} else {
150-
// 直接字符串相加:解析器URL + 待解析URL
151-
requestUrl = parser.url + encodeURIComponent(videoUrl)
152-
console.log('直接相加,最终URL:', requestUrl)
165+
console.log('🔄 [直接访问] 代理访问接口未启用,直接访问解析地址')
153166
}
154167

155168
// 发送解析请求
@@ -158,6 +171,7 @@ class ParserService {
158171
url: requestUrl,
159172
headers: {
160173
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
174+
'Referer': fullParseUrl, // 使用拼接后的解析地址作为Referer
161175
...parser.headers
162176
},
163177
timeout: 30000

dashboard/src/views/VideoDetail.vue

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1114,9 +1114,50 @@ const executeParsingWithSelectedParser = async (parser, data) => {
11141114
console.log('🎬 [真正解析] 调用JSON解析器,传递数据:', data)
11151115
result = await ParserService.parseWithJsonParser(normalizedParser, data)
11161116
} else if (normalizedParser.type === 'sniffer') {
1117-
// 嗅探类型解析
1118-
console.log('🎬 [真正解析] 调用嗅探解析器,传递数据:', data)
1119-
result = await ParserService.parseWithSnifferParser(normalizedParser, data)
1117+
// 嗅探类型解析 - 使用配置的代理嗅探接口
1118+
console.log('🎬 [真正解析] 调用代理嗅探接口,传递数据:', data)
1119+
1120+
// 导入嗅探服务
1121+
const { sniffVideoWithConfig } = await import('@/api/services/sniffer.js')
1122+
1123+
// 提取要嗅探的URL
1124+
let targetUrl
1125+
if (data && typeof data === 'object') {
1126+
targetUrl = data.url || data.play_url || data
1127+
} else {
1128+
targetUrl = data
1129+
}
1130+
1131+
if (!targetUrl || typeof targetUrl !== 'string') {
1132+
throw new Error('无效的嗅探目标URL')
1133+
}
1134+
1135+
// 构建完整的解析地址:解析器URL + 被解析URL
1136+
const fullParseUrl = normalizedParser.url + encodeURIComponent(targetUrl)
1137+
1138+
console.log('🔍 [嗅探解析] 解析器URL:', normalizedParser.url)
1139+
console.log('🔍 [嗅探解析] 被解析URL:', targetUrl)
1140+
console.log('🔍 [嗅探解析] 完整解析地址:', fullParseUrl)
1141+
1142+
// 调用代理嗅探接口,传入完整的解析地址
1143+
const sniffResult = await sniffVideoWithConfig(fullParseUrl)
1144+
1145+
if (sniffResult.success && sniffResult.data && sniffResult.data.length > 0) {
1146+
// 转换嗅探结果为解析器格式
1147+
const videoData = sniffResult.data[0] // 取第一个结果
1148+
result = {
1149+
success: true,
1150+
url: videoData.url,
1151+
headers: {
1152+
'Referer': fullParseUrl,
1153+
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
1154+
},
1155+
qualities: [],
1156+
message: '嗅探解析成功'
1157+
}
1158+
} else {
1159+
throw new Error('嗅探未找到可播放的视频链接')
1160+
}
11201161
} else {
11211162
throw new Error(`不支持的解析器类型: ${normalizedParser.type}`)
11221163
}

0 commit comments

Comments
 (0)