Michael Murtaugh
9 years ago
4 changed files with 74 additions and 8 deletions
@ -0,0 +1,38 @@ |
|||
#!/usr/bin/env python |
|||
from __future__ import print_function |
|||
from argparse import ArgumentParser |
|||
import json, sys |
|||
from urllib import urlencode |
|||
from urllib2 import urlopen, HTTPError, URLError |
|||
|
|||
p = ArgumentParser("") |
|||
p.add_argument("padid", help="the padid") |
|||
p.add_argument("--startrev", type=int, default=2, help="starting revision") |
|||
p.add_argument("--endrev", type=int, default=None, help="ending revision, default: last") |
|||
p.add_argument("--padinfo", default="padinfo.json", help="padinfo, default: padinfo.json") |
|||
p.add_argument("--dir", default="out") |
|||
args = p.parse_args() |
|||
|
|||
with open(args.padinfo) as f: |
|||
info = json.load(f) |
|||
apiurl = "{0[protocol]}://{0[hostname]}:{0[port]}{0[apiurl]}{0[apiversion]}/".format(info) |
|||
data = {} |
|||
data['apikey'] = info['apikey'] |
|||
data['padID'] = args.padid.encode("utf-8") |
|||
|
|||
|
|||
total_revisions = apiurl+'getRevisionsCount?'+urlencode(data) |
|||
total_revisions = json.load(urlopen(total_revisions))['data']['revisions'] |
|||
rev = args.startrev |
|||
print ("Dumping {0} revisions...".format(total_revisions), file=sys.stderr) |
|||
|
|||
data['startRev'] = "1" |
|||
while rev <= total_revisions: |
|||
data['endRev'] = "{0}".format(rev) |
|||
requesturl = apiurl+'createDiffHTML?'+urlencode(data) |
|||
html = json.load(urlopen(requesturl))['data']['html'] |
|||
out = "{0}/{1}_{2:06d}.html".format(args.dir, args.padid, rev) |
|||
print ("writing {0}".format(out), file=sys.stderr) |
|||
with open(out, "w") as f: |
|||
f.write(html.encode("utf-8")) |
|||
rev += 1 |
@ -1,8 +0,0 @@ |
|||
{ |
|||
"protocol": "http", |
|||
"hostname": "localhost", |
|||
"port": 9001, |
|||
"apiurl": "/api/", |
|||
"apiversion": "1.2.9", |
|||
"apikey": "XXXXXXXXXXXXXXXXXXXXXXXXX" |
|||
} |
@ -0,0 +1,36 @@ |
|||
#!/usr/bin/env python |
|||
import distutils.command.install_lib |
|||
from distutils.core import setup |
|||
import os |
|||
|
|||
def find (p, d): |
|||
ret = [] |
|||
for b, dd, ff in os.walk(os.path.join(p, d)): |
|||
|
|||
for f in ff: |
|||
if not f.startswith("."): |
|||
fp = os.path.join(b, f) |
|||
ret.append(os.path.relpath(fp, p)) |
|||
ret.sort() |
|||
# for x in ret[:10]: |
|||
# print "**", x |
|||
return ret |
|||
|
|||
setup( |
|||
name='etherdump', |
|||
version='0.3.0', |
|||
author='Michael Murtaugh', |
|||
author_email='mm@automatist.org', |
|||
packages=['etherdump'], |
|||
package_dir={'etherdump': 'etherdump'}, |
|||
#package_data={'activearchives': find("activearchives", "templates/") + find("activearchives", "data/")}, |
|||
package_data={'etherdump': find("etherdump", "data/")}, |
|||
scripts=['bin/etherdump'], |
|||
url='http://activearchives.org/wiki/Etherdump/', |
|||
license='LICENSE.txt', |
|||
description='Etherdump an etherpad publishing & archiving system', |
|||
# long_description=open('README.md').read(), |
|||
install_requires=[ |
|||
"html5lib", "jinja2" |
|||
] |
|||
) |
Loading…
Reference in new issue