PointTeam / PointDownload

homepage
GNU General Public License v3.0
225 stars 43 forks source link

项目重构和软件协议以及后续开发 #33

Open SunRain opened 8 years ago

SunRain commented 8 years ago

因为需要在程序里面实现一个简易的下载模块,而之前也一直很关注深度和点载项目,所以本着不重复造轮子的想法(CV大法万岁-_-!!),研究了一下点载的代码。就说一下自己的一点小建议吧,毕竟我也是个业余菜鸟。关于项目的话,感觉好久不更新了,不知道作者是不是放弃了,或者有没有后续人员来接手,因为感觉目前的架构还是有点凌乱,基于QtNetwork模块的下载部分,应该不需要使用多个NetworkAccessManager实例,线程用继承QThread重写 run方式,然后内部exec事件循环,感觉不是很优雅,和上层qml通讯的部分,也给人很多hack的感觉。另外,软件协议方面,能否分开授权,核心下载作为类库引用的部分,能否基于LGPL来发布。另外,可以的话,能否允许我复用一些代码片断,更进一步的话或许做一个点载的fork版?

choldrim commented 8 years ago

@Match-Yang

sbwtw commented 8 years ago

之前已经在做了,qml 数据和 c++ 数据的统一,各个下载任务的抽象,加油

SunRain commented 8 years ago

希望能够提供一个核心的下载调度类库,里面只包含基本的下载模块的抽象,然后在此基础上包装一个qml的交互层。各个下载模块,可以使用qt的plugin机制来单独编写,这样也可以方便扩展和后续的维护。

SunRain commented 8 years ago

好吧,看来都很忙,没有授权的话,我就没法动手修改了,因为打算用LGPL或者MPL 加上 GPL两个协议来授权不同模块,所以必须要有贡献者/项目作者同意才可以。。。

Match-Yang commented 8 years ago

@sbwtw 来吧!

SunRain commented 8 years ago

好吧,有人接手的话我就不搀和了

choldrim commented 8 years ago

@SunRain 可否告诉我们,你先让我们项目基于LGPL的目的是?

SunRain commented 8 years ago

主要是考虑解耦项目模块,同时使用Qt的插件机制来开发不同的下载支持。 假设http、ftp、you-get、bt不同下载支持模块为单独的DownloadTask。项目核心(下载模块DownloadTask调度管理类库,相关的qml支持部分)这些作为一个单独的库文件开发,在这个库文件里面提供一个抽象的DownloadTask以方便开发具体的下载插件。项目核心使用MPL或者LGPL授权是考虑到,可以保证代码开源的情况下,方便第三方使用,这样也许可以吸引更多的开发者。 具体到单独的DownloadTask则可以使用不同的授权方式,比如GPL之类。 同时,使用插件机制的话,也可以方便项目维护以及添加不同的下载功能支持。

choldrim commented 8 years ago

刚查了一下GPL转到LGPL的一些限制,没有找到明确说不可以转的,看到有一部分人说:如果是项目的owner,想怎么改都可以(不确定是不是对的)。 另外,pointdownload项目已经有好久一段时间没有去维护了,有些可惜了,我们已经给你添加了项目合作者权限(Collaborators),你自己去修改吧。 如果你愿意继续维护的话,欢迎继续提交代码,谢谢 ;)

(同时,sbwtw也加到了Collaborators组里面)

choldrim commented 8 years ago

cc: @Match-Yang @sbwtw