Perrypedia:Automatisierte Änderungen

Aus Perrypedia
Wechseln zu: Navigation, Suche
Google translator: Translate from German to English.
Google translator: Přeložte z němčiny do češtiny.
Google translator: Vertalen van Duits naar Nederlands.
Google translator: ドイツ語から日本語への翻訳
Google translator: Traduire de l'allemand vers le français.
Google translator: Traduzir do alemão para o português.

Diese Seite bietet einen Überblick über das Thema Automatisierte Änderungen. Anfragen bezüglich weiterer zu automatisierender Änderungen können auf der Diskussionsseite gestellt werden.

Überblick

Eine Reihe von Arbeiten im Kontext der Perrypedia können prinzipiell automatisiert werden. So wird zum Beispiel gefordert, in Quellenangaben eine Reihe von   einzubringen, um unerwünschte Zeilenumbrüche zu verhindern (siehe hier): Aus dem einfach zu tippenden [[Quelle:PRxxx|PR xxx, S. xx]] wird so das für Menschen wesentlich schwerer zu schreibende [[Quelle:PRxxx|PR xxx, S. xx]].

Quellenangaben besitzen nun wie oben zu sehen ein klares Muster, sind vom Prinzip her immer gleich aufgebaut. Dieses Muster kann zum Beispiel mit Hilfe eines regulären Ausdrucks beschrieben werden. Es ist daher möglich, Programme, so genannte Bots, zu schreiben, die alle Quellenangaben mit Leerzeichen finden, diese Leerzeichen durch   ersetzen und damit den aktiven Nutzern das Ausführen dieser mühsamen Arbeit ersparen.

Das Beispiel Quellenangaben zeigt recht gut, wann automatisierte Änderungen zum einen möglich, zum anderen sinnvoll sind: Möglich werden sie, wenn die Änderung einem klaren Muster folgt, das auch von einem Programm »verstanden« werden kann. Sinnvoll sind sie, wenn diese Arbeit mühsam ist und sich immer wieder und wieder wiederholt.

So hilfreich Bots auch sind, haben sie doch den Nachteil, dass sie von bestimmten Personen abhängig sind: Ein Perrypedianaut mit den entsprechenden Kenntnissen schreibt einen Bot, setzt ihn regelmäßig ein, baut eventuell vorhandene Fehler im Programm aus, entwickelt den Bot weiter. Das kostet Zeit. Wechselt der Perrypedianaut irgendwann von aktiv nach inaktiv, steht plötzlich auch der Bot still.

Eine mögliche Abhilfe bietet hier die Erweiterung (Extension) »Replace Text«. Mit dieser ist es jedem Bürokraten und eventuell weiteren mit entsprechenden Rechten versehenen Nutzern möglich, komplizierte, auf regulären Ausdrücken basierende Textersetzungen über alle Seiten des wikis auszuführen. Damit bietet die Erweiterung einen Funktionsumfang, der nahe wenn auch nicht ganz an dem eines Bots heranreicht. Ihre Nutzung ist aber nicht an eine bestimmte Person gebunden.

Wenn es gelingt, das Wissen über den Aufbau der Abfragen für die Erweiterung »Replace Text« offen zu kommunizieren, können diese auch wenn der eine oder andere irgendwann einmal keine Zeit mehr haben sollte, weiter ohne Probleme ausgeführt werden. Um diese Transparenz zu erreichen, wurde diese Seite angelegt.

Auf der Diskussionsseite kann jeder fachliche Anforderungen stellen. Gemeinsam kann über den Sinn einer Automatisierung und deren Machbarkeit diskutiert und eine technische Lösung ausgearbeitet, sowie bestehende Lösungen verfeinert werden. Auf der Seite hier findet sich das jeweilige Ergebnis. Bei Änderungen, die per Erweiterung »Replace Text« ausgeführt werden können zählt hierzu neben der allgemeinverständlichen Beschreibung der Änderung die zu verwendenden regulären Ausdrücke. Bei komplizierteren Änderungen, die durch die Erweiterung nicht ausgeführt werden können, wird der Bot genannt, der diese ausführen kann.

Reguläre Ausdrücke

