Benutzer:PlasmarelaisBot: Unterschied zwischen den Versionen
imported>Plasmarelais K |
imported>Plasmarelais K |
||
Zeile 6: | Zeile 6: | ||
Der Klick eines Admins auf den nebenstehenden Alarmknopf dürfte die Arbeit des Bots im Notfall sofort einstellen! | Der Klick eines Admins auf den nebenstehenden Alarmknopf dürfte die Arbeit des Bots im Notfall sofort einstellen! | ||
− | python-portable.exe | + | python-portable.exe ma\pwb.py ma\scripts\script.py |
pwb.py scripts\script.py | pwb.py scripts\script.py |
Version vom 25. März 2014, 18:15 Uhr
Dies ist die Benutzerseite des PlasmarelaisBots, der mit Textersetzungen und Interwikilinks in der deutschsprachigen MA bislang 12.301 Bearbeitungen durchgeführt hat. Er wird von Plasmarelais betreut. Anmerkungen und Hinweise können bitte auf der Diskussionsseite von Plasmarelais hinterlassen werden.
Der Klick eines Admins auf den nebenstehenden Alarmknopf dürfte die Arbeit des Bots im Notfall sofort einstellen! python-portable.exe ma\pwb.py ma\scripts\script.py pwb.py scripts\script.py |
Dinge, von denen Plasmarelais glaubt, dass PlasmarelaisBot sie kann
- Hinzufügen von Text (z.B. für Kategorien u.ä.)
- einfache und komplexere Textersetzungen in allen/bestimmten Seiten bzw. in bestimmten Seitenmengen
- Interwiki-Links:
- in (de:) ergänzen, wenn eine verlinkte fremde Seite auf die neue Sprache linkt
- Seiten ohne IWL aufspüren
- fehlende IWL in anderen Sprachräumen auflisten
- doppelte/kaputte Redirects beheben/reparieren
- nicht erreichbare externe Links aufspüren
Technik
- Der Bot basiert auf dem Python Wikipediabot Framework (Wikipedia:Pywikipediabot in der Wikipedia): Download PyWikipediaBot
- Ausgeführt durch ActivePython : http://www.activestate.com/activepython/downloads
- Ersetzen von Umlauten u.ä. für Parameter -file: & -skipfile: Jeppe's Unicode Page
- Umfangreiche Hilfe zum Thema gibts im Artikel Using the python wikipediabot im mediawiki (beachte auch Unterseiten zu Scripts und entsprechende Diskussionen).
Bilderupload en masse mit Commonist 0.4.27
Updates
- 13.01.2009
- ActivePython 2.6.1.1
- 14.01.2009
- Edit: Fix incorrect export page (siehe MediaWiki)
Edit: Fix credit line (siehe Bots in der MA/en) - 13.05.2009
- ActivePython 2.6.2.2 (kein Fix credit line mehr nötig)
pywikipedia-nightly 6877 - 02.02.2011
- ActivePython 2.7
pywikipedia-nightly 8908 - 04.02.2011
- ActivePython 2.7.1.4
pywikipedia-nightly 9016 - 23.03.2014
- ActivePython 2.7.5
pywikipedia-nightly/core 2669
interwiki.py
weblinkchecker.py
replace.py
Vorschläge zur Textersetzung
Hier kann jeder Beispiele für häufig auftretende Tipp- und Rechtschreibfehler aufführen, die vom Bot behoben werden können. Die Liste von Tippfehlern gehe ich schon durch.
- Lizenzierung statt Lizensierung -- Plasmarelais Ξ TALK Ξ 19:51, 15. Jan. 2009 (UTC)
- muss statt muß bzw. außerdem statt ausserdem wurde ja schon angefangen, per Hand zu ändern. Das wäre eine gute Aufgabe für den Bot. Es können dann aber auch Probleme entstehen, das hatten wir ja hier. Und den Bot hierbei jedes Mal zu überprüfen... Was meint ihr?--Andy Riker < just talk> 20:00, 15. Jan. 2009 (UTC)
Jobs
- Ersetzungen:
- „Lizensierung“ ersetzt durch „Lizenzierung“
- „entgültig“ ersetzt durch „endgültig“
- „Enterpise“ ersetzt durch „Enterprise“
- „Förderation“ ersetzt durch „Föderation“
- „gesammt“ ersetzt durch „gesamt“
- „der selbe“ ersetzt durch „derselbe“
- „herraus“ ersetzt durch „heraus“
- „aussen“/„ausser“ ersetzt durch „außen“/„außer“
- „währe“ ersetzt durch „wäre“
- „daß“ ersetzt durch „dass“
- ~„aßt“/~„ußt“ ersetzt durch ~„asst“/~„usst“
- alte Quellen ohne Vorlage durch Suche von ([[XYZ]]: und ''[[XYZ]]: aufgespürt
- <br style="clear:both;" /> ersetzt gegen {{clear}}
- Episoden-Sidebar in VOY (weitgehend)
Code:replace.py -regex -links:Benutzer:Plasmarelais/Test "colspan=\"2\" align=\"center\" \| \[\[Bild:" " Bild= " "\{\| class=\"wiki-sidebar\" align=\"right\"\s\s" "{{Episoden-Sidebar|\n| Titel= {{PAGENAME}}\n" "\| class=\"odd\"\|Serie:\s\s\| class=\"even\"\|\[\[" "| Serie= " "\| class=\"odd\"\|Staffel:\s\s\| class=\"even\"\|\[\[VOY Staffel" "| Staffel=" "\|[1-7]{1}\]\]" "\n| Episode= " "\| class=\"odd\"\|dt\. Erstaus-<br/>strahlung:\s\s\| class=\"even\"\|(?P<Tde>[0-9]{2})[.](?P<Mde>[0-9]{2})[.](?P<Jde>[0-9]{4})" "| AusstrahlJahrDe= \g<Jde>\n|AusstrahlMonatDe= \g<Mde>\n| AusstrahlTagDe= \g<Tde>" "\| class=\"odd\"\|Orig. Erst-<br/>ausstrahlung:\s\s\| class=\"even\"\|(?P<Ten>[0-9]{2})[.](?P<Men>[0-9]{2})[.](?P<Jen>[0-9]{4})" "| AusstrahlJahr= \g<Jen>\n| AusstrahlMonat= \g<Men>\n| AusstrahlTag= \g<Ten>" "\| class=\"odd\"\|Originaltitel:\s\s\| class=\"even\"\|\[\[:en:(?P<OL>.+?)\|(?P<OT>.+?)\]\]" "| OriginalLink= [[:en:\g<OL>]]\n| OriginalTitel= \g<OT>" "\| class=\"odd\"\|Prod\. Nr:\s\s\| class=\"even\"\|" "| ProdNr= " "\| class=\"odd\"\|Jahr:\s\s\| class=\"even\"\|\[\[" "| Jahr= " "\| class=\"odd\"\|Sternzeit:\s\s\| class=\"even\"\|" "| ErsteSternzeit= " "\| class=\"odd\"\|Story:\s\s\| class=\"even\"\|" "| LetzteSternzeit= \n| Story= " "\| class=\"odd\"\|Drehbuch:\s\s\| class=\"even\"\|" "| Drehbuch= " "\| class=\"odd\"\|Regie:\s\s\| class=\"even\"\|" "| Regie= " "\| class=\"odd\"\|Autor:\s\s\| class=\"even\"\|" "| Autor= " "\|-\s\s" "" "\|-" "" "\|200px\]\]" "" "\|\}" "|RemAusstrahlJahr=\n|RemAusstrahlMonat=\n| RemAusstrahlTag=\n}}" "Serie= VOY\]\]" "Serie= VOY" "Jahr= 237(?P<year>[0-9]{1})\]\]" "Jahr= 237\g<year>" -summary:Episodensidebar
- Episoden-Sidebar in DS9 (weitgehend)
Code:replace.py -regex -links:Benutzer:Plasmarelais/Test "\[\[Image:" "[[Bild:" "Autoren:" "Autor:" "colspan=\"2\".*\[\[Bild:" " Bild= " "\{\| class=\"wiki-sidebar\" align=\"right\"\s\s" "{{Episoden-Sidebar|\n| Titel= {{PAGENAME}}\n| Bild= \n" "\| class=\"odd\"\|Serie:\s\s\| class=\"even\"\|\[\[" "| Serie= " "\| class=\"odd\"\|Staffel:\s\s\| class=\"even\"\|\[\[DS9 Staffel" "| Staffel=" "\|[1-7]{1}\]\]" "\n| Episode= " "\| class=\"odd\"\|dt\. Erstaus-<br/>strahlung:\s\s\| class=\"even\"\|(?P<Tde>[0-9]{2})[.](?P<Mde>[0-9]{2})[.](?P<Jde>[0-9]{4})" "| AusstrahlJahrDe= \g<Jde>\n|AusstrahlMonatDe= \g<Mde>\n| AusstrahlTagDe= \g<Tde>" "\| class=\"odd\"\|Orig. Erst-<br/>ausstrahlung:\s\s\| class=\"even\"\|(?P<Ten>[0-9]{2})[.](?P<Men>[0-9]{2})[.](?P<Jen>[0-9]{4})" "| AusstrahlJahr= \g<Jen>\n| AusstrahlMonat= \g<Men>\n| AusstrahlTag= \g<Ten>" "\| class=\"odd\"\|Originaltitel:\s\s\| class=\"even\"\|\[\[:en:(?P<OL>.+?)\|(?P<OT>.+?)\]\]" "| OriginalLink= [[:en:\g<OL>]]\n| OriginalTitel= \g<OT>" "\| class=\"odd\"\|Prod\. Nr:\s\s\| class=\"even\"\|" "| ProdNr= " "\| class=\"odd\"\|Jahr:\s\s\| class=\"even\"\|\[\[" "| Jahr= " "\| class=\"odd\"\|Sternzeit:\s\s\| class=\"even\"\|(?P<sdate>.+?)\s\s" "| ErsteSternzeit= \g<sdate>\n| LetzteSternzeit= \n" "\| class=\"odd\"\|Story:\s\s\| class=\"even\"\|" "| Story= " "Teleplay:" "Drehbuch:" "\| class=\"odd\"\|Drehbuch:\s\s\| class=\"even\"\|" "| Drehbuch= " "\| class=\"odd\"\|Regie:\s\s\| class=\"even\"\|" "| Regie= " "\| class=\"odd\"\|Autor:\s\s\| class=\"even\"\|" "| Autor= " "\|-\s\s" "" "\|-" "" "\|200px\]\]" "" "\|\}" "|RemAusstrahlJahr=\n|RemAusstrahlMonat=\n| RemAusstrahlTag=\n}}" "Serie= DS9\]\]" "Serie= DS9" "Jahr= 237(?P<year>[0-9]{1})\]\]" "Jahr= 237\g<year>" "(?P<attr>[A-Za-z]{5,8})= \[\[(?P<argum>.+?)\]\]" "\g<attr>= \g<argum>" "\| Bild=\s\s\| Bild=" "| Bild=" -summary:Episodensidebar
- Episoden-Sidebar in ENT (weitgehend)
Code:replace.py -regex -page:Horizon "\[\[Image:" "[[Bild:" "Autoren:" "Autor:" "colspan=\"2\".*\[\[Bild:" " Bild= " "\{\| class=\"wiki-sidebar\" align=\"right\"\s\s" "{{Episoden-Sidebar|\n| Titel= {{SUBST:PAGENAME}}\n| Bild= \n" "\| class=\"odd\"\|Serie:\s\s\| class=\"even\"\|\[\[" "| Serie= " "\| class=\"odd\"\|Staffel:\s\s\| class=\"even\"\|\[\[ENT Staffel" "| Staffel=" "\|[1-7]{1}\]\]" "\n| Episode= " "\| class=\"odd\"\|dt\. Erstaus-<br/>strahlung:\s\s\| class=\"even\"\|(?P<Tde>[0-9]{2})[.](?P<Mde>[0-9]{2})[.](?P<Jde>[0-9]{4})" "| AusstrahlJahrDe= \g<Jde>\n|AusstrahlMonatDe= \g<Mde>\n| AusstrahlTagDe= \g<Tde>" "\| class=\"odd\"\|Orig\. Erst-<br/>ausstrahlung:\s\s\| class=\"even\"\|(?P<Ten>[0-9]{2})[.](?P<Men>[0-9]{2})[.](?P<Jen>[0-9]{4})" "| AusstrahlJahr= \g<Jen>\n| AusstrahlMonat= \g<Men>\n| AusstrahlTag= \g<Ten>" "\| class=\"odd\"\|Originaltitel:\s\s\| class=\"even\"\|\[\[:en:(?P<OL>.+?)\|(?P<OT>.+?)\]\]" "| OriginalLink= [[:en:\g<OL>]]\n| OriginalTitel= \g<OT>" "\| class=\"odd\"\|Prod\. Nr:\s\s\| class=\"even\"\|" "| ProdNr= " "\| class=\"odd\"\|Jahr:\s\s\| class=\"even\"\|\[\[" "| Jahr= " "\| class=\"odd\"\|Datum:\s\s\| class=\"even\"\|(?P<sdate>.+?)\s\s" "| Datum= \g<sdate>\n" "\| class=\"odd\"\|Story:\s\s\| class=\"even\"\|" "| Story= " "Teleplay:" "Drehbuch:" "\| class=\"odd\"\|Drehbuch:\s\s\| class=\"even\"\|" "| Drehbuch= " "\| class=\"odd\"\|Regie:\s\s\| class=\"even\"\|" "| Regie= " "\| class=\"odd\"\|Autor:\s\s\| class=\"even\"\|" "| Autor= " "\|-\s\s" "" "\|-" "" "\|200px\]\]" "" "\|\}" "|RemAusstrahlJahr=\n|RemAusstrahlMonat=\n| RemAusstrahlTag=\n}}" "Serie= ENT\]\]" "Serie= ENT" "Jahr= 215(?P<year>[0-9]{1})\]\]" "Jahr= 215\g<year>" "(?P<attr>[A-Za-z]{5,8})= \[\[(?P<argum>.+?)\]\]" "\g<attr>= \g<argum>" "\| Bild=\s\s\| Bild=" "| Bild=" -summary:Episodensidebar
- Einbinden der Vorlage TOS-R im Namensraum Datei
Code:replace.py -start:Datei:! -regex "\(\{\{TOS\|(?P<Eps>.+?)\}\} - \[\[TOS Remastered\|Remastered\]\]\)" "({{TOS-R|\g<Eps>}})" -summary:Vorlage_TOS-R
replace.py -start:Datei:! -regex "\(\{\{TOS\|(?P<Eps>.+?)\}\} - \[\[Star Trek: The Original Series - Remastered\|Remastered\]\]\)" "({{TOS-R|\g<Eps>}})" -summary:Vorlage_TOS-R
- Ersetze Dateilinks entsprechend Verschiebung: 201 Änderungen
- Datumsseiten: Füge Definitionsliste hinzu, ändere „US Erstausstrahlung“ in „US-Erstausstrahlung“, lösche „<noinclude></noinclude>“
Code:replace.py -file:tage.txt -regex "'''(?P<year>[0-9]{4})''': " ";\g<year>:" "'''(?P<year>[0-9]{4}):''' " ";\g<year>:" "\s\s\s\s" "\n" "US Erstausstrahlung" "US-Erstausstrahlung" "<noinclude></noinclude>\s\s" "" -summary:"Bot: Definitionsliste, Bindestrich"
- Drei Punkte
...
durch Auslassungszeichen…
ersetzt:
Code:replace.py -regex "\.\.\.(?!\]\])(?! (episode))(?!(episode))" "…" -summary:"Bot: Tausche ... gegen …" -start:!
- Bindestrich - an passender Stelle gegen Gedankenstrich – ersetzt:
Code:replace.py -regex "(?P<vorne>[A-Za-zÄÖÜäöüß]{1}) - (?P<hinten>[A-Za-zÄÖÜäöü]{1}(?!abu, Teil)(?!as Spiel)(?!nerwünscht)(?!andenwesen)(?!on A bis Z)(?!ergessenheit)(?!er Mächtige)(?!emastered)(?!lite Force)(?!he MovieCollection)(?!rossroads)(?!ie Realisierung einer Idee)(?!ominion Wars)(?!he Fallen)(?!ie verlorene Generation)(?!mpires)(?!rion Pirates)(?! Final Unity)(?!irth of the Federation)(?!ncounter at Farpoint)(?!lingon Honor Guard)(?!riginal Television Soundtrack)(?!ountdown)(?!hase II)(?!fter Eight)(?!amily Matters)(?!ouble Seven)(?!en Forward)(?!er Vater des Transporters)(?!ie absolute Rache)(?!ein Verbündeter)(?!ie Classic Serie)(?!ödlicher Staub aus))" "\g<vorne> – \g<hinten>" "\]\] - (?P<hinten1>[A-Za-zäöüß]{1})" "]] – \g<hinten1>" "(?P<vorne1>[A-Za-zäöüÄÖÜß]{1}) - \[\[" "\g<vorne1> – [[" "\]\] - \[\[" "]] – [[" -summary:"Bot:Tausche - gegen –" -start:!
- Vorlage:S für die einheitliche Darstellung der Serientitel einbauen:
Code:replace.py -regex "\'\'\[\[Star Trek: The Original Series\]\]\'\'" "{{S|TOS}}" "\'\'\"\[\[Star Trek: The Original Series\]\]\"\'\'" "{{S|TOS}}" "\"\[\[Star Trek: The Original Series\]\]\"" "{{S|TOS}}" "„\[\[Star Trek: The Original Series\]\]“" "{{S|TOS}}" "\[\[Star Trek: The Original Series\]\]" "{{S|TOS}}" "\'\'\[\[Star Trek: The Animated Series\]\]\'\'" "{{S|TAS}}" "\'\'\"\[\[Star Trek: The Animated Series\]\]\"\'\'" "{{S|TAS}}" "\"\[\[Star Trek: The Animated Series\]\]\"" "{{S|TAS}}" "„\[\[Star Trek: The Animated Series\]\]“" "{{S|TAS}}" "\[\[Star Trek: The Animated Series\]\]" "{{S|TAS}}" "\'\'\[\[Star Trek: The Next Generation\]\]\'\'" "{{S|TNG}}" "\'\'\"\[\[Star Trek: The Next Generation\]\]\"\'\'" "{{S|TNG}}" "\"\[\[Star Trek: The Next Generation\]\]\"" "{{S|TNG}}" "„\[\[Star Trek: The Next Generation\]\]“" "{{S|TNG}}" "\[\[Star Trek: The Next Generation\]\]" "{{S|TNG}}" "\'\'\[\[Star Trek: Deep Space Nine\]\]\'\'" "{{S|DS9}}" "\'\'\"\[\[Star Trek: Deep Space Nine\]\]\"\'\'" "{{S|DS9}}" "\"\[\[Star Trek: Deep Space Nine\]\]\"" "{{S|DS9}}" "„\[\[Star Trek: Deep Space Nine\]\]“" "{{S|DS9}}" "\[\[Star Trek: Deep Space Nine\]\]" "{{S|DS9}}" "\'\'\[\[Star Trek: Voyager\]\]\'\'" "{{S|VOY}}" "\'\'\"\[\[Star Trek: Voyager\]\]\"\'\'" "{{S|VOY}}" "\"\[\[Star Trek: Voyager\]\]\"" "{{S|VOY}}" "„\[\[Star Trek: Voyager\]\]“" "{{S|VOY}}" "\[\[Star Trek: Voyager\]\]" "{{S|VOY}}" "\'\'\[\[Star Trek: Enterprise\]\]\'\'" "{{S|ENT}}" "\'\'\"\[\[Star Trek: Enterprise\]\]\"\'\'" "{{S|ENT}}" "\"\[\[Star Trek: Enterprise\]\]\"" "{{S|ENT}}" "„\[\[Star Trek: Enterprise\]\]“" "{{S|ENT}}" "\[\[Star Trek: Enterprise\]\]" "{{S|ENT}}" -start:J -summary:"Bot: [[Vorlage:S|Vorlage für Serientitel]]"
replace.py -regex "\'\'\[\[Star Trek: Raumschiff Voyager\]\]\'\'" "{{S|VOY}}" "\'\'\"\[\[Star Trek: Raumschiff Voyager\]\]\"\'\'" "{{S|VOY}}" "\"\[\[Star Trek: Raumschiff Voyager\]\]\"" "{{S|VOY}}" "„\[\[Star Trek: Raumschiff Voyager\]\]“" "{{S|VOY}}" "\[\[Star Trek: Raumschiff Voyager\]\]" "{{S|VOY}}" "\'\'\[\[Star Trek: Das nächste Jahrhundert\]\]\'\'" "{{S|TNG}}" "\'\'\"\[\[Star Trek: Das nächste Jahrhundert\]\]\"\'\'" "{{S|TNG}}" "\"\[\[Star Trek: Das nächste Jahrhundert\]\]\"" "{{S|TNG}}" "„\[\[Star Trek: Das nächste Jahrhundert\]\]“" "{{S|TNG}}" "\[\[Star Trek: Das nächste Jahrhundert\]\]" "{{S|TNG}}" -start:Ger -summary:"Bot: [[Vorlage:S|Vorlage für Serientitel]]"
- Code zum Einpflegen des Namensraums "Datei":
Code:replace.py -regex -summary:"Bot: Ersetze Namensraum Imag e, File, Bild durch Datei" "\[\[Image:" "[[Datei:" "\[\[File:" "[[Datei:" "\[\[Bild:" "[[Datei:" "\s\sImage:" "\nDatei:" "\s\sFile:" "\nDatei:" "\s\sBild:" "\nDatei:" -start:!
- Einbinden der Vorlage:Screencap in den Datei-Namensraum:
Code:replace.py -summary:"Bot: [[Vorlage:Screencap]]" -regex "\(\{\{(?P<Serie>[A-Za-z0-9]{3,4})\|" "({{Screencap|\g<Serie>|" -start:Datei:!
- Linkfixes für NavLeisten nach Verschiebungen:
Code:replace.py -summary:"Bot: Navigationsleiste" -ref:"Vorlage:NAME" "NAME}}" "Navigationsleiste NAME}}"
- Präfix nm in Vorlage:IMDB setzen:
Code:replace.py -summary:"Bot: ergänze nm-Präfix in [[Vorlage:IMDB]]" -regex "\{\{IMDB\|ID=(?P<ID>[0-9]{3,})\|" "{{IMDB|ID=nm\g<ID>|" "\{\{imdb\|id=(?P<ID>[0-9]{3,})\|" "{{IMDB|ID=nm\g<ID>|" "\{\{imdb\|ID=(?P<ID>[0-9]{3,})\|" "{{IMDB|ID=nm\g<ID>|" "\{\{IMDB\|id=(?P<ID>[0-9]{3,})\|" "{{IMDB|ID=nm\g<ID>|" -start:!
replace.py -summary:"Bot: ergänze nm-Präfix in [[Vorlage:IMDB]]" -regex "\{\{IMDB\|NAME=(?P<Name>.+?)\|ID=(?P<ID>[0-9]{3,})\|" "{{IMDB|ID=nm\g<ID>|NAME=\g<Name>|" "\{\{imdb\|name=(?P<Name>.+?)\|id=(?P<ID>[0-9]{3,})\|" "{{IMDB|ID=nm\g<ID>|NAME=\g<Name>|" -start:!
- Zusammenfassen der Vorlagenwerte, siehe Diskussion:
Code:replace.py -cat:"Episode (TOS)" -regex -summary:"Bot: Zusammenfassen der Vorlagenwerte, siehe [[Vorlage_Diskussion:Episoden-Sidebar#.C3.84nderungen_an_der_Sidebar|Diskussion]]" -excepttext:"{{InArbeit" -excepttext:"{{inArbeit" "\| Autor[0-9]{1}= \s\s" "" "\| Story[0-9]{1}= \s\s" "" "\| Drehbuch[0-9]{1}= \s\s" "" "\| Regie[0-9]{1}= \s\s" "" "\| Autor2= " " " "\| Autor3= " " " "\| Autor4= " " " "\| Drehbuch2= " " " "\| Drehbuch3= " " " "\| Drehbuch4= " " " "\| Drehbuch5= " " " "\| Story2= " " " "\| Story3= " " " "\| Story4= " " " "\| Story5= " " " "\| Regie2= " " " "\| AusstrahlJahr= (?P<AirY>[0-9]{4})\s\s\| AusstrahlMonat= (?P<AirM>[0-9]{2})\s\s\| AusstrahlTag= (?P<AirD>[0-9]{2})" "| Erstaustrahlung= \g<AirY>-\g<AirM>-\g<AirD>" "\| AusstrahlJahrDe= (?P<DeY>[0-9]{4})\s\s\|AusstrahlMonatDe= (?P<DeM>[0-9]{2})\s\s\| AusstrahlTagDe= (?P<DeD>[0-9]{2})" "|DtErstaustrahlung= \g<DeY>-\g<DeM>-\g<DeD>" "\|RemAusstrahlJahr= (?P<RemY>[0-9]{4})\s\s\|RemAusstrahlMonat= (?P<RemM>[0-9]{2})\s\s\| RemAusstrahlTag= (?P<RemD>[0-9]{2})" "| RemAustrahlung= \g<RemY>-\g<RemM>-\g<RemD>" "\|RemAusstrahlJahr= (?P<RemY>[0-9]{0})\s\s\|RemAusstrahlMonat= (?P<RemM>[0-9]{0})\s\s\| RemAusstrahlTag= (?P<RemD>[0-9]{0})" "| RemAustrahlung= \g<RemY>\g<RemM>\g<RemD>" "\| ErsteSternzeit= (?P<SZ1>.*?)\s\s\| LetzteSternzeit= (?P<SZ2>.*?)" "| Sternzeit= \g<SZ1>\n \g<SZ2>" "\| Jahr= (?P<Y>[0-9]{4})\s\s\| Monat= (?P<M>[0-9]{2})\s\s\| Tag= (?P<D>[0-9]{2})" "| Datum= \g<Y>-\g<M>-\g<D>" "\| Jahr= " "| Datum= " "\| Monat= \s\s" "" "\| Tag= \s\s" ""
replace.py -cat:"Episode (TAS)" -regex -summary:"Bot: Zusammenfassen der Vorlagenwerte, siehe [[Vorlage_Diskussion:Episoden-Sidebar#.C3.84nderungen_an_der_Sidebar|Diskussion]]" "\| Autor[0-9]{1}= \s\s" "" "\| Story[0-9]{1}= \s\s" "" "\| Drehbuch[0-9]{1}= \s\s" "" "\| Regie[0-9]{1}= \s\s" "" "\| Autor2= " " " "\| Autor3= " " " "\| Autor4= " " " "\| Drehbuch2= " " " "\| Drehbuch3= " " " "\| Drehbuch4= " " " "\| Drehbuch5= " " " "\| Story2= " " " "\| Story3= " " " "\| Story4= " " " "\| Story5= " " " "\| Regie2= " " " "\| AusstrahlJahr= (?P<AirY>[0-9]{4})\s\s\| AusstrahlMonat= (?P<AirM>[0-9]{2})\s\s\| AusstrahlTag= (?P<AirD>[0-9]{2})" "| Erstaustrahlung= \g<AirY>-\g<AirM>-\g<AirD>" "\| AusstrahlJahrDe= (?P<DeY>[0-9]{4})\s\s\|AusstrahlMonatDe= (?P<DeM>[0-9]{2})\s\s\| AusstrahlTagDe= (?P<DeD>[0-9]{2})" "|DtErstaustrahlung= \g<DeY>-\g<DeM>-\g<DeD>" "\| AusstrahlJahrDe= (?P<DeY>[0-9]{0})\s\s\|AusstrahlMonatDe= (?P<DeM>[0-9]{0})\s\s\| AusstrahlTagDe= (?P<DeD>[0-9]{0})" "|DtErstaustrahlung= \g<DeY>\g<DeM>\g<DeD>" "\|RemAusstrahlJahr= (?P<RemY>[0-9]{0})\s\s\|RemAusstrahlMonat= (?P<RemM>[0-9]{0})\s\s\| RemAusstrahlTag= (?P<RemD>[0-9]{0})" "| RemAustrahlung= \g<RemY>\g<RemM>\g<RemD>" "\| ErsteSternzeit= (?P<SZ1>.*?)\s\s\| LetzteSternzeit= (?P<SZ2>.*?)" "| Sternzeit= \g<SZ1>\n \g<SZ2>" "\| Jahr= (?P<Y>[0-9]{4})\s\s\| Monat= (?P<M>[0-9]{2})\s\s\| Tag= (?P<D>[0-9]{2})" "| Datum= \g<Y>-\g<M>-\g<D>" "\| Jahr= " "| Datum= " "\| Monat= \s\s" "" "\| Tag= \s\s" ""
replace.py -cat:"Episode (TNG)" -regex -summary:"Bot: Zusammenfassen der Vorlagenwerte, siehe [[Vorlage_Diskussion:Episoden-Sidebar#.C3.84nderungen_an_der_Sidebar|Diskussion]]" "\| Autor[0-9]{1}= \s\s" "" "\| Story[0-9]{1}= \s\s" "" "\| Drehbuch[0-9]{1}= \s\s" "" "\| Regie[0-9]{1}= \s\s" "" "\| Autor2= " " " "\| Autor3= " " " "\| Autor4= " " " "\| Drehbuch2= " " " "\| Drehbuch3= " " " "\| Drehbuch4= " " " "\| Drehbuch5= " " " "\| Story2= " " " "\| Story3= " " " "\| Story4= " " " "\| Story5= " " " "\| Regie2= " " " "\| AusstrahlJahr= (?P<AirY>[0-9]{4})\s\s\| AusstrahlMonat= (?P<AirM>[0-9]{2})\s\s\| AusstrahlTag= (?P<AirD>[0-9]{2})" "| Erstaustrahlung= \g<AirY>-\g<AirM>-\g<AirD>" "\| AusstrahlJahrDe= (?P<DeY>[0-9]{4})\s\s\|AusstrahlMonatDe= (?P<DeM>[0-9]{2})\s\s\| AusstrahlTagDe= (?P<DeD>[0-9]{2})" "|DtErstaustrahlung= \g<DeY>-\g<DeM>-\g<DeD>" "\| AusstrahlJahrDe= (?P<DeY>[0-9]{0})\s\s\|AusstrahlMonatDe= (?P<DeM>[0-9]{0})\s\s\| AusstrahlTagDe= (?P<DeD>[0-9]{0})" "|DtErstaustrahlung= \g<DeY>\g<DeM>\g<DeD>" "\|RemAusstrahlJahr= (?P<RemY>[0-9]{0})\s\s\|RemAusstrahlMonat= (?P<RemM>[0-9]{0})\s\s\| RemAusstrahlTag= (?P<RemD>[0-9]{0})" "| RemAustrahlung= \g<RemY>\g<RemM>\g<RemD>" "\| ErsteSternzeit= (?P<SZ1>.*?)\s\s\| LetzteSternzeit= (?P<SZ2>.*?)" "| Sternzeit= \g<SZ1>\n \g<SZ2>" "\| Jahr= (?P<Y>[0-9]{4})\s\s\| Monat= (?P<M>[0-9]{2})\s\s\| Tag= (?P<D>[0-9]{2})" "| Datum= \g<Y>-\g<M>-\g<D>" "\| Jahr= " "| Datum= " "\| Monat= \s\s" "" "\| Tag= \s\s" ""
replace.py -cat:"Episode (DS9)" -excepttext:"{{InArbeit" -excepttext:"{{inArbeit" -regex -summary:"Bot: Zusammenfassen der Vorlagenwerte, siehe [[Vorlage_Diskussion:Episoden-Sidebar#.C3.84nderungen_an_der_Sidebar|Diskussion]]" "\| Autor[0-9]{1}= \s\s" "" "\| Story[0-9]{1}= \s\s" "" "\| Drehbuch[0-9]{1}= \s\s" "" "\| Regie[0-9]{1}= \s\s" "" "\| Autor2= " " " "\| Autor3= " " " "\| Autor4= " " " "\| Drehbuch2= " " " "\| Drehbuch3= " " " "\| Drehbuch4= " " " "\| Drehbuch5= " " " "\| Story2= " " " "\| Story3= " " " "\| Story4= " " " "\| Story5= " " " "\| Regie2= " " " "\| AusstrahlJahr= (?P<AirY>[0-9]{4})\s\s\| AusstrahlMonat= (?P<AirM>[0-9]{2})\s\s\| AusstrahlTag= (?P<AirD>[0-9]{2})" "| Erstaustrahlung= \g<AirY>-\g<AirM>-\g<AirD>" "\| AusstrahlJahrDe= (?P<DeY>[0-9]{4})\s\s\|AusstrahlMonatDe= (?P<DeM>[0-9]{2})\s\s\| AusstrahlTagDe= (?P<DeD>[0-9]{2})" "|DtErstaustrahlung= \g<DeY>-\g<DeM>-\g<DeD>" "\| AusstrahlJahrDe= (?P<DeY>[0-9]{0})\s\s\|AusstrahlMonatDe= (?P<DeM>[0-9]{0})\s\s\| AusstrahlTagDe= (?P<DeD>[0-9]{0})" "|DtErstaustrahlung= \g<DeY>\g<DeM>\g<DeD>" "\|RemAusstrahlJahr=(?P<RemY>.*?)\s\s\|RemAusstrahlMonat=(?P<RemM>.*?)\s\s\| RemAusstrahlTag=(?P<RemD>.*?)" "| RemAustrahlung= " "\| ErsteSternzeit=(?P<SZ1>.*?)\s\s\| LetzteSternzeit=(?P<SZ2>.*?)" "| Sternzeit=\g<SZ1>\n \g<SZ2>" "\| Jahr= (?P<Y>[0-9]{4})\s\s\| Monat= (?P<M>[0-9]{2})\s\s\| Tag= (?P<D>[0-9]{2})" "| Datum= \g<Y>-\g<M>-\g<D>" "\| Jahr= " "| Datum= " "\| Monat= \s\s" "" "\| Tag= \s\s" ""
replace.py -cat:"Episode (VOY)" -regex -summary:"Bot: Zusammenfassen der Vorlagenwerte, siehe [[Vorlage_Diskussion:Episoden-Sidebar#.C3.84nderungen_an_der_Sidebar|Diskussion]]" "\| Autor[0-9]{1}= \s\s" "" "\| Story[0-9]{1}= \s\s" "" "\| Drehbuch[0-9]{1}= \s\s" "" "\| Regie[0-9]{1}= \s\s" "" "\| Autor2= " " " "\| Autor3= " " " "\| Autor4= " " " "\| Drehbuch2= " " " "\| Drehbuch3= " " " "\| Drehbuch4= " " " "\| Drehbuch5= " " " "\| Story2= " " " "\| Story3= " " " "\| Story4= " " " "\| Story5= " " " "\| Regie2= " " " "\| AusstrahlJahr= (?P<AirY>[0-9]{4})\s\s\| AusstrahlMonat= (?P<AirM>[0-9]{2})\s\s\| AusstrahlTag= (?P<AirD>[0-9]{2})" "| Erstaustrahlung= \g<AirY>-\g<AirM>-\g<AirD>" "\| AusstrahlJahrDe= (?P<DeY>[0-9]{4})\s\s\|AusstrahlMonatDe= (?P<DeM>[0-9]{2})\s\s\| AusstrahlTagDe= (?P<DeD>[0-9]{2})" "|DtErstaustrahlung= \g<DeY>-\g<DeM>-\g<DeD>" "\| AusstrahlJahrDe= (?P<DeY>[0-9]{0})\s\s\|AusstrahlMonatDe= (?P<DeM>[0-9]{0})\s\s\| AusstrahlTagDe= (?P<DeD>[0-9]{0})" "|DtErstaustrahlung= \g<DeY>\g<DeM>\g<DeD>" "\|RemAusstrahlJahr=(?P<RemY>.*?)\s\s\|RemAusstrahlMonat=(?P<RemM>.*?)\s\s\| RemAusstrahlTag=(?P<RemD>.*?)" "| RemAustrahlung= " "\| ErsteSternzeit=(?P<SZ1>.*?)\s\s\| LetzteSternzeit=(?P<SZ2>.*?)" "| Sternzeit=\g<SZ1>\n \g<SZ2>" "\| Jahr= (?P<Y>[0-9]{4})\s\s\| Monat= (?P<M>[0-9]{2})\s\s\| Tag= (?P<D>[0-9]{2})" "| Datum= \g<Y>-\g<M>-\g<D>" "\| Jahr= " "| Datum= " "\| Monat= \s\s" "" "\| Tag= \s\s" "" "\| ErsteSternzeit=(?P<SZ1>.*?)\s\s\| (?P<SDf>.*?(?!LetzteSternzeit))" "| Sternzeit=\g<SZ1>\n \n| \g<SDf>"
ENT
- LookAhead/LookBehind:
Code:replace.py "(?<!Planet )Angel One" "Angel I" -regex -start:!
- Linkfixes nach Episodenverschiebung:
Code:replace.py -regex "\{\{(?P<prefix>[SERe]{1,3}?)\|(?P<E1>.*?)NAME_ALT(?P<E2>.*?)\}\}" "{{\g<prefix>|\g<E1>NAME_NEU\g<E2>}}" -summary:"Bot: Quellen-Fix nach Verschiebung der Episode [[NAME_ALT]] → [[NAME_NEU]]" -excepttext:"\{\{[Ii]n [Aa]rbeit" -excepttext:"\{\{[Ii]n[Aa]rbeit" -ns:0 -ns:4 -ns:6 -ns:10 -pt:00 -ref:"NAME_ALT"
replace.py -regex "\{\{[Ss]creencap\|SER\|NAME_ALT\}\}" "{{Screencap|SER|NAME_NEU}}" -summary:"Bot: Quellen-Fix nach Verschiebung der Episode [[NAME_ALT]] → [[NAME_NEU]] gemäß [[Project:Episodentitel|MA:Episodentitel]]" -ref:"NAME_ALT" -pt:00 -ns:6