diff --git a/.gitignore b/.gitignore index 4b37ad7..9dd1920 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,4 @@ build/ venv/ testing/ padinfo.json -.etherdump +.pppadump diff --git a/README.md b/README.md index 6a784fb..1c25a0e 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/bin/etherdump b/bin/pppadump similarity index 86% rename from bin/etherdump rename to bin/pppadump index 679017d..0da2de3 100755 --- a/bin/etherdump +++ b/bin/pppadump @@ -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)) diff --git a/etherdump/__init__.py b/pppadump/__init__.py similarity index 100% rename from etherdump/__init__.py rename to pppadump/__init__.py diff --git a/etherdump/commands/__init__.py b/pppadump/commands/__init__.py similarity index 100% rename from etherdump/commands/__init__.py rename to pppadump/commands/__init__.py diff --git a/etherdump/commands/appendmeta.py b/pppadump/commands/appendmeta.py similarity index 100% rename from etherdump/commands/appendmeta.py rename to pppadump/commands/appendmeta.py diff --git a/etherdump/commands/common.py b/pppadump/commands/common.py similarity index 100% rename from etherdump/commands/common.py rename to pppadump/commands/common.py diff --git a/etherdump/commands/creatediffhtml.py b/pppadump/commands/creatediffhtml.py similarity index 90% rename from etherdump/commands/creatediffhtml.py rename to pppadump/commands/creatediffhtml.py index ea3f7fa..685531f 100644 --- a/etherdump/commands/creatediffhtml.py +++ b/pppadump/commands/creatediffhtml.py @@ -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") diff --git a/etherdump/commands/deletepad.py b/pppadump/commands/deletepad.py similarity index 90% rename from etherdump/commands/deletepad.py rename to pppadump/commands/deletepad.py index 9592b3a..ac5a847 100644 --- a/etherdump/commands/deletepad.py +++ b/pppadump/commands/deletepad.py @@ -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) diff --git a/etherdump/commands/dumpcsv.py b/pppadump/commands/dumpcsv.py similarity index 95% rename from etherdump/commands/dumpcsv.py rename to pppadump/commands/dumpcsv.py index aa6e971..a71ab6e 100644 --- a/etherdump/commands/dumpcsv.py +++ b/pppadump/commands/dumpcsv.py @@ -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) diff --git a/etherdump/commands/gethtml.py b/pppadump/commands/gethtml.py similarity index 91% rename from etherdump/commands/gethtml.py rename to pppadump/commands/gethtml.py index 9a2fc48..84a6bf0 100644 --- a/etherdump/commands/gethtml.py +++ b/pppadump/commands/gethtml.py @@ -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") diff --git a/etherdump/commands/gettext.py b/pppadump/commands/gettext.py similarity index 92% rename from etherdump/commands/gettext.py rename to pppadump/commands/gettext.py index 45285e7..081b1a4 100644 --- a/etherdump/commands/gettext.py +++ b/pppadump/commands/gettext.py @@ -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") diff --git a/etherdump/commands/html5tidy.py b/pppadump/commands/html5tidy.py similarity index 100% rename from etherdump/commands/html5tidy.py rename to pppadump/commands/html5tidy.py diff --git a/etherdump/commands/index.py b/pppadump/commands/index.py similarity index 96% rename from etherdump/commands/index.py rename to pppadump/commands/index.py index 0efe7cd..72ff970 100644 --- a/etherdump/commands/index.py +++ b/pppadump/commands/index.py @@ -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") diff --git a/etherdump/commands/init.py b/pppadump/commands/init.py similarity index 97% rename from etherdump/commands/init.py rename to pppadump/commands/init.py index 1f229a5..372cb9c 100644 --- a/etherdump/commands/init.py +++ b/pppadump/commands/init.py @@ -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: diff --git a/etherdump/commands/join.py b/pppadump/commands/join.py similarity index 100% rename from etherdump/commands/join.py rename to pppadump/commands/join.py diff --git a/etherdump/commands/list.py b/pppadump/commands/list.py similarity index 88% rename from etherdump/commands/list.py rename to pppadump/commands/list.py index 036699a..bd88be6 100644 --- a/etherdump/commands/list.py +++ b/pppadump/commands/list.py @@ -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) diff --git a/etherdump/commands/listauthors.py b/pppadump/commands/listauthors.py similarity index 89% rename from etherdump/commands/listauthors.py rename to pppadump/commands/listauthors.py index c9bbf4a..5e33bea 100644 --- a/etherdump/commands/listauthors.py +++ b/pppadump/commands/listauthors.py @@ -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) diff --git a/etherdump/commands/pull.py b/pppadump/commands/pull.py similarity index 97% rename from etherdump/commands/pull.py rename to pppadump/commands/pull.py index 15a9b04..d091c9b 100644 --- a/etherdump/commands/pull.py +++ b/pppadump/commands/pull.py @@ -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: diff --git a/etherdump/commands/pushhtml.py b/pppadump/commands/pushhtml.py similarity index 85% rename from etherdump/commands/pushhtml.py rename to pppadump/commands/pushhtml.py index e8faad7..4729930 100644 --- a/etherdump/commands/pushhtml.py +++ b/pppadump/commands/pushhtml.py @@ -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) diff --git a/etherdump/commands/revisionscount.py b/pppadump/commands/revisionscount.py similarity index 86% rename from etherdump/commands/revisionscount.py rename to pppadump/commands/revisionscount.py index 6612894..3181e7e 100644 --- a/etherdump/commands/revisionscount.py +++ b/pppadump/commands/revisionscount.py @@ -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) diff --git a/etherdump/commands/sethtml.py b/pppadump/commands/sethtml.py similarity index 95% rename from etherdump/commands/sethtml.py rename to pppadump/commands/sethtml.py index 669ffc3..59a040c 100644 --- a/etherdump/commands/sethtml.py +++ b/pppadump/commands/sethtml.py @@ -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") diff --git a/etherdump/commands/settext.py b/pppadump/commands/settext.py similarity index 95% rename from etherdump/commands/settext.py rename to pppadump/commands/settext.py index b96cf1f..5294ecc 100644 --- a/etherdump/commands/settext.py +++ b/pppadump/commands/settext.py @@ -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") diff --git a/etherdump/commands/showmeta.py b/pppadump/commands/showmeta.py similarity index 100% rename from etherdump/commands/showmeta.py rename to pppadump/commands/showmeta.py diff --git a/etherdump/commands/status.py b/pppadump/commands/status.py similarity index 97% rename from etherdump/commands/status.py rename to pppadump/commands/status.py index e2961f0..9a95b45 100644 --- a/etherdump/commands/status.py +++ b/pppadump/commands/status.py @@ -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") diff --git a/etherdump/data/templates/index.html b/pppadump/data/templates/index.html similarity index 100% rename from etherdump/data/templates/index.html rename to pppadump/data/templates/index.html diff --git a/etherdump/data/templates/pad.html b/pppadump/data/templates/pad.html similarity index 100% rename from etherdump/data/templates/pad.html rename to pppadump/data/templates/pad.html diff --git a/etherdump/data/templates/pad_colors.html b/pppadump/data/templates/pad_colors.html similarity index 88% rename from etherdump/data/templates/pad_colors.html rename to pppadump/data/templates/pad_colors.html index 39cdf25..338568d 100644 --- a/etherdump/data/templates/pad_colors.html +++ b/pppadump/data/templates/pad_colors.html @@ -10,7 +10,7 @@
{{ html }} -