Reguläre Ausdrücke (kurz: regex) beschreiben Mengen von Zeichenketten und sind von daher für automatisierte Änderungen sehr hilfreich. Oft kann man regex für den eigenen Anwendungsfall aus anderen regex ableiten. Daher werden im Folgenden einige Beispiele aufgeführt.

Anmerkung: Jede regex lässt sich immer auch anders, manchmal auch besser schreiben. Vorschläge bitte einfach kurz auf der Diskussionsseite zur Diskussion stellen.
Suchmuster Funktion Bemerkungen
(\[\[ *Kategorie:([^]]*)\|[^]]*[0-9][^]]*\]\])
Findet Sortkeys mit Arabischen Zahlen
Text ersetzen = $1
Sortkey-Pflege.
Nur Suche.
\{\{DEFAULTSORT:[^}0-9]+\}\}
Findet DEFAULTSORT:Ohne Zahlen
Text ersetzen = {{PPDefaultsort}}
Sortkey-Pflege.

Änderungen per »Extension:Replace Text«

NGZ-Jahreszahl-Links umwandeln

Die früher üblichen Pipe-Links [[XXXX NGZ|XXXX NGZ]] zur Vermeidung eines unerwünschten Zeilenumbruchs vor »NGZ« sind nicht mehr notwendig und können mittels des nebenstehenden regex nach [[XXXX NGZ]] umgewandelt werden.


Technische Details

Muster des Original-Textes:

\[\[([0-9]+) NGZ\|([0-9]+) NGZ\]\]

Muster für die Ersetzung:

[[$2 NGZ]]

Einschränkungen:

  • Nur Hauptnamensraum.


"Bild:" ist veraltet

Anstelle von "Bild:" soll "Datei:" geschrieben werden.


Technische Details

Einbeziehen von "[" im Suchmuster, um false positiv wie z.B. den Text "Ihm bot sich folgendes Bild:" zu verhindern.
Ersetzung ohne Regex.
Muster des Original-Textes:

