Mercurial > repos > kellrott > nosql_interface
changeset 3:4d03df88688d draft default tip
Uploaded
author | kellrott |
---|---|
date | Tue, 24 Jul 2012 17:42:17 -0400 |
parents | 1fce03693725 |
children | |
files | bulk_download.xml |
diffstat | 1 files changed, 59 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bulk_download.xml Tue Jul 24 17:42:17 2012 -0400 @@ -0,0 +1,59 @@ +<tool id="bulk_download" name="Bulk Download" version="1.0"> + <description>Bulk Downloader</description> + <command interpreter="python">$script_file $output $output.id $__new_file_path__</command> + <inputs> + <param name="urls_txt" type="text" area="True" size="5x35" label="URL Text" optional="True"/> + <param name="urls_file" type="data" label="URL File" optional="True"/> + <param name="decompress" type="boolean" label="Decompress" value="true"/> + + </inputs> + <outputs> + <data name="output"/> + </outputs> + <configfiles> + <configfile name="script_file"><![CDATA[#!/usr/bin/env python +import os +import sys +import urllib +import tempfile + +urls_txt = """${urls_txt}""" +urls_file = """${urls_file}""" +decompress = "${decompress}" + +output = sys.argv[1] +output_id = sys.argv[2] +output_dir = sys.argv[3] + + +if len(urls_file) and urls_file != "None": + handle = open(urls_file) +else: + handle = StringIO(urls_txt) + +#fix for multiple outputs +opath = output +for line in handle: + url = line.rstrip() + base = os.path.basename(url) + h, path = tempfile.mkstemp(dir="./") + os.close(h) + urllib.urlretrieve(url, path) + if decompress == "true": + if base.endswith(".gz"): + import gzip + ohandle = open(opath, "wb") + f = gzip.GzipFile(path, "rb") + for chunk in iter(lambda: f.read(8192), ''): + ohandle.write(chunk) + ohandle.close() + f.close() + + if os.path.exists(path): + os.unlink(path) + else: + shutil.move(path, opath) + +]]></configfile> + </configfiles> +</tool>