# HG changeset patch # User Björn Ricks # Date 1411999219 -7200 # Node ID a8c628466a9d0dc3bcf4007c8fce076e016be019 # Parent c289263e1b247b485684b3318575c70692366bdc Add an example client for MergeView based on requests diff -r c289263e1b24 -r a8c628466a9d mergeclient.py --- /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()