[Bild:

Muster für die Ersetzung:

[Datei:

Einschränkungen:

  • --keine--


Imagelink nach ImageLink Illu Atlan

Die recht allgemein gehaltenen Imagelinks werden Stück für Stück durch spezialisierte Vorlagen ersetzt, die technische Details vor dem Verwender verbergen und damit einerseits einen einfacheren Einsatz ermöglichen und andererseits zukünftig den Änderungsaufwand bei Detailänderungen (z.B. neues Namensschema für die Bilder; Bilder nicht mehr extern, sondern intern, oder umgekehrt; ...) geringer halten.

Einige der Imagelinks dienen der Anzeige von Illus aus den Atlan-Heften. Für diese Illus existiert inzwischen die Vorlage:ImageLink Illu Atlan. Die betroffenen Imagelinks müssen umgestellt werden.

Technische Details → Schritt 1

Links in Heftzusammenfassungen suchen. Besonderheit hier: KeineQuellenanzeige muss gesetzt werden, da bereits auf Quellen-Seite. Im Schritt 1 zunächst die "einfach" breiten Bilder.
Muster des Original-Textes:

\{\{Imagelink\|Link=\[\[Datei:A([0-9]+)Illu_([0-9]+)\.jpg\|180px\]\]\|Text=(.*)\}\}

Muster für die Ersetzung:

{{ImageLink Illu Atlan|Nummer=$1|IlluId=$2|Text=$3|KeineQuellenanzeige=-}}

Einschränkungen:

  • Nur Kategorie "Atlan-Heftroman".


Technische Details → Schritt 2 Links in Heftzusammenfassungen suchen. Besonderheit hier: KeineQuellenanzeige muss gesetzt werden, da bereits auf Quellen-Seite. Im Schritt 2 nun die "doppelt" breiten Bilder => Doppel muss gesetzt werden.
Muster des Original-Textes:

\{\{Imagelink\|Link=\[\[Datei:A([0-9]+)Illu_([0-9]+)\.jpg\|3[0-9]+px\]\]\|Text=(.*)\}\}

Muster für die Ersetzung:

{{ImageLink Illu Atlan|Nummer=$1|IlluId=$2|Text=$3|Doppel=-|KeineQuellenanzeige=-}}

Einschränkungen:

  • Nur Kategorie "Atlan-Heftroman".


Technische Details → Schritt 3
Im Wesentlichen Wiederholung von Schritt 1, allerdings muss zusätzlich das mit angegebene "Nummer" berücksichtig werden und es erfolgt nun keine Einschränkung mehr auf Heftzusammenfassungen.
Muster des Original-Textes:

\{\{Imagelink\|Link=\[\[Datei:A([0-9]+)Illu_([0-9]+)\.jpg\|180px\]\]\|Text=(.*)(\|Nummer=.*)\}\}

Muster für die Ersetzung:

{{ImageLink Illu Atlan|Nummer=$1|IlluId=$2|Text=$3}}

Einschränkungen:

  • --keine--


Technische Details → Schritt 4 Im Wesentlichen Wiederholung von Schritt 2, allerdings muss zusätzlich das mit angegebene "Nummer" berücksichtig werden und es erfolgt nun keine Einschränkung mehr auf Heftzusammenfassungen.
Muster des Original-Textes:

\{\{Imagelink\|Link=\[\[Datei:A([0-9]+)Illu_([0-9]+)\.jpg\|3[0-9]+px\]\]\|Text=(.*)(\|Nummer=.*)\}\}

Muster für die Ersetzung:

{{ImageLink Illu Atlan|Nummer=$1|IlluId=$2|Text=$3|Doppel=-}}

Einschränkungen:

  • --keine--



Zeilenumbruch vor Einheiten verhindern

Zwischen dem Wert einer Einheit und der zugehörigen (abgekürzten) Einheit soll kein Zeilenumbruch möglich sein. Texte wie beispielsweise »10 cm« müssen deshalb durch »10 cm« ersetzt werden. Für die Einheiten »cm«, »m«, »g«, »kg«, ist dies mittels des nebenstehenden regex automatisiert möglich.


Technische Details

Muster des Original-Textes:

([0-9]+) (cm|m|kg|g)([^a-zA-Z0-9äÄöÖüÜ])

Muster für die Ersetzung:

$1 $2$3

Einschränkungen:

  • Nur Hauptnamensraum.


Sortierung über PPDefaultsort

Mit der Vorlage:PPDefaultsort kann das für Kategorien gewünschte Sortierverhalten für eine große Anzahl von Artikeln erreicht werden.

Zum Zeitpunkt der Einführung der Vorlage existierten bereits mehrere tausend Artikel, bei denen nun die Vorlage gesetzt werden konnte/sollte.

Um dies zu erleichtern, wurde ein Vorgehen ausgearbeitet, das es in vier Schritten ermöglichte, einen Großteil dieser Arbeit zu übernehmen. Die verschiedenen Schritte wie auch Muster wurden auf die damals aktuelle Situation abgestimmt und bauten aufeinander auf.

  • Reihenfolge der Schritte 1 und 2 ist wichtig!
Je Buchstabe können Schritt 1 und 2 abwechselnd ausgeführt werden. Schritt 1 braucht aber die Daten, die durch Schritt 2 gelöscht werden. Also muss für jeden Teilabschnitt (z.B. Buchstaben) erst Schritt 1 und dann Schritt 2 ausgeführt werden.
Technische Details → Schritt 1

PPDefaultsort in allen Artikeln setzen, bei denen zu löschende SortKeys enthalten sind.
Suchmuster:

(\[\[ *Kategorie:[^]]*\|[^ 0-9][^]0-9,]*\][^}]*[^}])$

Muster zum Ersetzen:

$1

{{PPDefaultsort}}

Einschränkungen:

  • Nur Hauptnamensraum.
  • Da sehr viele Artikel betroffen sind auf Präfix (z.B. »A«, »B«, ...) einschränken.


Technische Details → Schritt 2

Alle zu löschenden SortKeys löschen.

Suchmuster:

\[\[ *Kategorie:([^]]*)\|[^ 0-9][^]0-9,]*\]\]

Muster zum Ersetzen:

[[Kategorie:$1]]

Einschränkungen:

  • Nur Hauptnamensraum.
  • Da sehr viele Artikel betroffen sind auf Präfix (z.B. »A«, »b«, ...) einschränken.
  • Mit den Schritten 3 und 4 werden Nacharbeiten im Bereich Personen ausgeführt.
