Benutzer:DrTrigonBot/Subster/Doku

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Wenn vorstehende Vorlage in einer Seite eingebunden ist, bearbeitet DrTrigonBot den Seiteninhalt nach angegebenen Kriterien und fügt Text von beliebigen Quellen hinzu (falls diese sich verändert haben). Sollte es zu Problemen kommen, hinterlasse bitte einen Hinweis auf dieser Seite. Diese Vorlage wurde von Vorlage:Autoarchiv übernommen und vereinfacht.

Unterstützt werden alle (Plain-)Textquellen, sowie HTML-Quellen durch Regex und BeautifulSoup (also teilweise auch XML) sowie RSS-Quellen (durch online RSS2HTML Konvertierung, alternativ mit feed2html und Universal Feed Parser auf dem TS). Diese Quellen dürfen auch ZIP-komprimiert sein. Zu guter Letzt können auch reine Wikipedia-Quellen verwendet werden.

Eine Sache, die man bei der Nutzung externer Quellen auch im Kopf behalten sollte, ist das Urheberrecht - die externe Seite, von der kopiert wird, sollte entweder unter einer geeigneten freien Lizenz stehen - wie es bei Identi.ca und blog.wikimedia.de praktischerweise der Fall ist - oder der Benutzer sollte glaubhaft machen, dass er Autor der dortigen Inhalte ist. Es sollte sorgfältig gewählt werden (z.B. Seiten die viele Werbelinks einfügen vermeiden).

regex-Modus (Standard)

[Bearbeiten | Quelltext bearbeiten]
{{Benutzer:DrTrigonBot/Subster
|url=...
|regex=...
|value=abc
}}
...
<!--SUBSTER-abc--><!--SUBSTER-abc-->

Beautiful-Soup-Modus

[Bearbeiten | Quelltext bearbeiten]
{{Benutzer:DrTrigonBot/Subster
|url=...
|beautifulsoup=True
}}
...
<!--SUBSTER-BS:body--><!--SUBSTER-BS:/-->
{{Benutzer:DrTrigonBot/Subster
|simple={{xyz|...}}
|value=abc
}}
...
<!--SUBSTER-abc--><!--SUBSTER-abc-->

wobei die Vorlage (z.B. xyz) folgendes Format hat

{{((}}xyz

|url=...
|regex=...
{{))}}

und hier können beliebig Variablen usw. (was aus der Hilfe:Vorlagenprogrammierung alles bekannt ist) verwendet werden.

  • url: Webseite (beliebige URL), von der Daten/Text eingelesen werden soll. Hier können auch andere Datenquellen wie die Wikipedia selbst, E-Mail, usw. verwendet werden.
    • mit 'wiki://[Seite]' kann der interne Text einer Wikipedia-Seite verwendet werden (eckige Klammern für Verweise sind erlaubt).
      • expandtemplates: Alle Vorlagen im Wiki-Text vollständig auflösen (wie subst:). Kann nur zusammen mit wiki:// verwendet werden und hat sonst keine Wirkung (Standardwert: False).
    • mit 'mail://[Adresse]' können auch E-Mails als Quelle verwendet werden, mehr dazu unter Mail.
    • mit 'local://[Datei]' können Bot-interne Infos abgerufen werden. Hauptsächlich für Service-Seiten wie Benutzer:DrTrigonBot/Status und Benutzer:DrTrigonBot/Version gedacht.

Optional:

  • zip: Ob die durch die URL gegebene Quelle ZIP-komprimiert ist. Wenn ja (True oder Zahl grösser 0) wird die erste (oder angegebene) Datei aus dem Archiv entpackt und verwendet (Standardwert: False).
  • xlsx: Ob die durch die URL gegebene Quelle im Excel-Format ist. Hier muss der Name der Tabelle angegeben werden, die exportiert werden soll.
  • ods: Ob die durch die URL gegebene Quelle im OpenDocument Spreadsheet Format ist. Hier muss der Name der Tabelle angegeben werden, die exportiert werden soll.
  • cron: Zeitintervall, in dem der Bot laufen soll. Die Angabe ist im cron-Format ohne Minute und Stunde, also: '[day of month] [month] [day of week]' (Standardwert: * * *).
  • verbose: Bestimmt ob Fehlermeldungen usw. automatisch auf der Seite ausgegeben werden (Standardwert: True).
  • Zeigen: Wird dieser Parameter auf Nein gesetzt, dann wird der Hinweis nicht dargestellt. Diese Option ist sinnvoll, wenn der Aufbau der Vorlage beispielsweise das optische Design der Seite stört (Standardwert: Ja).

