The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

fmd - the freenet mass downloader

Fmd is at a very early stage of development (and very hackish, too), as I am learning the basics of freenet myself.

However, I use it in production, and since it verifies everything it decodes etc., it seems to be quite safe to use, that is, if you know how to debug perl :)

FEATURES

 - decoding is done "in place", i.e. all non-checkblock blocks are
   stored in-place and will not be moved, only checkblocks will
   be moved to their final position in the file before decoding.
 - high resistance against failures of fred or fmd
 - extremely persistent retry behaviour - there is no such thing
   as a permanent failure.
 - handles hundreds of simultaneous downloads with grace.

ENVIRONMENT

Set FMD_HOME to a directory (default ~/fmd) where fmd will store it's files. It will not store your porn files or other freenet data outside that directory.

The subdirectory db will contain a database (soon to go away), while tmp contains queue files and partial splitfiles. All finished files will be moved to the done subdir.

FREDHOST and FREDPORT do the obvious. Fix these docs if you disagree.

Also edit the fmd executable for the number of threads and other non-useful constants. The default number (250) works for me, probably not for you.

COMMANDS

CHK@... (space or "/") filename

Just pasting a CHK and a filename sperated by one or more spaces or slashes will add files to the queue. The line can have leading garbage, i.e. you can paste full uris.

<attachment>...</attachment>
<attach>...</attach>
<attached>...</attached>

Will add frosts mentally deranged pseudo-xml format, soon to be replaced by something even more horrible.

l

List all jobs by number.

<number> (optionally trailing command)

Selects the job with the given number for further comamnds that require a current job.

s

Show the current job. Bot useful right now.

k

Kill the current job. This will keep the temp. file around. Sorry. (But it could be used to reconstruct the download.. hmm..)

pri<number>

Set the current job priority to <pri>. The default is 1. A job with higher priority will (on average) get more requests.

The useful range is probably 0..100, but be careful and limit yourself to small values (<10), otherwise your other downloads might starve!

q

Kill the command prompt. Yupp.