Diese beiden Schritte könnten auch unabhängig von den ersten beiden ausgeführt werden. Man könnte auch erst Schritt 4 und dann Schritt 3 ausführen. Einfach um ein klares Vorgehen zu haben wird aber empfohlen, die vorgegebene Reihenfolge einzuhalten.
  • Abschließend alles überprüfen und eventuell notwendige manuelle Nachbesserungen ausführen. Für Einschränkungen siehe Diskussionsseite.


Für zukünftige Einsätze nach dem ersten Ausführen müssten sie entsprechend angepasst werden.


Technische Details → Schritt 3

Nacharbeit Kategorie Personen: Falsch gesetzte »Personen-Sortkeys« löschen

Suchmuster:

\[\[ *Kategorie:([^]P]+)\|[^ 0-9][^]0-9,]*,[^]0-9,]*\]\]

Muster zum Ersetzen:

[[Kategorie:$1]]

Einschränkungen:

  • Nur Hauptnamensraum.
  • Nur Kategorie Personen.
  • Da sehr viele Artikel betroffen sind auf Präfix (z.B. »A«, »B«, ...) einschränken.


Technische Details → Schritt 4

Nacharbeit Kategorie Personen: Bei allen Artikeln in der Kategorie Personen am Ende das PPDefaultsort setzen, falls es nicht bereits dort steht.

Suchmuster:

([^}][^}])$

Muster zum Ersetzen:

$1

{{PPDefaultsort}}

Einschränkungen:

  • Nur Hauptnamensraum.
  • Nur Kategorie Personen.
  • Da sehr viele Artikel betroffen sind auf Präfix (z.B. »A«, »B«, ...) einschränken.


PR Neo-Links

Links für Perry Rhodan Neo wurden anfangs folgendermaßen gesetzt: [[Perry Rhodan (PR Neo)|Perry Rhodan]].

Erst später wurde zur Vereinfachung die Formatvorlage {{PRNA|}} erstellt. Dadurch waren aber beiderlei Arten von Verlinkung anzutreffen.

Das folgende Verfahren stellt die Verlinkung nach dem alten Muster auf die neue Vorlage um.

  • Reihenfolge der Schritte 1 und 2 ist wichtig!
Im ersten Schritt werden nur die Links ersetzt, die vor und nach dem Pipe identisch sind.
Erst im zweiten Schritt dürfen die Links ersetzt werden, die vor und nach dem Pipe unterschiedlich sind.
Technische Details → Schritt 1

Links ersetzen, die vor und nach dem Pipe identisch sind.
Suchmuster:

\[\[([^\]]*)( | )\(PR Neo\)\|\1\]\]

Muster zum Ersetzen:

{{PRNA|$1}}

Einschränkungen:

  • Kategorie = Perry Rhodan Neo


Technische Details → Schritt 2

Links ersetzen, die vor und nach dem Pipe unterschiedlich sind.
Suchmuster:

\[\[([^\]]*) \(PR Neo\)\|([^\]]*)\]\]

Muster zum Ersetzen:

{{PRNA|$1|$2}}

Einschränkungen:

  • Kategorie = Perry Rhodan Neo
  • Bekannte Probleme:
Das Suchmuster ist noch fehlerhaft, auch die Kategorie-Links werden ersetzt. Aus [[Kategorie:Vision Terrania (PR Neo)| {{SortKey}}]] wird {{PRNA|Kategorie:Vision Terrania| {{SortKey}}}}. Da es sich um kaum mehr als eine Handvoll Fehler handelte, wurden die zuviel durchgeführten Ersetzungen manuell rückgängig gemacht.



Zeilenumbruch in Galaxiennamen verhindern

Galaxien-Katalognamen wie beispielsweise »M 13« sollen durch ein   zusammengehalten werden, um einen unerwünschten Zeilenumbruch zu verhindern.

Technische Details

Suchmuster:

(?<!:)\b(M|NGC|IC|HCG|UGC|PGC) ([0-9]+\b)(?![^\]]*\|)

Muster zum Ersetzen:

$1&nbsp;$2

Einschränkungen:

  • Nur Hauptnamensraum


Zeilenumbruch in Raumschiffsnamen verhindern

Raumschiffsnamen mit lateinischer Nummerierung wie beispielsweise »CREST II« sollen durch ein &nbsp; zusammengehalten werden, um einen unerwünschten Zeilenumbruch zu verhindern.