regex Modus (Standard)

[Bearbeiten | Quelltext bearbeiten]
  • regex: Regulärer Ausdruck zur Extraktion des Textes von der Webseite (genau: python re). Verwende '(.*)' oder '(.*?)' für den Teil des Textes der extrahiert werden soll (Testen und Ausprobieren der regex ist möglich im Python Regex Tool).
  • value: Bezeichnung des lokalen Tags, in das der Text eingesetzt werden soll.

Optional:

  • count: Wie oft der Text in lokale Tags eingsetzt werden soll.
  • postproc: Nachbearbeitung des Textes durch versch. Methoden:
    • ('formatedlist', regex, '* [[%s]]'): Der extrahierte Text wird nochmals mit einem regulären Ausdruck bearbeitet und eine Liste aller vorhanden Treffer als Verweise inerhalb der Wikipedia (mit [[...]]) wird ausgegeben (im wiki format). Identisch wie das veraltete ('wikilinkedlist', regex).
    • ('formatedlist_frommatrix', regex, format, cols, head, check): Vor allem für grosse Tabellen (wie csv) mit der Möglichkeit Einträge nach gewissen Kriterien zu filtern (check).
    • ('replacetext', '<.*?>', 'abc'): Der extrahierte Text wird mit einem regulären Ausdruck gefiltert, d.h. der Ausdruck wird ersetzt, hier z.B. alle im Text vorhandenen HTML-Tags durch 'abc'.
    • ('chain', postprocs): Verwende mehrere postproc Funktionen nacheinander.
    • für weitere siehe Benutzer:DrTrigon/DrTrigonBot/subster-postproc.css

Beautiful Soup Modus

[Bearbeiten | Quelltext bearbeiten]
  • beautifulsoup: Alle Beautiful Soup (BS) Tags ersetzen, wobei alle Einstellungen ausser 'url' ignoriert werden. Pro Seite können derzeit nur Beautiful Soup Tags von einer URL verwendet werden. Für Hilfe zum Syntax siehe Beautiful Soup Documentation (Standardwert: False).
  • simple: Kann mit allen anderen Modi kombiniert werden und ist eigentlich nur eine Vereinfachung bzw. Abkürzung um komplizierte Optionen vor unerfahrenen Benutzern zu verbergen. Es ermöglicht aber auch dynamische Parameter-Werte und kann somit ideal mit Funktionen der Hilfe:Vorlagenprogrammierung kombiniert werden. Einfach alle gewünschten Parameter in eine Vorlage verschieben und diese an 'simple' übergeben (ein Beispiel).

Zu jeder Einbindung (also pro 'value') gibt es Meta-Tags, die zusätzliche Informationen enthalten. Diese Tags funktionieren grundsätzlich genau so wie die üblichen werden aber nur in bestimmten Situationen gesetzt, welche sind:

  1. Aktualisierung/Update der Daten (weil sich die Quelle oder sonst was geändert hat)
  2. Fehlermeldungen

d.h. Meta-Tags selbst lösen kein Update einer Seite aus, sie werden nur als Begleiterscheinung gesetzt.

Folgende Meta-Tag stehen zur Verfügung (je nach Quelle, können gewisse Tags fehlen, d.h. werden einfach ignoriert):

  • Fehler: <!--SUBSTER-META-[value]-bot-error-->, <!--SUBSTER-META-[value]-bot-error-traceback-->
  • MediaWiki Software Tags: <!--SUBSTER-META-[value]-mw-signature--> (enthält immer: ~~~~), <!--SUBSTER-META-[value]-mw-timestamp--> (enthält immer: ~~~~~)
  • URL Header der Quelle: <!--SUBSTER-META-[value]-url-content-length-->, <!--SUBSTER-META-[value]-url-date-->, <!--SUBSTER-META-[value]-url-last-modified-->, <!--SUBSTER-META-[value]-url-expires-->
  • Bot generierte Info: <!--SUBSTER-META-[value]-bot-timestamp-->

