view mergeclient.py @ 99:349d49bb69f4

Porting on python3
author Magnus Schieder <mschieder@intevation.de>
date Tue, 19 Jun 2018 15:07:56 +0200
parents 4645e50539ff
children
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()
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)