Archive for July, 2009

GSOC status

July 6, 2009

Downloads other than bittorrent can have multiple files now, metalink uses this, I did a file-model for that.

So now you can

  • rename files of a download while you download
  • change the download location while you download
  • add/remove mirrors and change the number of connections to the mirrors while you download (bittorrent not supported yet)
  • automatic search for supported checksums (e.g. md5, sha1 etc.) –> that is an own plugin
  • manually adding checksums to a file
  • automatic verification of the downloads (no gui yet)
  • I guess most work went into datasourcefactory to make all of the things mentioned above possible. Also much I added so far is only used by some plugins or is not shown in the gui, but I’ll change that in the future.

    The following screenshots (is there something more interesting? O_o) show some gui-parts I did, feedback on them is welcome and appreciated!


    The transfersettings showing all files of the download. NOTE: The checkboxes do nothing at the moment

    I used a metalink I manually created in the example above (the greyed out parts were there before) – most metalinks are for large files and I got sick of downloading a cd-image every time I test something 😀 – the metalink-plugin uses some of the xml-tags of the metalink-specification, though many are still missing.

    Btw. I renamed “Current Destination” to “Download Destination” to make it more clear. There you can move downloads to different place. The folder structure (if there was one created) is not removed though as the user might have added files to these folders. Maybe I’ll make make that more clever in the future (most likely after GSOC), like a check if there are any non-download files in these directories.


    You can manually add/remove mirrors or change the number of simultanous connections to mirror


    Rename files whenever you want

    after rename

    Choose a useful ending 😉


    Manually add verification information or verify the file if you want

    In fact I did also lots of testing and found many errors in my code, depending on the changes some testing was useless a few commits later – but I like if everything is compileable and works mor or less. So I probably downloaded more than 20 GB just for testing. That does not mean that there are no bugs or problems though e.g. downloading is slow atm.

    PS.: git rules
    PPS.: git rebase -i rules even more
    PPPS.: Thanks for the help you gave me on the irc channels!


    Hi planet!

    July 6, 2009

    Hi there,

    my name is Matthias Fuchs and I am working on KGet as my GSOC-project. I know GSOC has started a “few” weeks ago but rest assured I started before GSOC started, I’m just the incarnation of a lazy blogger.

    Applying to GSOC was a very sponatous decision, on the one hand I came to know on short notice that I had time in the summer and on the other hand I was in search for a new challenge as I consider the comic applet — that introduced me to KDE developement — mostly feature complete (imo!) now. I know there are some bugs as well as feature requests — most of these are also on todo lists I did months ago — left and I’ll look into them when I have time.

    Good, so what will I work on, what did I work on? The most important part will be the implementation of a better metalink-support and thus implement adding additional URLs to downloads to speed them up, multi segment downloads, “repairing” (redownloading foul parts) of downloads via using md5 or sha1 etc. Some of these parts are already there, some need more work on them and others need to be implemented from scratch.

    As soon as I applied I started coding on some of the small ideas I had, these were mostly improvements to the GUI, shortcomings I experienced as a user.
    I improved the “Import Links” dialog — filtering works really nice now — activated the Nepomuk support [1] and improved it. Now you can not only tag and rate files (that was mostly there but not activated) but also add custom tags and tags to your download groups.
    The other things I changed were mostly minor things.

    PS.: This is my first blog entry ever (!), in general I do not like or at least I think that I do not like writing such kind of stuff.
    PPS.: The next blog entry will contain what I already did up to this point, parts of this entry have been written weeks ago and I simply was not motivated to publish it (see the PS above 😉 )

    [1] Many parts were there thanks to boom1992 but it constantly crashed, I “tracked” that down to the CMakeList.txt file, though I have to admit that happened more on coincidence than on knowledge (still do not know why it did not work and I fear that some problems are still left)