Da es ein Bot ist, der nicht durchgehend (aber häufig) läuft, ist dies hier die einfachste Methode, die Einstellungen und Parameter der Vorlage zu testen und richtig zu wählen. Das Tool ruft direkt den Bot-Code auf, es ist also eine Simulation auf dem realen Bot (der produktiven Umgebung).

DrTrigonBot subster simulation panel

Der Bot kann als auch Mails empfangen. Diese werden gespeichert und als Datenquelle verwendet. Die Mails können auch betrachtet werden, um zu sehen welche Informationen wie extrahiert werden können.

Um auf die empfangenen Mails zuzugreifen, wird im Parameter url folgende Syntax verwendet:

mail://sender@server.bla/all

für den gesamten Mail-Text oder '/attachment' für Anhänge.

DrTrigonBot subster mail queue: drtrigon+subster@toolserver.org

Der Einsatz des Bots auf einer Seite (Vorlage) kann am einfachsten an einem Beispiel erläutert werden. Betrachten wir doch z.B. den Fall dass wir den Status des Toolservers hier darstellen wollen. Hierzu öffnen wir zuerst das DrTrigonBot subster simulation panel (weitere Infos) und suchen uns die passende Werte für die Parameter heraus:

Wir benötigen natürlich eine Quelle (ACHTUNG: Urheberrechte beachten!), von der wir die Daten beziehen können. Das ist eine URL (oder E-Mail-Adresse) wie

http://status.toolserver.org/
https://iw.toolforge.org/?status

Manche Seiten, wie z.B. diese, können verschiedene Ausgabeformate erzeugen. Neben HTML stehen hier noch XML, einfacher Text (Plain), JSON und API zur Verfügung. Würden wir eines dieser Ausgabeformate wählen, müsste die URL angepasst werden. Im Falle von XML wäre die URL z.B. http://status.toolserver.org/xml .

In diesem Beispiel beschränken wir uns allerdings auf HTML, daher bleibt es bei der URL. Wir fügen sie in das Simulation Panel ein, d.h.

url = http://status.toolserver.org/

2. Auswahl des Bereiches

[Bearbeiten | Quelltext bearbeiten]

Nun betrachten wir den Quelltext von http://status.toolserver.org/ :

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>TS-Status - List Services</title>
<link rel="icon" href="./static/favicon.ico" type="image/x-icon">
<link rel='stylesheet' href='./static/river.css' />
</head>
<body>
<table >
<thead>
<tr >
<th >service</th>
<th >status</th>
</tr></thead>
<tbody>
<tr >
<td >other: /mnt/usr-store</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
<tr >
<td >webservice: Fingerprints</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
<tr >
<td >webservice: FishEye</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
<tr >
<td >webservice: JIRA</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
<tr >
<td >server-group: Login Servers</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
<tr >
<td >server: mayapple</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
<tr >
<td >webservice: MediaWiki</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
<tr >
<td >server: nightshade</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
<tr >
<td >webservice: phpMyAdmin</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
<tr >
<td >service: SGE</td>
<td ><img  src="./static/info.png" alt="Info" />INFO  Default arch switched</td>
</tr>
<tr >
<td >db-cluster: sql-s1-rr</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
<tr >
<td >db-cluster: sql-s1-user</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
<tr >
<td >db-cluster: sql-s2-rr</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
<tr >
<td >db-cluster: sql-s2-user</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
<tr >
<td >db-cluster: sql-s3-rr</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
<tr >
<td >db-cluster: sql-s3-user</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
<tr >
<td >db-cluster: sql-s4-rr</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
<tr >
<td >db-cluster: sql-s4-user</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
<tr >
<td >db-cluster: sql-s5-rr</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
<tr >
<td >db-cluster: sql-s5-user</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
<tr >
<td >db-cluster: sql-s6-rr</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
<tr >
<td >db-cluster: sql-s6-user</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
<tr >
<td >db-cluster: sql-s7-rr</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
<tr >
<td >db-cluster: sql-s7-user</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
<tr >
<td >db-cluster: sql-toolserver</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
<tr >
<td >webservice: Subversion</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
<tr >
<td >db-cluster: user databases (sql)</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
<tr >
<td >server-group: Web servers</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
<tr >
<td >server: willow</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
<tr >
<td >server: wolfsbane</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
<tr >
<td >server: yarrow</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
</tbody>
</table>

