Skip to content

Feature 增加网盘文件夹下载 #181

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

KanouAo
Copy link

@KanouAo KanouAo commented May 23, 2025

我增加了文件夹下载功能,在功能分支里,可以实现嵌套下载的功能,详见 给开发者hmjz100的话.md。第1次给开源项目提交PR,GITHUB的交流版面不是很懂,请留下微信的联系方式(注意隐私)。

@hmjz100
Copy link
Owner

hmjz100 commented May 23, 2025

另外,解答下您在代码中提到的问题:

config uc 的 ua 是从 alist 中爬来的,下载器需要使用这个 ua 访问下载直链,否则服务器会报 403

blob 保留文件夹结构下载,考虑到脚本需要兼容多平台,所以我不是很推荐做这个功能,新版本恐怕不会加上

一些云盘没有在分享页面做直链下载是因为他们的服务器大多做了限制,连接口都没了,脚本没法实现
所以,没有 }else if(page=="share"){ 是很合理的,因为分享页面不需要调用此函数

阿里云盘中的 cURL 下载是一个 Bug,在生成链接的时候我把 curl 和 bc 要传的参数搞反了,下个版本应该会修复
UC 网盘中用错夸克 UA 是在复制粘贴的时候没替换完导致的

一些网盘获取直链要传的 fids 的限制并非按照数据长度衡量,而是以 fids 的数量来衡量,如果加入了文件夹遍历,那么 fids 只会更多

123 云盘中的 XXX=时间戳-XXX-XXX 不需要添加,没啥用,服务器也不读
请求下载链接的时候使用 platform:ios 是为了符合官方标准:移动 APP 平台的单日下载流量可以超过 1GB
ios 也可以换成 android

@KanouAo
Copy link
Author

KanouAo commented May 24, 2025

我是看有的网盘有分享,但多数都没有,能分享的网盘}else if(page=="share")后share又有很多重复的代码,我就统一一下,把判断移到上面 if(page === 'home' || page === 'main'){
}else if(page=="share"){
//分享页面所需的变量
}else{
return message.error('提示:
页面错误~');
}(这里判断是分享其实就可以弹提示返回了),再在实际要爬数据getFilesByOnce、getFileUrlByOnce的时候再做下home、share的区分,放一起好对比一点。但我下面的if (page === 'home' || page === 'main') {还是保留了下原本的样子,其实去掉也没关系了)。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants