SR13-ImportParts-003 (based on eMule 0.45b)
What this mod does:
This mod allows you to import data from file to a download in eMule. Any time you have file, which contet partially matches your download, be that interrupted FTP/other P2P download, corrupted file from old CD, corrupted version of same file you've downloaded from eMule, you can use this mod to verify this corrupt file and import verified parts of data from such file to download.
How it works:
Right-click on any download (if you just added it, wait until hashset is obtained first), select "Import parts", then select target file to add import to queue. Since it uses same queue as file hashing, import may not start immediately until all previosly started hashing is done. You can add as many imports to queue as want - just click different download and follow same steps.
This mod imports from external file a) all parts that match hashset and B) all parts that DO NOT match hashet, but still have no single byte of data downloaded, so A/ICH can try to recover something from corrupt data. If part doesn't match and there's at least something downloaded already for it - it won't be imported.
History:
* 003
x New threading code - everything integrated in eMule hashing queue.
x Allow very long file names for files to be imported.
x Flushing tweaked a bit - there should less writing conflicts.
* 002
x Uses threading code from SiRoB of MorphXT mod.
x Added simple locking to prevent starting two imports at once.
x Added flushing - now eMule is much more responsive when import is in progress and it no longer eats memory equivalent to size of file being imported as well.
* 001
x First release, no threading.
TODO:
* If some data already downloaded for corrupt part in import source file, try to combine it with already downloaded data and see if that will make valid part.
* Add additional mode to import data from .part/.part.met pairs that would import only actually downloaded data.
Pros: faster (not important for importing from local HDD, but will noticeable imporve importing from network drives). Cons: won't work or will work worser if .met file is corrupted or if import .part file once downloaded data that did not pass part verification. I'm still not sure what to do with partial data in source file that doesn't fill entire part. Implementing combination mentioned above will take care of some cases.
Links to sources and binaries are here.
This post has been edited by roversr13: 13 April 2005 - 11:33 AM