Mercurial > odfcast
view mergeclient.py @ 96:f6d87a17ed84 1.5.1
Require a newer version of py3o.template.
Version 0.9.11 is newest one available at the moment. The issue we were
having with some ODT templates might have been fixed in an earlier
version (e.g. 0.9.9) but I've only tested it with 0.9.11.
author | Bernhard Herzog <bh@intevation.de> |
---|---|
date | Fri, 25 Aug 2017 18:36:44 +0200 |
parents | 4645e50539ff |
children | 349d49bb69f4 |
line wrap: on
line source
#!/usr/bin/env python # -*- coding: utf-8 -*- import optparse import sys import requests def main(): usage = "usage: %prog [options] file1 file2 [ file3, ...]" parser = optparse.OptionParser(usage=usage) parser.add_option("-s", "--host", default="localhost") parser.add_option("-p", "--port", default="5000") parser.add_option("-o", "--out", default="merged.pdf", dest="out") parser.add_option("-i", "--ignore-file-errors", action="store_true", default=False, dest="ignorefileerrors") parser.add_option("-m", "--multi", action="store_true", default=False, dest="multi") (options, args) = parser.parse_args() if len(args) < 2: parser.print_usage() sys.exit(1) service = "merge" url = "http://%s:%s/%s/" % (options.host, options.port, service) if options.ignorefileerrors: url += "?ignore_file_errors=1" files = [] if options.multi: for i, filename in enumerate(args): files.append(("file%s" % i, open(filename, 'rb'))) else: for filename in args: files.append(('files', open(filename, 'rb'))) r = requests.post(url, files=files) if r.status_code == 200: with open(options.out, "wb") as f: f.write(r.content) print "OK" else: print "An error has occured" print r.status_code, r.headers print r.text sys.exit(2) if __name__ == "__main__": main()