Next: Integration with Git, Previous: BitTorrent and huge files, Up: Integration with existing software [Index]
Previous sections tell about manual downloading and sending results to remote node. But one wish to remotely initiate downloading. That can be easily solved with exec handles.
exec: { warcer: ["/bin/sh", "/path/to/warcer.sh"] wgeter: ["/bin/sh", "/path/to/wgeter.sh"] aria2c: [ "/usr/local/bin/aria2c", "--on-download-complete", "aria2-downloaded.sh", "--on-bt-download-complete", "aria2-downloaded.sh" ] }
warcer.sh contents:
#!/bin/sh -ex name="$1"-$(date '+%Y%M%d%H%m%S') read cmdline tmp=$(mktemp -d) cd $tmp wget \ --page-requisites \ --convert-links \ --adjust-extension \ --restrict-file-names=ascii \ --span-hosts \ --random-wait \ --execute robots=off \ --reject '*.woff*,*.ttf,*.eot,*.js' \ --tries 10 \ --warc-file "$name" \ --no-warc-compression \ --no-warc-keep-log \ $cmdline || : zstd --rm "$name".warc nncp-file -nice $NNCP_NICE "$name".warc.zst $NNCP_SENDER: rm -r $tmp
wgeter.sh contents:
#!/bin/sh -ex name=$1-$(date '+%Y%M%d%H%m%S') read cmdline tmp=$(mktemp) wget --output-document=$tmp $cmdline zstd --rm $tmp nncp-file -nice $NNCP_NICE $tmp.zst $NNCP_SENDER:$name.zst rm $tmp.zst
Now you can queue that node to send you some website’s page, file or BitTorrents:
$ echo http://www.nncpgo.org/Postfix.html | nncp-exec remote.node warcer postfix-whole-page $ echo http://www.nncpgo.org/Postfix.html | nncp-exec remote.node wgeter postfix-html-page $ echo \ http://www.nncpgo.org/download/nncp-0.11.tar.xz http://www.nncpgo.org/download/nncp-0.11.tar.xz.asc | nncp-exec remote.node aria2c