<div class="lastmod">Last modified: 2012-10-11 12:04:22.0 by DaB..
</div>
<p ><a href="./xml">XML</a>
 – 
<a href="./plain">Plain</a>
 – 
<a href="./json">JSON</a>
 – 
<a href="./api">API</a>
</p>
<a href="./listservices">Edit me</a>
<hr/>
<a href="./impressum"id="impressum">Impressum</a>
</body>
</html>

Uns interessiert nur der Bereich zwischen den blauen Markierungen. Hierzu fügen wir einen entsprechenden regulären Ausdruck in das Simulation Panel, der den kompletten Bereich zwischen den beiden tbody-Tags beschreibt.

regex = <tbody>(.*?)</tbody>

Klicken wir nun auf "Simulate", können wir im Simulation Panel unter "content" das Ergebnis überprüfen. Zu sehen sein soll der oben blau dargestellte Text (ohne Markierungen).

Im Prinzip reicht das schon, um einfache einzelne Daten hier in die Wikipedia zu übertragen.

3. Liste erzeugen

[Bearbeiten | Quelltext bearbeiten]

Allerdings will man häufig nicht den HTML-Quelltext 1:1 übernehmen, sondern ihn vor dem Einfügen in die Wikipedia noch verändern. Dazu benötigen wir ein "Post-Processing" (Nachbearbeiten) der erfassten Daten.

In diesem Beispiel wollen wir die oben ausgelesenen Daten in eine Liste umwandeln, wozu sich das Post-Processing 'formatedlist' anbietet. Dazu einen weiteren regulären Ausdruck. Betrachten wir die Daten aus Schritt 2 nochmals:

<tr >
<td >other: /mnt/usr-store</td>
<td ><img  src="./static/ok.png" alt="Okay" />OK  </td>
</tr>
...

somit haben wir folgenden Parameter

postproc = ('formatedlist', '<tr.*?<td >(.*?)</td.*?/>(.*?)</td', '* %s: %s')
Bedeutung des Regexps erklären, damit man sich halbwegs vorstellen kann, was hier passiert und was gemacht wird bzw. was das postproc damit tut. --Flominator 19:00, 24. Nov. 2012 (CET)
Was bedeuten die %s?

Zusammengefasst ergibt das dann folgende Einbindung:

{{Benutzer:DrTrigonBot/Subster
|url=http://status.toolserver.org/
|regex=<tbody>(.*?)</tbody>
|postproc=('formatedlist', '<tr.*?<td >(.*?)</td.*?/>(.*?)</td', '* %s: %s')
|value=val
}}
...
<!--SUBSTER-val--><!--SUBSTER-val-->
Result
Wikitext Angezeigt
<!--SUBSTER-val-->* other: /mnt/usr-store: OK  
* webservice: Fingerprints: OK  
* webservice: FishEye: OK  
* webservice: JIRA: OK  
* server-group: Login Servers: OK  
* server: mayapple: OK  
* webservice: MediaWiki: OK  
* server: nightshade: OK  
* webservice: phpMyAdmin: OK  
* service: SGE: INFO  Default arch switched
* db-cluster: sql-s1-rr: OK  
* db-cluster: sql-s1-user: OK  
* db-cluster: sql-s2-rr: OK  
* db-cluster: sql-s2-user: OK  
* db-cluster: sql-s3-rr: OK  
* db-cluster: sql-s3-user: OK  
* db-cluster: sql-s4-rr: OK  
* db-cluster: sql-s4-user: OK  
* db-cluster: sql-s5-rr: OK  
* db-cluster: sql-s5-user: OK  
* db-cluster: sql-s6-rr: OK  
* db-cluster: sql-s6-user: OK  
* db-cluster: sql-s7-rr: OK  
* db-cluster: sql-s7-user: OK  
* db-cluster: sql-toolserver: OK  
* webservice: Subversion: OK  
* db-cluster: user databases (sql): OK  
* server-group: Web servers: OK  
* server: willow: OK  
* server: wolfsbane: OK  
* server: yarrow: OK  <!--SUBSTER-val-->
  • other: /mnt/usr-store: OK  
  • webservice: Fingerprints: OK  
  • webservice: FishEye: OK  
  • webservice: JIRA: OK  
  • server-group: Login Servers: OK  
  • server: mayapple: OK  
  • webservice: MediaWiki: OK  
  • server: nightshade: OK  
  • webservice: phpMyAdmin: OK  
  • service: SGE: INFO  Default arch switched
  • db-cluster: sql-s1-rr: OK  
  • db-cluster: sql-s1-user: OK  
  • db-cluster: sql-s2-rr: OK  
  • db-cluster: sql-s2-user: OK  
  • db-cluster: sql-s3-rr: OK  
  • db-cluster: sql-s3-user: OK  
  • db-cluster: sql-s4-rr: OK  
  • db-cluster: sql-s4-user: OK  
  • db-cluster: sql-s5-rr: OK  
  • db-cluster: sql-s5-user: OK  
  • db-cluster: sql-s6-rr: OK  
  • db-cluster: sql-s6-user: OK  
  • db-cluster: sql-s7-rr: OK  
  • db-cluster: sql-s7-user: OK  
  • db-cluster: sql-toolserver: OK  
  • webservice: Subversion: OK  
  • db-cluster: user databases (sql): OK  
  • server-group: Web servers: OK  
  • server: willow: OK  
  • server: wolfsbane: OK  
  • server: yarrow: OK  
