Mercurial > odfcast
diff mergeclient.py @ 21:a8c628466a9d
Add an example client for MergeView based on requests
author | Björn Ricks <bjoern.ricks@intevation.de> |
---|---|
date | Mon, 29 Sep 2014 16:00:19 +0200 |
parents | |
children | 3918c3c69485 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mergeclient.py Mon Sep 29 16:00:19 2014 +0200 @@ -0,0 +1,43 @@ +#!/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") + (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) + + files = [] + + 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()