"""Calls the createDiffHTML API function for the given padid"""
import json
from argparse import ArgumentParser
from urllib.error import HTTPError, URLError
from urllib.parse import urlencode
from urllib.request import urlopen
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"])
except HTTPError as e:
pass