Example
{{Benutzer:DrTrigonBot/Subster
|url=http://toolserver.org/~drtrigon/cgi-bin/panel.py
|regex=(Actual state: .*?)Old log
|value=val1
|postproc=('replacetext', '<.*?>', '\'')
}}
...
<!--SUBSTER-val1--><!--SUBSTER-val1-->
Result
Wikitext Angezeigt
<!--SUBSTER-val1-->Actual state: '
                 '
                 '''
Time now: Fri Feb  1 17:55:06 2013''

'Latest' gathered bot status message log: 'DONE'''
Successfully finished bot runs: '25 of 25'''
Current log files: 'trunk/bot_control.py-catimages-cron.log', 'trunk/bot_control.py-compress_history:[]-cron.log', 'trunk/bot_control.py-default-cron.log', 'trunk/bot_control.py-subster-cron-family:meta-lang:.log', 'trunk/bot_control.py-subster-cron-lang:ar.log', 'trunk/bot_control.py-subster-cron-lang:en.log', 'trunk/bot_control.py-subster-cron-lang:frr.log', 'trunk/bot_control.py-subster-cron-lang:nl.log', 'trunk/bot_control.py-subster_irc-cron.log''
'<!--SUBSTER-val1-->
(word wrapped)
Actual state: '
                '

Time now: Fri Feb 1 17:55:06 2013

'Latest' gathered bot status message log: 'DONE' Successfully finished bot runs: '25 of 25' Current log files: 'trunk/bot_control.py-catimages-cron.log', 'trunk/bot_control.py-compress_history:[]-cron.log', 'trunk/bot_control.py-default-cron.log', 'trunk/bot_control.py-subster-cron-family:meta-lang:.log', 'trunk/bot_control.py-subster-cron-lang:ar.log', 'trunk/bot_control.py-subster-cron-lang:en.log', 'trunk/bot_control.py-subster-cron-lang:frr.log', 'trunk/bot_control.py-subster-cron-lang:nl.log', 'trunk/bot_control.py-subster_irc-cron.log '

