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/
testing/
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.
@ -21,7 +21,7 @@ Usage
---------------
mkdir mydump
cd myddump
etherdump init
pppadump init
The program then interactively asks some questions:
@ -31,10 +31,10 @@ The program then interactively asks some questions:
Please paste the APIKEY:
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.
@ -58,23 +58,23 @@ subcommands
To get help on a subcommand:
etherdump revisionscount --help
pppadump revisionscount --help
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
etherdump init
etherdump pull --html --meta
pppadump init
pppadump pull --html --meta
(cd ..)
mkdir instance2 && cd instance2
etherdump init
etherdump pushhtml --basepath ../instance1 ../instance1/p/*.meta.json
pppadump init
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.
@ -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.
Change log / notes
=======================
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
usage = """Usage:
etherdump CMD
pppadump CMD
where CMD could be:
appendmeta
@ -28,7 +28,7 @@ where CMD could be:
status
For more information on each command try:
etherdump CMD --help
pppadump CMD --help
"""
@ -44,7 +44,7 @@ except IndexError:
sys.exit(0)
try:
# 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)
except ImportError as 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):
p = ArgumentParser("calls the createDiffHTML API function for the given 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("--format", default="text", help="output format, can be: text, json; default: text")
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):
p = ArgumentParser("calls the getText API function for the given 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("--format", default="text", help="output format, can be: text, json; default: text")
args = p.parse_args(args)

View File

@ -30,7 +30,7 @@ def jsonload (url):
def main (args):
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")
args = p.parse_args(args)

View File

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

View File

@ -14,7 +14,7 @@ except ImportError:
def main(args):
p = ArgumentParser("calls the getText API function for the given 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("--format", default="text", help="output format, can be: text, json; default: text")
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 jinja2 import FileSystemLoader, Environment
from etherdump.commands.common import *
from pppadump.commands.common import *
from time import sleep
import dateutil.parser
"""
index:
Generate pages from etherdumps using a template.
Generate pages from pppadumps using a template.
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("--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("--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.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("--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("--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("--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("--next", default=None, help="next 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)
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("--path", default=None, help="path to initialize")
p.add_argument("--padurl", default=None, help="")
@ -85,7 +85,7 @@ def main(args):
if not path:
path = "."
edpath = os.path.join(path, ".etherdump")
edpath = os.path.join(path, ".pppadump")
try:
os.makedirs(edpath)
except OSError:

View File

@ -2,7 +2,7 @@ from __future__ import print_function
from argparse import ArgumentParser
import json
import sys
from etherdump.commands.common import getjson
from pppadump.commands.common import getjson
try:
# python2
from urlparse import urlparse, urlunparse
@ -16,7 +16,7 @@ except ImportError:
def main (args):
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("--format", default="lines", help="output format: lines, json; default lines")
args = p.parse_args(args)

View File

@ -8,7 +8,7 @@ from urllib2 import urlopen, HTTPError, URLError
def main(args):
p = ArgumentParser("call listAuthorsOfPad for 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("--format", default="lines", help="output format, can be: lines, json; default: lines")
args = p.parse_args(args)

View File

@ -5,9 +5,9 @@ from datetime import datetime
from urllib.parse import urlencode, quote
from urllib.request import urlopen, URLError, HTTPError
from etherdump.commands.common import *
from pppadump.commands.common import *
from time import sleep
from etherdump.commands.html5tidy import html5tidy
from pppadump.commands.html5tidy import html5tidy
import html5lib
from xml.etree import ElementTree as ET
from fnmatch import fnmatch
@ -40,7 +40,7 @@ def main (args):
p.add_argument("padid", nargs="*", default=[])
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("--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")
@ -65,7 +65,7 @@ def main (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"
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 os, sys
import json
@ -7,7 +7,7 @@ import json
def main(args):
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("--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=".")
args = p.parse_args(args)

View File

@ -7,7 +7,7 @@ from urllib2 import urlopen, HTTPError, URLError
def main(args):
p = ArgumentParser("call getRevisionsCount for the given 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")
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.add_argument("padid", help="the padid")
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("--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")

View File

@ -20,7 +20,7 @@ def main(args):
p = ArgumentParser("calls the getText API function for the given padid")
p.add_argument("padid", help="the padid")
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("--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")

View File

@ -61,7 +61,7 @@ def ignore_p (path, settings=None):
def main (args):
p = ArgumentParser("Check for pads that have changed since last sync (according to .meta.json)")
# 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("--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")

View File

@ -10,7 +10,7 @@
<body>
{{ 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>
</div>
</body>

View File

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