API:Letzte Änderungen
Diese Seite ist Teil der Dokumentation der MediaWiki action API. |
MediaWiki Version: | ≥ 1.9 |
GET-Abfrage um die letzten Änderungen in dem Wiki auf die gleiche Art wie auf Special:RecentChanges aufzulisten.
API-Dokumentation
Beispiel
GET-Abfrage
Erhalte die drei letzten Änderungen mit Größen und Markierungen
api.php? action=query& list=recentchanges& rcprop=title|ids|sizes|flags|user& rclimit=3 [In der ApiSandbox ausprobieren]
Antwort
{
"batchcomplete": "",
"continue": {
"rccontinue": "20180330090522|1041353210",
"continue": "-||"
},
"query": {
"recentchanges": [
{
"type": "edit",
"ns": 0,
"title": "Histology",
"pageid": 13570,
"revid": 833218500,
"old_revid": 833218201,
"rcid": 1041353213,
"user": "Iztwoz",
"oldlen": 25718,
"newlen": 25749
}
...
]
}
}
Beispielcode
Python
#!/usr/bin/python3
"""
get_recent_changes.py
MediaWiki API Demos
Demo of `RecentChanges` module: Get the three most recent changes with
sizes and flags
MIT License
"""
import requests
S = requests.Session()
URL = "https://en.wikipedia.org/w/api.php"
PARAMS = {
"format": "json",
"rcprop": "title|ids|sizes|flags|user",
"list": "recentchanges",
"action": "query",
"rclimit": "3"
}
R = S.get(url=URL, params=PARAMS)
DATA = R.json()
RECENTCHANGES = DATA['query']['recentchanges']
for rc in RECENTCHANGES:
print(str(rc['title']))
PHP
<?php
/*
get_recent_changes.php
MediaWiki API Demos
Demo of `RecentChanges` module: Get the three most recent changes with sizes and flags
MIT License
*/
$endPoint = "https://en.wikipedia.org/w/api.php";
$params = [
"action" => "query",
"list" => "recentchanges",
"rcprop" => "title|ids|sizes|flags|user",
"rclimit" => "3",
"format" => "json"
];
$url = $endPoint . "?" . http_build_query( $params );
$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$output = curl_exec( $ch );
curl_close( $ch );
$result = json_decode( $output, true );
foreach( $result["query"]["recentchanges"] as $rc ){
echo( $rc["title"] . "\n" );
}
JavaScript
/*
get_recent_changes.js
MediaWiki API Demos
Demo of `RecentChanges` module: Get the three most recent changes with sizes and flags
MIT License
*/
var url = "https://en.wikipedia.org/w/api.php";
var params = {
action: "query",
list: "recentchanges",
rcprop: "title|ids|sizes|flags|user",
rclimit: "3",
format: "json"
};
url = url + "?origin=*";
Object.keys(params).forEach(function(key){url += "&" + key + "=" + params[key];});
fetch(url)
.then(function(response){return response.json();})
.then(function(response) {
var recentchanges = response.query.recentchanges;
for (var rc in recentchanges) {
console.log(recentchanges[rc].title);
}
})
.catch(function(error){console.log(error);});
MediaWiki JS
/*
get_recent_changes.js
MediaWiki API Demos
Demo of `RecentChanges` module: Get the three most recent changes with sizes and flags
MIT License
*/
var params = {
action: 'query',
list: 'recentchanges',
rcprop: 'title|ids|sizes|flags|user',
rclimit: '3',
format: 'json'
},
api = new mw.Api();
api.get( params ).done( function ( data ) {
var recentchanges = data.query.recentchanges,
rc;
for ( rc in recentchanges ) {
console.log( recentchanges[ rc ].title );
}
} );
Mögliche Fehler
Code | Information |
---|---|
rcshow | Incorrect parameter - mutually exclusive values may not be supplied. |
rcpermissiondenied | You need the patrol or patrolmarks right to request the patrolled flag.
|
Parameterhistorie
- v1.24:
rctoken
veraltet - v1.15:
rctitles
entfernt - v1.14:
rctitles
eingeführt - v1.13:
loginfo
eingeführt
Zusätzliche Anmerkungen
- Viele geloggte Aktionen können über dieses Modul betrachtet werden, mit Ausnahme von Kontroll -Aktionen, da diese nicht in der Tabelle der recentchanges enthalten sind.
- Der timestamp , ab dem aufgelistet wird, darf nicht weiter in der Vergangenheit liegen als $wgRCMaxAge , welcher in Wikimedia-Wikis bei 30 Tagen liegt.
- Neue Änderungen können in Bezug zu ihrem Zeitstempel in leicht veränderter Reihenfolge in die Tabelle
recentchanges
eingefügt werden. Wenn die letzten Änderungen zwei Mal hintereinander abgefragt werden, kann die zweite Antwort daher neue Änderungen enthalten, die wenige Sekunden vor der letzten Änderung der ersten Antwort eingefügt wurden. Wenn du dieses Modul wiederholt anrufst, um einen Stream der letzten Änderungen zu erhalten, solltest du in Erwägung ziehen, eine Überschneidung zwischen Abfragen einzufügen, um keine Änderungen zu verpassen. - Dieses Modul kann als generator benutzt werden.
- Dieses Modul ist durch ApiQueryRecentChanges.php implementiert.