from __future__ import print_function from argparse import ArgumentParser import json from urllib import urlencode from urllib2 import urlopen, HTTPError, URLError def main(args): p = ArgumentParser("calls the createDiffHTML API function for the given padid") p.add_argument("padid", help="the padid") p.add_argument("--padinfo", default=".etherpump/settings.json", help="settings, default: .etherdump/settings.json") p.add_argument("--showurl", default=False, action="store_true") p.add_argument("--format", default="text", help="output format, can be: text, json; default: text") p.add_argument("--rev", type=int, default=None, help="revision, default: latest") args = p.parse_args(args) with open(args.padinfo) as f: info = json.load(f) apiurl = info.get("apiurl") # apiurl = "{0[protocol]}://{0[hostname]}:{0[port]}{0[apiurl]}{0[apiversion]}/".format(info) data = {} data['apikey'] = info['apikey'] data['padID'] = args.padid data['startRev'] = "0" if args.rev != None: data['rev'] = args.rev requesturl = apiurl+'createDiffHTML?'+urlencode(data) if args.showurl: print (requesturl) else: try: results = json.load(urlopen(requesturl))['data'] if args.format == "json": print (json.dumps(results)) else: print (results['html'].encode("utf-8")) except HTTPError as e: pass