renaming etherdump -> pppadump

This commit is contained in:
gauthiier 2021-12-06 17:34:16 +01:00
parent a1c696a538
commit aa246254f4
31 changed files with 47 additions and 75 deletions

2
.gitignore vendored
View File

@ -4,4 +4,4 @@ build/
venv/ venv/
testing/ testing/
padinfo.json padinfo.json
.etherdump .pppadump

View File

@ -1,4 +1,4 @@
etherdump pppadump
========= =========
Tool to help manage periodic publishing of [etherpads](http://etherpad.org/) to static files, preserving metadata. Tool to help manage periodic publishing of [etherpads](http://etherpad.org/) to static files, preserving metadata.
@ -21,7 +21,7 @@ Usage
--------------- ---------------
mkdir mydump mkdir mydump
cd myddump cd myddump
etherdump init pppadump init
The program then interactively asks some questions: The program then interactively asks some questions:
@ -31,10 +31,10 @@ The program then interactively asks some questions:
Please paste the APIKEY: Please paste the APIKEY:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
The settings are placed in a file called .etherdump/settings.json and are used (by default) by future commands. The settings are placed in a file called .pppadump/settings.json and are used (by default) by future commands.
etherdump list pppadump list
You should see a list of pads. You should see a list of pads.
@ -58,23 +58,23 @@ subcommands
To get help on a subcommand: To get help on a subcommand:
etherdump revisionscount --help pppadump revisionscount --help
Cookbook Cookbook
======================== ========================
Using etherdump to migrate from one etherpad instance to another Using pppadump to migrate from one etherpad instance to another
------------------------------------------------------------------ ------------------------------------------------------------------
mkdir instance1 && cd instance1 mkdir instance1 && cd instance1
etherdump init pppadump init
etherdump pull --html --meta pppadump pull --html --meta
(cd ..) (cd ..)
mkdir instance2 && cd instance2 mkdir instance2 && cd instance2
etherdump init pppadump init
etherdump pushhtml --basepath ../instance1 ../instance1/p/*.meta.json pppadump pushhtml --basepath ../instance1 ../instance1/p/*.meta.json
NB: sethtml/pushhtml seems to only work on the server itself, ie using API url such as localhost:9001. NB: sethtml/pushhtml seems to only work on the server itself, ie using API url such as localhost:9001.
@ -88,34 +88,6 @@ Magicwords
Following the suggestions of sister project/friendly fork [etherpump](https://git.vvvvvvaria.org/varia/etherpump/), the magic word mechanism has been expanded (from the inital single hard coded \_\_NOPUBLISH__ value) to and generalized to allow a the use of text markers in the source text to control various options, including options for use in preprocessing and translation of markdown using pandoc. Following the suggestions of sister project/friendly fork [etherpump](https://git.vvvvvvaria.org/varia/etherpump/), the magic word mechanism has been expanded (from the inital single hard coded \_\_NOPUBLISH__ value) to and generalized to allow a the use of text markers in the source text to control various options, including options for use in preprocessing and translation of markdown using pandoc.
Change log / notes
=======================
Originally designed for use at: [constant](http://etherdump.constantvzw.org/). Originally designed for use at: [constant](http://etherdump.constantvzw.org/).
17 Oct 2016
-----------------------------------------------
Preparations for [Machine Research](https://machineresearch.wordpress.com/) [2](http://constantvzw.org/site/Machine-Research,2646.html)
6 Oct 2017
----------------------
Feature request from PW: When deleting a previously public document, generate a page / pages with an explanation (along the lines of "This document was previously public but has been marked .... maybe give links to search").
3 Nov 2017
---------------
machineresearch seems to be __NOPUBLISH__ but still exists (also in recentchanges)
Jan 2018
-------------
Updated files to work with python3 (probably this has broken python2).
Jun 2019
-------------
Revised sethtml & added pushhtml

View File

@ -4,7 +4,7 @@ from __future__ import print_function
import sys import sys
usage = """Usage: usage = """Usage:
etherdump CMD pppadump CMD
where CMD could be: where CMD could be:
appendmeta appendmeta
@ -28,7 +28,7 @@ where CMD could be:
status status
For more information on each command try: For more information on each command try:
etherdump CMD --help pppadump CMD --help
""" """
@ -44,7 +44,7 @@ except IndexError:
sys.exit(0) sys.exit(0)
try: try:
# http://stackoverflow.com/questions/301134/dynamic-module-import-in-python # http://stackoverflow.com/questions/301134/dynamic-module-import-in-python
cmdmod = __import__("etherdump.commands.%s" % cmd, fromlist=["etherdump.commands"]) cmdmod = __import__("pppadump.commands.%s" % cmd, fromlist=["pppadump.commands"])
cmdmod.main(args) cmdmod.main(args)
except ImportError as e: except ImportError as e:
print ("Error performing command '{0}'\n(python said: {1})\n".format(cmd, e)) print ("Error performing command '{0}'\n(python said: {1})\n".format(cmd, e))

View File

@ -8,7 +8,7 @@ from urllib2 import urlopen, HTTPError, URLError
def main(args): def main(args):
p = ArgumentParser("calls the createDiffHTML API function for the given padid") p = ArgumentParser("calls the createDiffHTML API function for the given padid")
p.add_argument("padid", help="the padid") p.add_argument("padid", help="the padid")
p.add_argument("--padinfo", default=".etherdump/settings.json", help="settings, default: .etherdump/settings.json") p.add_argument("--padinfo", default=".pppadump/settings.json", help="settings, default: .pppadump/settings.json")
p.add_argument("--showurl", default=False, action="store_true") 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("--format", default="text", help="output format, can be: text, json; default: text")
p.add_argument("--rev", type=int, default=None, help="revision, default: latest") p.add_argument("--rev", type=int, default=None, help="revision, default: latest")

View File

@ -8,7 +8,7 @@ from urllib.request import urlopen, HTTPError, URLError
def main(args): def main(args):
p = ArgumentParser("calls the getText API function for the given padid") p = ArgumentParser("calls the getText API function for the given padid")
p.add_argument("padid", help="the padid") p.add_argument("padid", help="the padid")
p.add_argument("--padinfo", default=".etherdump/settings.json", help="settings, default: .etherdump/settings.json") p.add_argument("--padinfo", default=".pppadump/settings.json", help="settings, default: .pppadump/settings.json")
p.add_argument("--showurl", default=False, action="store_true") 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("--format", default="text", help="output format, can be: text, json; default: text")
args = p.parse_args(args) args = p.parse_args(args)

View File

@ -30,7 +30,7 @@ def jsonload (url):
def main (args): def main (args):
p = ArgumentParser("outputs a CSV of information all all pads") p = ArgumentParser("outputs a CSV of information all all pads")
p.add_argument("--padinfo", default=".etherdump/settings.json", help="settings, default: .etherdump/settings.json") p.add_argument("--padinfo", default=".pppadump/settings.json", help="settings, default: .pppadump/settings.json")
p.add_argument("--zerorevs", default=False, action="store_true", help="include pads with zero revisions, default: False") p.add_argument("--zerorevs", default=False, action="store_true", help="include pads with zero revisions, default: False")
args = p.parse_args(args) args = p.parse_args(args)

View File

@ -12,7 +12,7 @@ from urllib.error import HTTPError, URLError
def main(args): def main(args):
p = ArgumentParser("calls the getHTML API function for the given padid") p = ArgumentParser("calls the getHTML API function for the given padid")
p.add_argument("padid", help="the padid") p.add_argument("padid", help="the padid")
p.add_argument("--padinfo", default=".etherdump/settings.json", help="settings, default: .etherdump/settings.json") p.add_argument("--padinfo", default=".pppadump/settings.json", help="settings, default: .pppadump/settings.json")
p.add_argument("--showurl", default=False, action="store_true") 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("--format", default="text", help="output format, can be: text, json; default: text")
p.add_argument("--rev", type=int, default=None, help="revision, default: latest") p.add_argument("--rev", type=int, default=None, help="revision, default: latest")

View File

@ -14,7 +14,7 @@ except ImportError:
def main(args): def main(args):
p = ArgumentParser("calls the getText API function for the given padid") p = ArgumentParser("calls the getText API function for the given padid")
p.add_argument("padid", help="the padid") p.add_argument("padid", help="the padid")
p.add_argument("--padinfo", default=".etherdump/settings.json", help="settings, default: .etherdump/settings.json") p.add_argument("--padinfo", default=".pppadump/settings.json", help="settings, default: .pppadump/settings.json")
p.add_argument("--showurl", default=False, action="store_true") 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("--format", default="text", help="output format, can be: text, json; default: text")
p.add_argument("--rev", type=int, default=None, help="revision, default: latest") p.add_argument("--rev", type=int, default=None, help="revision, default: latest")

View File

@ -15,13 +15,13 @@ except ImportError:
from urllib.request import urlopen, URLError, HTTPError from urllib.request import urlopen, URLError, HTTPError
from jinja2 import FileSystemLoader, Environment from jinja2 import FileSystemLoader, Environment
from etherdump.commands.common import * from pppadump.commands.common import *
from time import sleep from time import sleep
import dateutil.parser import dateutil.parser
""" """
index: index:
Generate pages from etherdumps using a template. Generate pages from pppadumps using a template.
Built-in templates: rss.xml, index.html Built-in templates: rss.xml, index.html
@ -87,7 +87,7 @@ def main (args):
p.add_argument("--templatepath", default=None, help="path to find templates, default: built-in") p.add_argument("--templatepath", default=None, help="path to find templates, default: built-in")
p.add_argument("--template", default="index.html", help="template name, built-ins include index.html, rss.xml; default: index.html") p.add_argument("--template", default="index.html", help="template name, built-ins include index.html, rss.xml; default: index.html")
p.add_argument("--padinfo", default=".etherdump/settings.json", help="settings, default: ./.etherdump/settings.json") p.add_argument("--padinfo", default=".pppadump/settings.json", help="settings, default: ./.pppadump/settings.json")
# p.add_argument("--zerorevs", default=False, action="store_true", help="include pads with zero revisions, default: False (i.e. pads with no revisions are skipped)") # p.add_argument("--zerorevs", default=False, action="store_true", help="include pads with zero revisions, default: False (i.e. pads with no revisions are skipped)")
p.add_argument("--order", default="padid", help="order, possible values: padid, pad (no group name), lastedited, (number of) authors, revisions, default: padid") p.add_argument("--order", default="padid", help="order, possible values: padid, pad (no group name), lastedited, (number of) authors, revisions, default: padid")
@ -105,12 +105,12 @@ def main (args):
pg = p.add_argument_group('template variables') pg = p.add_argument_group('template variables')
pg.add_argument("--feedurl", default="feed.xml", help="rss: to use as feeds own (self) link, default: feed.xml") pg.add_argument("--feedurl", default="feed.xml", help="rss: to use as feeds own (self) link, default: feed.xml")
pg.add_argument("--siteurl", default=None, help="rss: to use as channel's site link, default: the etherpad url") pg.add_argument("--siteurl", default=None, help="rss: to use as channel's site link, default: the etherpad url")
pg.add_argument("--title", default="etherdump", help="title for document or rss feed channel title, default: etherdump") pg.add_argument("--title", default="pppadump", help="title for document or rss feed channel title, default: pppadump")
pg.add_argument("--description", default="", help="rss: channel description, default: empty") pg.add_argument("--description", default="", help="rss: channel description, default: empty")
pg.add_argument("--language", default="en-US", help="rss: feed language, default: en-US") pg.add_argument("--language", default="en-US", help="rss: feed language, default: en-US")
pg.add_argument("--updatePeriod", default="daily", help="rss: updatePeriod, possible values: hourly, daily, weekly, monthly, yearly; default: daily") pg.add_argument("--updatePeriod", default="daily", help="rss: updatePeriod, possible values: hourly, daily, weekly, monthly, yearly; default: daily")
pg.add_argument("--updateFrequency", default=1, type=int, help="rss: update frequency within the update period (where 2 would mean twice per period); default: 1") pg.add_argument("--updateFrequency", default=1, type=int, help="rss: update frequency within the update period (where 2 would mean twice per period); default: 1")
pg.add_argument("--generator", default="https://gitlab.com/activearchives/etherdump", help="generator, default: https://gitlab.com/activearchives/etherdump") pg.add_argument("--generator", default="https://gitlab.com/activearchives/pppadump", help="generator, default: https://gitlab.com/activearchives/pppadump")
pg.add_argument("--timestamp", default=None, help="timestamp, default: now (e.g. 2015-12-01 12:30:00)") pg.add_argument("--timestamp", default=None, help="timestamp, default: now (e.g. 2015-12-01 12:30:00)")
pg.add_argument("--next", default=None, help="next link, default: None)") pg.add_argument("--next", default=None, help="next link, default: None)")
pg.add_argument("--prev", default=None, help="prev link, default: None") pg.add_argument("--prev", default=None, help="prev link, default: None")

View File

@ -69,7 +69,7 @@ def tryapiurl (url, verbose=False):
print ("URLError", e, file=sys.stderr) print ("URLError", e, file=sys.stderr)
def main(args): def main(args):
p = ArgumentParser("initialize an etherdump folder") p = ArgumentParser("initialize an pppadump folder")
p.add_argument("arg", nargs="*", default=[], help="optional positional args: path etherpadurl") p.add_argument("arg", nargs="*", default=[], help="optional positional args: path etherpadurl")
p.add_argument("--path", default=None, help="path to initialize") p.add_argument("--path", default=None, help="path to initialize")
p.add_argument("--padurl", default=None, help="") p.add_argument("--padurl", default=None, help="")
@ -85,7 +85,7 @@ def main(args):
if not path: if not path:
path = "." path = "."
edpath = os.path.join(path, ".etherdump") edpath = os.path.join(path, ".pppadump")
try: try:
os.makedirs(edpath) os.makedirs(edpath)
except OSError: except OSError:

View File

@ -2,7 +2,7 @@ from __future__ import print_function
from argparse import ArgumentParser from argparse import ArgumentParser
import json import json
import sys import sys
from etherdump.commands.common import getjson from pppadump.commands.common import getjson
try: try:
# python2 # python2
from urlparse import urlparse, urlunparse from urlparse import urlparse, urlunparse
@ -16,7 +16,7 @@ except ImportError:
def main (args): def main (args):
p = ArgumentParser("call listAllPads and print the results") p = ArgumentParser("call listAllPads and print the results")
p.add_argument("--padinfo", default=".etherdump/settings.json", help="settings, default: .etherdump/settings.json") p.add_argument("--padinfo", default=".pppadump/settings.json", help="settings, default: .pppadump/settings.json")
p.add_argument("--showurl", default=False, action="store_true") p.add_argument("--showurl", default=False, action="store_true")
p.add_argument("--format", default="lines", help="output format: lines, json; default lines") p.add_argument("--format", default="lines", help="output format: lines, json; default lines")
args = p.parse_args(args) args = p.parse_args(args)

View File

@ -8,7 +8,7 @@ from urllib2 import urlopen, HTTPError, URLError
def main(args): def main(args):
p = ArgumentParser("call listAuthorsOfPad for the padid") p = ArgumentParser("call listAuthorsOfPad for the padid")
p.add_argument("padid", help="the padid") p.add_argument("padid", help="the padid")
p.add_argument("--padinfo", default=".etherdump/settings.json", help="settings, default: .etherdump/settings.json") p.add_argument("--padinfo", default=".pppadump/settings.json", help="settings, default: .pppadump/settings.json")
p.add_argument("--showurl", default=False, action="store_true") p.add_argument("--showurl", default=False, action="store_true")
p.add_argument("--format", default="lines", help="output format, can be: lines, json; default: lines") p.add_argument("--format", default="lines", help="output format, can be: lines, json; default: lines")
args = p.parse_args(args) args = p.parse_args(args)

View File

@ -5,9 +5,9 @@ from datetime import datetime
from urllib.parse import urlencode, quote from urllib.parse import urlencode, quote
from urllib.request import urlopen, URLError, HTTPError from urllib.request import urlopen, URLError, HTTPError
from etherdump.commands.common import * from pppadump.commands.common import *
from time import sleep from time import sleep
from etherdump.commands.html5tidy import html5tidy from pppadump.commands.html5tidy import html5tidy
import html5lib import html5lib
from xml.etree import ElementTree as ET from xml.etree import ElementTree as ET
from fnmatch import fnmatch from fnmatch import fnmatch
@ -40,7 +40,7 @@ def main (args):
p.add_argument("padid", nargs="*", default=[]) p.add_argument("padid", nargs="*", default=[])
p.add_argument("--glob", default=False, help="download pads matching a glob pattern") p.add_argument("--glob", default=False, help="download pads matching a glob pattern")
p.add_argument("--padinfo", default=".etherdump/settings.json", help="settings, default: .etherdump/settings.json") p.add_argument("--padinfo", default=".pppadump/settings.json", help="settings, default: .pppadump/settings.json")
p.add_argument("--zerorevs", default=False, action="store_true", help="include pads with zero revisions, default: False (i.e. pads with no revisions are skipped)") p.add_argument("--zerorevs", default=False, action="store_true", help="include pads with zero revisions, default: False (i.e. pads with no revisions are skipped)")
p.add_argument("--pub", default="p", help="folder to store files for public pads, default: p") p.add_argument("--pub", default="p", help="folder to store files for public pads, default: p")
p.add_argument("--group", default="g", help="folder to store files for group pads, default: g") p.add_argument("--group", default="g", help="folder to store files for group pads, default: g")
@ -65,7 +65,7 @@ def main (args):
args = p.parse_args(args) args = p.parse_args(args)
print ("etherdump version {}".format(VERSION), file=sys.stderr) print ("pppadump version {}".format(VERSION), file=sys.stderr)
raw_ext = ".raw.txt" raw_ext = ".raw.txt"
if args.no_raw_ext: if args.no_raw_ext:

View File

@ -1,4 +1,4 @@
from etherdump.commands.sethtml import sethtml, pushhtml from pppadump.commands.sethtml import sethtml, pushhtml
import argparse import argparse
import os, sys import os, sys
import json import json
@ -7,7 +7,7 @@ import json
def main(args): def main(args):
p = argparse.ArgumentParser("""Indiscriminantly PUSH the contents of dumped html files to an etherpad, clobbering any existing content!""") p = argparse.ArgumentParser("""Indiscriminantly PUSH the contents of dumped html files to an etherpad, clobbering any existing content!""")
p.add_argument("input", nargs="+", help="Metadata files, e.g. *.meta.json") p.add_argument("input", nargs="+", help="Metadata files, e.g. *.meta.json")
p.add_argument("--padinfo", default=".etherdump/settings.json", help="settings, default: .etherdump/settings.json") p.add_argument("--padinfo", default=".pppadump/settings.json", help="settings, default: .pppadump/settings.json")
p.add_argument("--basepath", default=".") p.add_argument("--basepath", default=".")
args = p.parse_args(args) args = p.parse_args(args)

View File

@ -7,7 +7,7 @@ from urllib2 import urlopen, HTTPError, URLError
def main(args): def main(args):
p = ArgumentParser("call getRevisionsCount for the given padid") p = ArgumentParser("call getRevisionsCount for the given padid")
p.add_argument("padid", help="the padid") p.add_argument("padid", help="the padid")
p.add_argument("--padinfo", default=".etherdump/settings.json", help="settings, default: .etherdump/settings.json") p.add_argument("--padinfo", default=".pppadump/settings.json", help="settings, default: .pppadump/settings.json")
p.add_argument("--showurl", default=False, action="store_true") p.add_argument("--showurl", default=False, action="store_true")
args = p.parse_args(args) args = p.parse_args(args)

View File

@ -47,7 +47,7 @@ def main(args):
p = argparse.ArgumentParser("calls the setHTML API function for the given padid") p = argparse.ArgumentParser("calls the setHTML API function for the given padid")
p.add_argument("padid", help="the padid") p.add_argument("padid", help="the padid")
p.add_argument("--html", default=None, help="html, default: read from stdin") p.add_argument("--html", default=None, help="html, default: read from stdin")
p.add_argument("--padinfo", default=".etherdump/settings.json", help="settings, default: .etherdump/settings.json") p.add_argument("--padinfo", default=".pppadump/settings.json", help="settings, default: .pppadump/settings.json")
p.add_argument("--showurl", default=False, action="store_true") 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("--format", default="text", help="output format, can be: text, json; default: text")
p.add_argument("--create", default=False, action="store_true", help="flag to create pad if necessary") p.add_argument("--create", default=False, action="store_true", help="flag to create pad if necessary")

View File

@ -20,7 +20,7 @@ def main(args):
p = ArgumentParser("calls the getText API function for the given padid") p = ArgumentParser("calls the getText API function for the given padid")
p.add_argument("padid", help="the padid") p.add_argument("padid", help="the padid")
p.add_argument("--text", default=None, help="text, default: read from stdin") p.add_argument("--text", default=None, help="text, default: read from stdin")
p.add_argument("--padinfo", default=".etherdump/settings.json", help="settings, default: .etherdump/settings.json") p.add_argument("--padinfo", default=".pppadump/settings.json", help="settings, default: .pppadump/settings.json")
p.add_argument("--showurl", default=False, action="store_true") 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("--format", default="text", help="output format, can be: text, json; default: text")
p.add_argument("--create", default=False, action="store_true", help="flag to create pad if necessary") p.add_argument("--create", default=False, action="store_true", help="flag to create pad if necessary")

View File

@ -61,7 +61,7 @@ def ignore_p (path, settings=None):
def main (args): def main (args):
p = ArgumentParser("Check for pads that have changed since last sync (according to .meta.json)") p = ArgumentParser("Check for pads that have changed since last sync (according to .meta.json)")
# p.add_argument("padid", nargs="*", default=[]) # p.add_argument("padid", nargs="*", default=[])
p.add_argument("--padinfo", default=".etherdump/settings.json", help="settings, default: .etherdump/settings.json") p.add_argument("--padinfo", default=".pppadump/settings.json", help="settings, default: .pppadump/settings.json")
p.add_argument("--zerorevs", default=False, action="store_true", help="include pads with zero revisions, default: False (i.e. pads with no revisions are skipped)") p.add_argument("--zerorevs", default=False, action="store_true", help="include pads with zero revisions, default: False (i.e. pads with no revisions are skipped)")
p.add_argument("--pub", default=".", help="folder to store files for public pads, default: pub") p.add_argument("--pub", default=".", help="folder to store files for public pads, default: pub")
p.add_argument("--group", default="g", help="folder to store files for group pads, default: g") p.add_argument("--group", default="g", help="folder to store files for group pads, default: g")

View File

@ -10,7 +10,7 @@
<body> <body>
{{ html }} {{ html }}
<div class="etherdump_version_links"> <div class="pppadump_version_links">
Pad last edited {{lastedited}}; other versions: <a href="{{raw_url}}">text-only</a> <a href="{{meta_url}}">metadata</a> Pad last edited {{lastedited}}; other versions: <a href="{{raw_url}}">text-only</a> <a href="{{meta_url}}">metadata</a>
</div> </div>
</body> </body>

View File

@ -18,18 +18,18 @@ def find (p, d):
return ret return ret
setuptools.setup( setuptools.setup(
name='etherdump', name='pppadump',
version='0.3.0', version='0.3.0',
author='Active Archives Contributors', author='Active Archives Contributors',
author_email='mm@automatist.org', author_email='mm@automatist.org',
packages=['etherdump', 'etherdump.commands'], packages=['pppadump', 'pppadump.commands'],
package_dir={'etherdump': 'etherdump'}, package_dir={'pppadump': 'pppadump'},
#package_data={'activearchives': find("activearchives", "templates/") + find("activearchives", "data/")}, #package_data={'activearchives': find("activearchives", "templates/") + find("activearchives", "data/")},
package_data={'etherdump': find("etherdump", "data/")}, package_data={'pppadump': find("pppadump", "data/")},
scripts=['bin/etherdump'], scripts=['bin/pppadump'],
url='http://activearchives.org/wiki/Etherdump', url='http://activearchives.org/wiki/pppadump',
license='LICENSE.txt', license='LICENSE.txt',
description='Etherdump an etherpad publishing & archiving system', description='pppadump an etherpad publishing & archiving system',
# long_description=open('README.md').read(), # long_description=open('README.md').read(),
install_requires=[ install_requires=[
"html5lib", "jinja2", "python-dateutil", "requests" "html5lib", "jinja2", "python-dateutil", "requests"