Benutzer:DrTrigonBot/Subster/Doku
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).
Kopiervorlage
[Bearbeiten | Quelltext bearbeiten]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:/-->
Simple-Modus
[Bearbeiten | Quelltext bearbeiten]{{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.
Parameter
[Bearbeiten | Quelltext bearbeiten]- 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 mitwiki://
verwendet werden und hat sonst keine Wirkung (Standardwert:False
).
- expandtemplates: Alle Vorlagen im Wiki-Text vollständig auflösen (wie
- 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.
- mit 'wiki://[Seite]' kann der interne Text einer Wikipedia-Seite verwendet werden (eckige Klammern für Verweise sind erlaubt).
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 Modus
[Bearbeiten | Quelltext bearbeiten]- 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).
Meta-Tags
[Bearbeiten | Quelltext bearbeiten]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:
- Aktualisierung/Update der Daten (weil sich die Quelle oder sonst was geändert hat)
- 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-->
Simulation
[Bearbeiten | Quelltext bearbeiten]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
Tutorial
[Bearbeiten | Quelltext bearbeiten]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:
1. Quelle
[Bearbeiten | Quelltext bearbeiten]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?
4. Vorlage
[Bearbeiten | Quelltext bearbeiten]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-->
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--> |
|
Beispiele
[Bearbeiten | Quelltext bearbeiten]- 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-->
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-->
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-->
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-->
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-->
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-->]
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-->
Wikitext | Angezeigt |
---|---|
<!--SUBSTER-val7-->* Krd * Quedel<!--SUBSTER-val7--> |
|
- Example
{{Benutzer:DrTrigonBot/Subster |url=wiki://[[Wikipedia:Spielwiese]] |regex=(.*) |value=val8 }} ... <!--SUBSTER-val8--><!--SUBSTER-val8-->
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-->
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-->
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:/-->
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:/-->
Wikitext | Angezeigt |
---|---|
<!--SUBSTER-BS:body('div', {'class': 'lInfo'})[0].contents[0]-->Letzte Aktualisierung 27 Jul 2011<!--SUBSTER-BS:/--> |
Letzte Aktualisierung 27 Jul 2011 |
weitere
[Bearbeiten | Quelltext bearbeiten]- Vorlage:Elo-Punkte
- Wikipedia:Wikimedia Deutschland/Blog
- Vorlage:Wechselkursdaten/EZB
- Vorlage:Infobox Kreditinstitut/DatenDE
- Vorlage:Infobox Kreditinstitut/DatenAT
- Vorlage:Infobox Kreditinstitut/DatenCH
- Vorlage:Infobox Kreditinstitut/DatenDE/Quelle
- Vorlage:ITTF-Weltranglistendaten
- Wikipedia:Projektdiskussion/PRD-subst
- Benutzer:Flominator/BKL
- alle Vorlagen... • alles...
- Anwendungen & alternatives Tag System (mit Benutzer:DrTrigon/Entwurf/Vorlage:SubsterTag)
- 'Named tags', mehrere BeautifulSoup auf selber Seite, usw.
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.
Vorlagen Service: prüfe auf unmarkierten Änderungen (siehe auch Konfiguration der Seitenansicht [nur für Admins]) bzw. Links auf diese Seite.