`
const filebody = `
文件列表
`
const generate = async request => {
const text = await request.formData()
const surl = text.get('surl')
const pwd = text.get('pwd')
const headers = { 'Content-Type': 'text/html;charset=UTF-8' }
const surl_1 = surl.substring(1)
async function verifyPwd(surl,pwd){
let formData1 = new FormData()
formData1.append('pwd',pwd)
const res = await fetch('https://pan.baidu.com/share/verify?channel=chunlei&clienttype=0&web=1&app_id=250528&surl='+surl_1,
{
body: formData1,
method: 'POST',
headers:{
'user-agent':'netdisk',
'Referer':'https://pan.baidu.com/disk/home'
}
}
)
const json1 = await res.json()
if(json1.errno == 0){
return json1.randsk
}
else {
return 1
}
}
async function getSign(surl,randsk){
if(randsk == 1){
return 1
}
const res1 = await fetch('https://pan.baidu.com/s/1'+surl,
{
method:'GET',
headers:{
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.514.1919.810 Safari/537.36',
'Cookie':'BDUSS=WpJWmF6UkJHVEdDNk9VaTJYNkxSdDQwfllIM3Y5eE5BV2xaRG15RnZ6WUo2VmhmSUFBQUFBJCQAAAAAAAAAAAEAAAAeD0Kbu8pYTUQwOTgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlcMV8JXDFfe; '
+ 'STOKEN=64400714adc9e9483cb158903115be915bef1a6630d4937a7afa8da192ea35dd; BDCLND=' + randsk
}
})
const body = await res1.text()
var re = /yunData.setData\(({.+)\);/
if(body.match(re)){
const json2 = JSON.parse(body.match(re)[1])
return json2
}
else {
return 1
}
}
async function getFileList(shareid,uk,randsk){
const res2 = await fetch('https://pan.baidu.com/share/list?app_id=250528&channel='
+ 'chunlei&clienttype=0&desc=0&num=100&order=name&page=1&root=1&shareid=' + shareid + '&showempty=0&uk='
+ uk + '&web=1',{
method:'GET',
headers:{
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.514.1919.810 Safari/537.36',
'Cookie':'BDUSS=WpJWmF6UkJHVEdDNk9VaTJYNkxSdDQwfllIM3Y5eE5BV2xaRG15RnZ6WUo2VmhmSUFBQUFBJCQAAAAAAAAAAAEAAAAeD0Kbu8pYTUQwOTgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlcMV8JXDFfe;'
+ 'STOKEN=64400714adc9e9483cb158903115be915bef1a6630d4937a7afa8da192ea35dd; BDCLND=' + randsk
}
})
const body = await res2.text()
return JSON.parse(body)
}
const randsk = await verifyPwd(surl_1,pwd)
const json2 = await getSign(surl_1,randsk)
let filecontent = ``
if(json2 != 1){
const sign = json2.sign
const timestamp = json2.timestamp
const shareid = json2.shareid
const uk = json2.uk
const filejson = await getFileList(shareid,uk,randsk)
for(var i=0;i
`+file.server_filename+`
`+ file.size +`
`
}
else {
filecontent += `
`+file.server_filename+`
`
}
}
let filefoot = `