[Kget] Google Summer of code proposal on KGet

Urs Wolfer uwolfer at kde.org
Thu Mar 27 21:21:44 CET 2008


On Thursday 27 March 2008 03:50:34 Ningyu Shi wrote:
> Hi everybody,

Hi

>     My name is Ningyu Shi and I'm new to here:) I plan to submit a
> proposal to GSoc this year. The project is about some feature
> enhancement on KGet. The proposal is based on the KGet come with KDE
> 4.0.2. I've downloaded the cutting-edge code from svn but haven't read
> through it yet, so I'm not sure whether the 'features' mentioned below
> has already been implemented. The original idea is on [
> http://techbase.kde.org/index.php?title=Projects/Summer_of_Code/2008/Ideas#
>KGet ]
>
> Here Comes my proposal
> -----------------------------------------------------------------
> =Abstract=
>
> KGet is a multi-threaded downloader which can handle http, ftp and
> bit-torrent protocol through a transfer-plugin system. Been well
> designed with robust basic features, the program lacks some
> easy-to-use features which are common among other downloaders. The
> project tries to address these problems.
>
> =Detailed Description=
>
> ==Project Details==
>
> ===TreeView Transfer Groups & Sidebar View===
>
> The transfer group structures of the program are flat and don't have a
> per-group based setting now. We propose to make groups into a tree
> structure modeling virtual folders. Each group can have subgroups
> which will inherit parent's setting when first created. Various
> settings can be added to transfer group, e.g. default download
> folders, default number of threads used to download and other plugin
> based settings. All will be made in a per-group based scheme. The
> group structure and settings will be stored in a XML file. Based on
> these, a sidebar with a TreeView will be added to the main widget to
> show downloading processes in different groups. The properties of
> group can also be exported to Nepomuk.
>
> ===Ability to Modify Properties of Download Session===
>
> Now once a download session is created, there is noway to change
> various properties of it. A right click menu will be added to the
> download item which will be able to modify properties based on the
> status. If the download session has already started, only the number
> of download threads can be changed. If it has not started yet,
> filename, URL, download destination can also be changed. The 'New
> Download' dialog will also be equipped with these settings.
>
> ===Multi-source Download Improvement===
>
> The program already has a search engine to add alternative source to
> the download. Different kind of sources including http, ftp and BT
> should be able to manually added to the download session. A strategy
> needed to be devised to carefully cut the file into proper segments to
> enable downloading and resuming from heterogeneous sources also
> allowing checksum verification. Special attention will be needed for
> BT which has a fixed segment size. A finished download session with
> multiple-source should be able to export a meta-link file for sharing.
> Repairing a file with a meta-link file can be done in similar way.
>
> ==Personal Info & Experience==
>
> I'm a graduate student majored in ECE. My research is about electronic
> device simulation. I'm familiar with C++ and have done several
> nontrivial projects one of which is an device simulator which heavily
> use OO. I have read some tutorials on Qt and went through some toy
> examples which make me feel quite comfortable. I've written a tiny
> multi-thread project to download bunch of files from some website. The
> project is written in python with several downloading threads and a
> GUI thread to update the status using PyQt. From that project, I
> learned some basics of multi-threaded programing.

As Lukas already said: most parts of this have already been done in trunk.
Some things could be done now. Probably you could also add some other points 
for the KDE techbase site to you proposal. Please check with the current KDE 
trunk version which features are missing ;) (Or ask again here, or on IRC: 
irc.freenode.org #kget.

> I propose this KGet enhancement project because I didn't find a
> multi-threaded GUI downloader as good as its windows counterpart like
> Flashget. Among the various downloader project under Linux, I find
> KGet to be most promising which has a well designed object model and a
> decent codebase. Mostimportantly, KGet is under active development. So
> I can work with the team to get the job done. I can work for this
> project for 10 hours per week.

Would probably be useful if you could spend some weeks a little more time. ;) 
Of course it also depends on how fast / good you get your things done.

And: Do you plan to contribute to KGet after Summer of code will be done? Do 
you plan to maintain your code after this time?

Bye
urs
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
Url : http://mail.kde.org/pipermail/kget/attachments/20080327/d28ee54c/attachment.pgp 


More information about the Kget mailing list