Skip to content
Snippets Groups Projects
Commit 403c86e5 authored by Magnus Giesbert's avatar Magnus Giesbert
Browse files

Add new file

parent 0649a0e1
No related branches found
No related tags found
No related merge requests found
# documentation of dokuwiki xmlrpc commands: https://www.dokuwiki.org/devel:xmlrpc
import config
from xmlrpc.client import ServerProxy as Proxy, Error as wikiError
import re
# rename/move a page
def move_page(original_page, new_page, delete=False):
with Proxy(config.WIKI_API_URL) as proxy:
# create new page with identical content #
page_content = proxy.wiki.getPage(original_page)
proxy.wiki.putPage(new_page, page_content, {"sum":"Moved from " + original_page})
# update back links to new page #
backLinks = proxy.wiki.getBackLinks(original_page)
reg = rf"\[\[\s*{original_page}\s*\|(.*?)\]\]" # regex for dokuwiki links we want to replace
_replacer = lambda matched : "[[" + new_page + "|" + matched.group(1) + "]]" # replace function
for page in backLinks:
content = proxy.wiki.getPage(page)
content = re.sub(reg, _replacer, content)
proxy.wiki.putPage(page, content, {"sum":"Update links from " +original_page+ " to " + new_page})
# either flag or delete original page #
if not delete:
proxy.dokuwiki.appendPage(original_page, "\n DELETEME This page was moved to "+ new_page,
{"sum":"Moved to " + new_page + " and marked page for deletion"})
else:
proxy.wiki.putPage(original_page, "", {"sum":"Moved to " + new_page}) # deletes original page
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment