Skip to content
Snippets Groups Projects
Select Git revision
  • 59a7135c6ba2af6b81a3dcc7883243bf38009bc4
  • main default protected
2 results

README.md

Blame
  • magnus's avatar
    Magnus Giesbert authored
    59a7135c
    History
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.

    wikibot

    Python Skripte um Interaktionen mit einem DokuWiki zu Automatisieren.

    Nutzt das xmlrpc package um eine Verbindung zum wiki herzustellen.

    Funktionen

    Verschieben von Seiten

    Um einzelne Seiten zu verschieben oder umzubenennen, kann man move_page() verwenden.
    Den alten Namen (original_page) und den neuen Namen (new_page) übergeben; dabei darauf achten, dass der namespace mit enthalten ist (zB "kategorie:page" statt nur "page").
    Links auf die alte Seite werden automatisch angepasst (Ein hoch auf Backlinks!).
    Standardmäßig wird die alte Seite nur zum Löschen markiert aber nicht gelöscht.
    Wenn man die alte Seite automatisch Löschen will, einfach beim Methodenaufruf delete=True setzen, hierbei wird nur der Inhalt der Seite gelöscht der attic bleibt soweit unverändert. Gelöschte Seiten tauchen nicht mehr in der Sitemap auf können aber wiederhergestellt werden, solange sie nicht aus dem attic gelöscht wurden.

    Um mehrere Seiten auf einmal zu verschieben oder umzubennen kann move_page() merhmals aufgerufen werden oder man verwendet move_pages().
    move_pages() nimmt einen regulären Ausdruck und eine Funktion die aus einem gematchten Namen einen neuen Namen erstellt. Es werden nur Seiten umbenannt/bewegt die komplett durch den regulären Ausdruck abgedeckt sind.
    Das Löschverhalten von alten Seiten ist analog zu move_page().

    Interne Links updaten

    Manchmal sind die Inhalte einer Seite schon umgezogen und auf der alten Seite steht lediglich ein Link zur neuen. Dies passiert vor allem wenn Leute Seiten per Hand verschieben und nicht die Muße haben alle Backlinks durchzugehen. Mittels change_links() werden alle Links, die auf old_page zeigen, auf new_page gesetzt.

    Finden alter Seiten

    Durch find_old_pages() werden alle Seiten zurückgegeben, deren letzte Revision älter als eine gewisse Zeit ist (gegeben als datetime.timedelta oder datetime.datetime objekt).
    Ein Namespace kann optional mit angegeben werden, um nur gewisse Seiten zu bekommen und nicht manuell die ids filtern zu müssen.

    Geplante Funktionen

    • Wiki-Graph mit networkx
    • Markieren u.a. von veralteten Seiten
    • Was mir noch an Statistikgedöns einfällt
    • CLI?
    • Funktionen als Standalone und Gebündelt um ggf. unnötige requests zu vermeiden
    • Vernünftiges Error-handling