Example
{{Benutzer:DrTrigonBot/Subster
|url=http://toolserver.org/~drtrigon/cgi-bin/panel.py
|regex=http://upload.wikimedia.org/wikipedia/commons/(.*?)"
|value=val2
|count=1
}}
...
<!--SUBSTER-val2--><!--SUBSTER-val2-->
<!--SUBSTER-val2--><!--SUBSTER-val2-->
Result
Wikitext Angezeigt
<!--SUBSTER-val2-->6/65/ButtonGreen.png<!--SUBSTER-val2-->
<!--SUBSTER-val2--><!--SUBSTER-val2-->
6/65/ButtonGreen.png
Example
{{Benutzer:DrTrigonBot/Subster
|url=http://toolserver.org/~drtrigon/cgi-bin/panel.py
|regex=bot status message log: <b>(.*?)</b>
|value=val3
}}
...
<!--SUBSTER-val3--><!--SUBSTER-val3-->
Result
Wikitext Angezeigt
<!--SUBSTER-val3-->DONE<!--SUBSTER-val3-->
DONE
Example
{{Benutzer:DrTrigonBot/Subster
|url=http://de.wikipedia.org/wiki/Wikipedia:Datei%C3%BCberpr%C3%BCfung/Arbeitsteilung
|regex=<a href="/wiki/Benutzer:Xqbot/Antworten" title="Benutzer:Xqbot/Antworten">Benutzer:Xqbot/Antworten</a></td>\n<td>(.*?)</td>
|value=val4
}}
...
<!--SUBSTER-val4--><!--SUBSTER-val4-->
Result
Wikitext Angezeigt
<!--SUBSTER-val4--><a href="/wiki/Benutzer:Krd" title="Benutzer:Krd">Krd</a>, <a href="/wiki/Benutzer:Quedel" title="Benutzer:Quedel">Quedel</a><!--SUBSTER-val4-->
(word wrapped)
<a href="/wiki/Benutzer:Krd" title="Benutzer:Krd">Krd</a>, <a href="/wiki/Benutzer:Quedel" title="Benutzer:Quedel">Quedel</a>
Example
{{Benutzer:DrTrigonBot/Subster
|url=http://de.wikipedia.org/wiki/Wikipedia:Datei%C3%BCberpr%C3%BCfung/Arbeitsteilung
|regex=<a href="/wiki/Benutzer:Xqbot/Antworten" title="Benutzer:Xqbot/Antworten">Benutzer:Xqbot/Antworten</a></td>\n<td>(.*?)</td>
|value=val5
|postproc=('replacetext', '<.*?>', '\'')
}}
...
<!--SUBSTER-val5--><!--SUBSTER-val5-->
Result
Wikitext Angezeigt
<!--SUBSTER-val5-->'Krd', 'Quedel'<!--SUBSTER-val5-->
(word wrapped)
'Krd', 'Quedel'
Example
{{Benutzer:DrTrigonBot/Subster
|url=http://de.wikipedia.org/wiki/Wikipedia:Datei%C3%BCberpr%C3%BCfung/Arbeitsteilung
|regex=<a href="/wiki/Benutzer:Xqbot/Antworten" title="Benutzer:Xqbot/Antworten">Benutzer:Xqbot/Antworten</a></td>\n<td>(.*?)</td>
|value=val6
|postproc=('formatedlist', 'title="Benutzer:(.*?)"', 'u\'%s\'', ', ')
}}
...
[<!--SUBSTER-val6--><!--SUBSTER-val6-->]
Result
Wikitext Angezeigt
[<!--SUBSTER-val6-->u'Krd', u'Quedel'<!--SUBSTER-val6-->]
[u'Krd', u'Quedel']
Example
{{Benutzer:DrTrigonBot/Subster
|url=http://de.wikipedia.org/wiki/Wikipedia:Datei%C3%BCberpr%C3%BCfung/Arbeitsteilung
|regex=<a href="/wiki/Benutzer:Xqbot/Antworten" title="Benutzer:Xqbot/Antworten">Benutzer:Xqbot/Antworten</a></td>\n<td>(.*?)</td>
|value=val7
|postproc=('formatedlist', 'title="Benutzer:(.*?)"', '* %s')
}}
...
<!--SUBSTER-val7--><!--SUBSTER-val7-->
Result
Wikitext Angezeigt
<!--SUBSTER-val7-->* Krd
* Quedel<!--SUBSTER-val7-->
  • Krd
  • Quedel
