# CnResDownloader **Repository Path**: bbdxf/CnResDownloader ## Basic Information - **Project Name**: CnResDownloader - **Description**: CNRes下载者, 一句话,国内下载工具一片混乱,本猿想尝试制作一个相对可用的下载工具,承担大部分场景下的下载任务。 - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-12-21 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CnResDownloader CnRes下载助手, 一句话,国内下载工具一片混乱,本猿想尝试制作一个相对可用的下载工具,承担大部分场景下的下载任务。 > CnRes下载助手 > 2017年12月21日 by BBDXF 目前国内,在下载这篇土地上,迅雷乱搞,旋风/快车死掉,近期的IDM兴起,又因收费问题,地位尴尬。Aira2在这个过程中也异军突起,占据一小片的江山。再加上迅雷/旋风/快车...独有协议,BT,磁力链接、电驴等公开协议,这篇战场无比混乱。 作为被GFW和无良厂商压迫的一代,本猿,想尝试制作一个**相对可用的下载工具**,在**尽可能利用现有资源**的基础上,承担**大部分场景**下的下载任务。 这个目标一开始就没想能统一所有的下载,不是不想,只是一个人能力有限,太难做到。只要能满足大部分常用场景就好,**尽量提供后期改进和开发的机会**,这样方便其他人在这个基础上进行二次增强。 [TOC] # 场景分析 目前,基础的下载工具无外乎两种优势: 1. 多线程下载,断点续传。这个大部分下载工具都能做到,做的最好的是Aria2和IDM。 2. 死链问题。这个在国内无解,但是由于国内迅雷的做法,可以借助迅雷之手(使用迅雷SDK)。 兼容协议方面: 1. 必须都支持的: HTTP/HTTPS/FTP 2. 支持比较多的: BT/Magnet 3. 国内几乎无法用的: eMule(电驴) **所以:** - 考虑到开发的难度问题,支持1和2。 - 下载的后台同时提供迅雷SDK和Aria2后端,用户根据使用场景选择选择。 - Qt开发,暂时只考虑Windows平台。 # 后端分析(核心) ## Aria2 Aria2是一款开源免费跨平台且不限速的多线程下载软件,其优点是: 1. 速度超级快、体积轻盈、性能强劲、资源占用少; 2. 支持 HTTP / FTP / BT / Magnet 磁力链接等类型的文件下载; 3. 跨平台支持 Win、Mac、Linux,甚至在树莓派、NAS、路由器等设备上都能安装它。 ## ThunderPlatformSDK 在2014年已经停止对外开放,迅雷开放平台也没了。我们这里使用它的2014的那个版本。 现在的文档很少,没什么可说的。 # 项目架构 因为个人喜好原因,目前项目架构如下: ```sh +-------------------------------------------------+ | CnResDownloader.exe +--> WebUI | | | | | | +--> Aria2进程 +--> 统一下载入口 | | | | | | +--> Thunder接口 +--> Chrome内嵌 | | | | | +--> 增强 Js | +-------------------------------------------------+ ``` 主框架使用Qt FrameLess Window, 内嵌QtWebEngineView。程序后台使用WebChannel制作Web接口,前台页面使用本地HTML制作。 后续的个人扩展,通过本地HTML来实现,WebChannel只在本地文件时注入。 默认提供一个基本版本的浏览器,js注入为后期功能。 # TODO ☑ 迅雷SDK接入 ⬜ Aira2接入 ⬜ HTML下载管理 ⬜ 浏览器下载拦截 ⬜ 百度网盘下载拦截 ⬜ 下载SDK参数调优 # 使用说明 ## 基础使用说明 ## 配置说明 ## 界面修改说明 ## 扩展说明