[Kget] Re: Kget

Dario Massarin nekkar at libero.it
Thu Apr 7 23:45:23 CEST 2005


On Thursday 07 April 2005 11:25, you wrote:
> On Thursday 07 April 2005 19:46, Dario Massarin wrote:
> > If you are interested in this project, I would be _very_ happy. And
> > remember that I accept any kind of critics and suggestions. So, instead
> > of writing your own download manager, criticize my work :-) and.. let's
> > make_it_cool...

> Do you have some list of feature you are planning?

The branch basically wants to achieve these topics:
1) Make kget handle theoretically every kind of protocol, including 
filesharing ones. This is possible becouse we are now abstracting the concept 
of transfer. This means that we can make use of kioslaves as well as every 
other available external library (such as bittorrent ones). Each transfer is 
implemented as a plugin.
2) Make the kget scheduler handle Job objects. A job can be a Transfer, a 
Search through the net or something else (for example a search for 
mirrors, ...)
3) As I've just said, kget will abstract the concept of Search. In this way we 
can have lots of Search implementations, such as, for example, a "google 
search" or searches with filesharing protocols or whatever...
4) Provide transfer grouping functionalities. This means that the user could 
organize his transfer into groups, with special properties, such as the 
destination folder. Furthermore, the user can start and stop the download of 
the transfers of a specific group (each group has a separate queue).
5) Have a new, polished, powerful gui.

> How do I get this make_it_cool branch so I can have a look at it?

Do you know cvs? Checkout a fresh version of kget head (you can follow the 
instructions available somewhere in www.kde.org). Then from the kget 
directory execute:

cvs up -r make_it_cool

This updates kget with the make_it_cool branch. From this moment on, every 
time you do cvs up you'll make your kget sources up to date with the 
make_it_cool branch (and not head).

> One feature I am looking for is download acceleration and in a smarter way
> than download for example 5 equal sized pieces from same or different
> servers and depending on size and speed make it so the start of the file
> will be available sooner. Would be useful when download large videos so
> that it is possible to view the start as soon as possible.
> Is that something you are working on?

As I said in point 1), the new abstraction of the concept of Transfer makes 
everything possible to implement.. We have now only a transfer that uses 
kioslaves to download files, but It would be extremely useful to have a kget 
own implementation. This could mean having kget handle thing like segmented 
downloading or bandwidth limiting, actually impossible to achieve using 
kioslaves. 
If you are interested in working on these low level topics it would be 
*great*!

> Also I found as now (3.4.0) kget on some errors I have not identified
> precisely will delete what has been downloaded so far. Possible because
> of the way KIO as it is now automatically restarts download if it cannot
> resume. So if kget just use KIO::copy I guess it would delete the
> destination file. Annoying if you have spend 24 hours already on
> downloading something.

Yes. This shouldn't happen. I've just took a look in the Model class that 
handles this in the make_it_cool branch, and this problem shouldn't exist, 
since the user should be always prompted for a comfirmation before 
overwriting a file:

bool Model::isValidDestURL(KURL destURL)
{
    if(KIO::NetAccess::exists(destURL, false, 0))
    {
        if (KMessageBox::warningYesNo(0,
            i18n("Destination file \n%1\nalready exists.\n"
                 "Do you want to overwrite it?").arg( destURL.prettyURL()) )
            == KMessageBox::Yes)
        {
            safeDeleteFile( destURL );
            return true;
        }
    }
    return true;
}

> Also there are several features in the GUI I would like different.

Good. It seems you are not the only one :-) 

http://mail.kde.org/pipermail/kget/2005-April/000091.html

> Also I would possible like to separate the actual download in a background
> process so you could do things like log out of the machine, control
> download on another machine. So my server can do the download and I can
> take my laptop somewhere else.

Yeah. This a recent wish filled up by Enrico.

http://bugs.kde.org/show_bug.cgi?id=102655


Best wishes,
	Dario



More information about the Kget mailing list