Example
{{Benutzer:DrTrigonBot/Subster
|url=wiki://[[Wikipedia:Spielwiese]]
|regex=(.*)
|value=val8
}}
...
<!--SUBSTER-val8--><!--SUBSTER-val8-->
Result
Wikitext Angezeigt
(whole page content)
(whole page content)
Example
{{Benutzer:DrTrigonBot/Subster
|url=wiki://Wikipedia:WikiProjekt_Vorlagen/Mitarbeiter
|regex=<onlyinclude>\n(.*?)</onlyinclude>
|postproc=('chain', [('formatedlist', '\\*.*?\[\[Benutzer:(.*?)\\x7c.*?\n', '%s', ', '), ('replacetext', ',', ';')])
|value=val9
}}
...
<!--SUBSTER-val9--><!--SUBSTER-val9-->
Result
Wikitext Angezeigt
<!--SUBSTER-val9-->✓; Darkking3; Engeltr; Finn-Pauls; Gerold Broser; Revolus; Umherirrender; Visi-on; Wiegels; WIKImaniac<!--SUBSTER-val9-->
(word wrapped)
✓; Darkking3; Engeltr; Finn-Pauls; Gerold Broser; Revolus; Umherirrender; Visi-on; Wiegels; WIKImaniac
Example - DrTrigonBot category discussion summary
{{Benutzer:DrTrigonBot/Subster
|url=http://tools.wmflabs.org/drtrigonbot/cgi-bin/sum_cat_disc.py?wiki=de&cat=Baden-W%C3%BCrttemberg
|regex=<br />\n(.*?)\n<br />\nTime to process
|value=val10
|postproc=('wikilinkedlist', '<tr>.*?"_blank">(.*?)<')
}}
...
<!--SUBSTER-val10--><!--SUBSTER-val10-->
Result
Wikitext Angezeigt
<!--SUBSTER-val10-->* [[Diskussion:Berolzheim]]
* [[Diskussion:Gustav Schwab]]
* [[Diskussion:Kurt Georg Kiesinger]]
* [[Diskussion:Oberschwaben-Kaserne Mengen/Hohentengen]]
* [[Diskussion:Schmotziger Donnerstag]]
* [[Diskussion:Ortstafel (Württemberg)]]
* [[Diskussion:Wirtschaftsministerium Baden-Württemberg]]
* [[Diskussion:Vesperkirche]]
* [[Diskussion:Daimler AG]]
* [[Diskussion:Breisgau-S-Bahn GmbH]]
* [[Diskussion:Benedikt XVI.]]
* [[Diskussion:Kosten und Finanzierung von Stuttgart 21]]
* [[Diskussion:SAP-Arena]]
* [[Diskussion:Kaufhaus Schocken]]<!--SUBSTER-val10-->
Example - Beautiful Soup Modus
{{Benutzer:DrTrigonBot/Subster
|url=http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html
|beautifulsoup=True
}}
...
<!--SUBSTER-BS:body.table('span', {'class': 'rate'})[0].contents[0]--><!--SUBSTER-BS:/-->
Result
Wikitext Angezeigt
<!--SUBSTER-BS:body.table('span', {'class': 'rate'})[0].contents[0]-->1.3644<!--SUBSTER-BS:/-->
1.3644
Example - simple Modus
{{Benutzer:DrTrigonBot/Subster
|simple={{Benutzer:DrTrigon/Entwurf/Vorlage:FIFA-Weltranglistendaten/Vorlage:Subster/Simple:FIFA|rank={{ #expr: 200+6 }}}}
}}
...
<!--SUBSTER-BS:body('div', {'class': 'lInfo'})[0].contents[0]--><!--SUBSTER-BS:/-->
Result
Wikitext Angezeigt
<!--SUBSTER-BS:body('div', {'class': 'lInfo'})[0].contents[0]-->Letzte Aktualisierung 27 Jul 2011<!--SUBSTER-BS:/-->
Letzte Aktualisierung 27 Jul 2011

Dynamische/schnelle Updates (irc channel Daemon)

[Bearbeiten | Quelltext bearbeiten]

Ein Teil des Bots läuft permanent (als Daemon) und reagiert auf bestimmte Bearbeitungen durch Benutzer.

  • direkte Aktualisierung nach Änderung an einer Seite, auf der die Vorlage eingebunden ist
  • Synchronisierung von Diff's verschiedener Seiten, durch Nachtragen jeder einzelnen Änderung (bisher nur als Spezialauftrag)
Muss vom Bot unterstützt und genutzt werden, bzw. der Bot muss Daten liefern.

meta:Wikidata/Bots


Vorlagen Service: prüfe auf unmarkierten Änderungen (siehe auch Konfiguration der Seitenansicht [nur für Admins]) bzw. Links auf diese Seite.