diff --git a/SrcJyAlist.js b/SrcJyAlist.js index a97b2850..2987fb2f 100644 --- a/SrcJyAlist.js +++ b/SrcJyAlist.js @@ -205,10 +205,10 @@ function arrayAdd(list,isdir,alistapi){ d.push({ title: item.name, img: item.thumb || "https://cdn.jsdelivr.net/gh/alist-org/logo@main/logo.svg@Referer=", - url: $(encodeURI(alistapi.server+path)).lazyRule((api,path,sign,subtitle) => { + url: $(encodeURI(alistapi.server+path)).lazyRule((api,path,sign,subtitles) => { require(config.依赖.match(/http(s)?:\/\/.*\//)[0] + 'SrcJyAlist.js'); - return alistUrl(api,path,sign,subtitle); - }, alistapi.server, path, item.sign, subtitles.length==1?subtitles[0]:""), + return alistUrl(api,path,sign,subtitles); + }, alistapi.server, path, item.sign, subtitles.length>0?subtitles:sublist), col_type: 'avatar', extra: { id: encodeURI(path), @@ -227,20 +227,34 @@ function arrayAdd(list,isdir,alistapi){ return d; } -function alistUrl(api,path,sign,subtitle) { +function alistUrl(api,path,sign,subtitles) { let url = encodeURI(api + "/d"+ path) + "?sign=" + sign; if(contain.test(path)){ try{ url = url + (/\.mp3|\.m4a|\.wav|\.flac/.test(path)?"#isMusic=true#":"#isVideo=true#"); - if(!subtitle){ + if(subtitles.length==0){ return url; }else{ let urls = []; urls.push(url); - return JSON.stringify({ - urls: urls, - subtitle: url.match(/http(s)?:\/\/.*\//)[0] + subtitle - }); + if(subtitles.length==1){ + return JSON.stringify({ + urls: urls, + subtitle: url.match(/http(s)?:\/\/.*\//)[0] + subtitles[0] + }); + }else{ + subtitles.unshift('不挂载字幕'); + return $(subtitles,1).select((urls)=>{ + if(input=='不挂载字幕'){ + return urls[0]; + }else{ + return JSON.stringify({ + urls: urls, + subtitle: url[0].match(/http(s)?:\/\/.*\//)[0] + input + }); + } + },urls) + } } }catch(e){ } return url;