pppadump
Tool to help manage periodic publishing of etherpads to static files, preserving metadata.
Requirements
* python3
* html5lib
* requests (settext)
* python-dateutil, jinja2 (index subcommand)
Installation
pip install python-dateutil jinja2 html5lib
python setup.py install
Usage
mkdir mydump
cd myddump
pppadump init
The program then interactively asks some questions:
Please type the URL of the etherpad:
http://automatist.local:9001/
The APIKEY is the contents of the file APIKEY.txt in the etherpad folder
Please paste the APIKEY:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
The settings are placed in a file called .pppadump/settings.json and are used (by default) by future commands.
pppadump list
You should see a list of pads.
subcommands
-
init
-
pull
-
list
-
listauthors
-
gettext
-
settext
-
gethtml
-
creatediffhtml
-
revisionscount
-
index
-
deletepad
-
pushhtml
To get help on a subcommand:
pppadump revisionscount --help
Cookbook
Using pppadump to migrate from one etherpad instance to another
mkdir instance1 && cd instance1
pppadump init
pppadump pull --html --meta
(cd ..)
mkdir instance2 && cd instance2
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.
NB: This command indescriminantly clobbers pads in instance2 with the HTML of the dumped versions from instance1.
This technique can be used to "reset" the database of a pad by recreating pads (without their history or editor info/colors) in a fresh database.
Magicwords
Following the suggestions of sister project/friendly fork 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.
Originally designed for use at: constant.