changeset 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 c289263e1b24
children 0e40926735e1
files mergeclient.py
diffstat 1 files changed, 43 insertions(+), 0 deletions(-) [+]
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()
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)