Technische Details

Suchmuster:

\b([-A-Z]+)( | )([IVXLCM]+)\b

Muster zum Ersetzen:

$1&nbsp;$3

Einschränkungen:

  • Die Redirects habe ich manuell abgewählt.


Auflösung Pipelinks

Pipelinks sind unnötig und können durch einen einfachen Link ersetzt werden, wenn vor und nach dem Pipe dasselbe steht. Insbesondere aber auch dann, wenn der einzige Unterschied vor und nach dem Pipe ein &nbsp; ist.

Technische Details

Suchmuster:

\[\[([^\]]+) ([^\]]+)\|\1( | )\2\]\]

Muster zum Ersetzen:

[[$1$3$2]]

Einschränkungen:

  • Namensraum Seiten, Perrypedia, Datei.


Zeilenumbruch in Quellenangabe verhindern

...

  • Zuletzt ausgeführt:
    • ...

Technische Details

...


Textersetzung ohne regex

Originaltext Ersetzt durch... Anwendungsgrund Angewendet ...von
Datumsformat: z.B. Fr., 15. Februar Freitag, 15. Februar Wunsch der User 16.02.2013 JoBot
Namen mit Abkürzungen
(z.B. Homer G. Adams)
&nbsp; eingefügt
(z.B. Homer G.&nbsp;Adams)
Vermeidung eines nicht gewünschten Zeilenumbruchs. 10.05.2012
17.05.2012
18.05.2012
19.05.2012 [1]
JoBot
JoBot
JoBot
JoBot
[[M 13|M&nbsp;13]] [[M&nbsp;13]] Auflösung des Pipe-Links. 04.05.2012 JoBot
M 13 M&nbsp;13 Vermeidung eines nicht gewünschten Zeilenumbruchs. 04.05.2012 JoBot
[[M 87|M&nbsp;87]] [[M&nbsp;87]] Auflösung des Pipe-Links. 20.05.2012 JoBot
[[Argan U|Argan&nbsp;U]] [[Argan&nbsp;U]] Auflösung des Pipe-Links. 05.05.2012 JoBot
Argan U Argan&nbsp;U Vermeidung eines nicht gewünschten Zeilenumbruchs. 05.05.2012 JoBot
Guan a Var Guan a&nbsp;Var Vermeidung eines nicht gewünschten Zeilenumbruchs. 09.05.2012 JoBot
[[Tatcher a Hainu|Tatcher a&nbsp;Hainu]] [[Tatcher a&nbsp;Hainu]] Auflösung des Pipe-Links. 10.05.2012 JoBot
Tatcher a Hainu Tatcher a&nbsp;Hainu Vermeidung eines nicht gewünschten Zeilenumbruchs. 10.05.2012 JoBot
[[M 30|M&nbsp;30]] [[M&nbsp;30]] Auflösung des Pipe-Links. 14.05.2012 JoBot
[[M 3|M&nbsp;3]] [[M&nbsp;3]] Auflösung des Pipe-Links. 14.05.2012 JoBot
[[CREST II|CREST&nbsp;II]] [[CREST&nbsp;II]] Auflösung des Pipe-Links. 14.05.2012 JoBot
[[CREST III|CREST&nbsp;III]] [[CREST&nbsp;III]] Auflösung des Pipe-Links. 14.05.2012 JoBot
[[CREST IV|CREST&nbsp;IV]] [[CREST&nbsp;IV]] Auflösung des Pipe-Links. 14.05.2012 JoBot
[[CREST V|CREST&nbsp;V]] [[CREST&nbsp;V]] Auflösung des Pipe-Links. 14.05.2012 JoBot
CREST II CREST&nbsp;II Vermeidung eines nicht gewünschten Zeilenumbruchs. 14.05.2012 JoBot
CREST III CREST&nbsp;III Vermeidung eines nicht gewünschten Zeilenumbruchs. 14.05.2012 JoBot
CREST IV CREST&nbsp;IV Vermeidung eines nicht gewünschten Zeilenumbruchs. 14.05.2012 JoBot
CREST V CREST&nbsp;V Vermeidung eines nicht gewünschten Zeilenumbruchs. 14.05.2012 JoBot
CREST VI CREST&nbsp;VI Vermeidung eines nicht gewünschten Zeilenumbruchs. 14.05.2012 JoBot
CREST XII CREST&nbsp;XII Vermeidung eines nicht gewünschten Zeilenumbruchs. 14.05.2012 JoBot
ANDROTEST I ANDROTEST&nbsp;I Vermeidung eines nicht gewünschten Zeilenumbruchs. 14.05.2012 JoBot
ANDROTEST II ANDROTEST&nbsp;II Vermeidung eines nicht gewünschten Zeilenumbruchs. 14.05.2012 JoBot
ANDROTEST III ANDROTEST&nbsp;III Vermeidung eines nicht gewünschten Zeilenumbruchs. 14.05.2012 JoBot
[[Arkon I|Arkon&nbsp;I]] [[Arkon&nbsp;I]] Auflösung des Pipe-Links. 15.05.2012 JoBot
[[Arkon II|Arkon&nbsp;II]] [[Arkon&nbsp;II]] Auflösung des Pipe-Links. 15.05.2012 JoBot
[[Arkon III|Arkon&nbsp;III]] [[Arkon&nbsp;III]] Auflösung des Pipe-Links. 15.05.2012 JoBot
Arkon I Arkon&nbsp;I Vermeidung eines nicht gewünschten Zeilenumbruchs. 15.05.2012 JoBot
Arkon II Arkon&nbsp;II Vermeidung eines nicht gewünschten Zeilenumbruchs. 15.05.2012 JoBot
Arkon III Arkon&nbsp;III Vermeidung eines nicht gewünschten Zeilenumbruchs. 15.05.2012 JoBot
,__ ,_ Doppeltes Leerzeichen nach einem Komma. 15.05.2012 JoBot
.__ ._ Doppeltes Leerzeichen nach einem Punkt. 15.05.2012 JoBot
XX. Monat XX.&nbsp;Monat Vermeidung eines nicht gewünschten Zeilenumbruchs. 15.05.2012 JoBot
Gonozal III. Gonozal&nbsp;III. Vermeidung eines nicht gewünschten Zeilenumbruchs. 16.05.2012 JoBot
Gonozal V. Gonozal&nbsp;V. Vermeidung eines nicht gewünschten Zeilenumbruchs. 16.05.2012 JoBot
Gonozal VI. Gonozal&nbsp;VI. Vermeidung eines nicht gewünschten Zeilenumbruchs. 16.05.2012 JoBot
Gonozal VII. Gonozal&nbsp;VII. Vermeidung eines nicht gewünschten Zeilenumbruchs. 16.05.2012 JoBot
Gonozal VIII. Gonozal&nbsp;VIII. Vermeidung eines nicht gewünschten Zeilenumbruchs. 16.05.2012 JoBot
Dr. Xxx Dr.&nbsp;Xxx Vermeidung eines nicht gewünschten Zeilenumbruchs. 18.05.2012 JoBot
[[Xxxx NGZ]] [[Xxxx&nbsp;NGZ]] Vermeidung eines nicht gewünschten Zeilenumbruchs. 25.05.2012 JoBot
[[Xx. Jahrhundert]] [[Xx.&nbsp;Jahrhundert]] Vermeidung eines nicht gewünschten Zeilenumbruchs. 25.05.2012 JoBot
[[Xx. Jahrhundert NGZ]] [[Xx.&nbsp;Jahrhundert&nbsp;NGZ]] Vermeidung eines nicht gewünschten Zeilenumbruchs. 25.05.2012 JoBot
{{PPDefaultsort}} Unnötiges {{PPDefaultsort}} in Kategorie »Planeten« entfernt. 29.05.2012 JoBot
{{PPDefaultsort}} Unnötiges {{PPDefaultsort}} in Kategorie »Personen« entfernt. 29.05.2012 JoBot
Standardisierte Tabellen-Lemmata:
»Galaxie«; »Spektraltyp«; »Stern«; »Planet«; »Mond«; »Solsystem«
[[Galaxie]]; [[Spektraltyp]]; [[Stern]]; [[Planet]]; [[Mond]]; [[Sol]]system Verlinkung 10.06.2012 JoBot


  1. Kategorie:Personen abgeschlossen am 19.05.2012. JoBot / Diskussion


Änderungen per Bot

Aktuell sind keine Bots aktiv.