11import { success , failed } from '@/restful/response' ;
22import { ProxyUtils } from '@/core/proxy-utils' ;
33import { RuleUtils } from '@/core/rule-utils' ;
4+ import download from '@/utils/download' ;
45
56export default function register ( $app ) {
67 $app . route ( '/api/proxy/parse' ) . post ( proxy_parser ) ;
@@ -19,12 +20,18 @@ export default function register($app) {
1920 * client: string, 目标平台名称,见backend/src/core/proxy-utils/producers/index.js
2021 *
2122 */
22- function proxy_parser ( req , res ) {
23- const { data, client, content, platform } = req . body ;
23+ async function proxy_parser ( req , res ) {
2424 var result = { } ;
2525 try {
26- var proxies = ProxyUtils . parse ( data ?? content ) ;
27- var par_res = ProxyUtils . produce ( proxies , client ?? platform ) ;
26+ const { data, client, content, platform, download : downloadOpts , type, produce : produceOpts } = req . body ;
27+ let raw ;
28+ if ( downloadOpts ) {
29+ raw = await download ( ...downloadOpts ) ;
30+ } else {
31+ raw = data ?? content
32+ }
33+ var proxies = ProxyUtils . parse ( raw ) ;
34+ var par_res = ProxyUtils . produce ( proxies , client ?? platform , type , produceOpts ) ;
2835 result [ 'par_res' ] = par_res ;
2936 } catch ( err ) {
3037 failed ( res , err ) ;
@@ -39,9 +46,9 @@ function proxy_parser(req, res) {
3946 * client: string, 目标平台名称,具体见backend/src/core/rule-utils/producers.js
4047 */
4148function rule_parser ( req , res ) {
42- const { data, client, content, platform } = req . body ;
4349 var result = { } ;
4450 try {
51+ const { data, client, content, platform } = req . body ;
4552 const rules = RuleUtils . parse ( data ?? content ) ;
4653 var par_res = RuleUtils . produce ( rules , client ?? platform ) ;
4754 result [ 'par_res' ] = par_res ;
0 commit comments