API:RecentChanges/fr
Cette page fait partie de la documentation de l'API MediaWiki Action. |
Version de MediaWiki : | ≥ 1.9 |
Requête GET pour lister l'ensemble des dernières modifications du wiki, à la manière de Special:RecentChanges.
Documentation de l'API
Exemple
Requête GET
Obtenir les 3 modifications les plus récentes avec leur taille et leurs drapeaux
Réponse
{
"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
}
...
]
}
}
Exemple de code
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 );
}
} );
Erreurs possibles
Code | Information |
---|---|
rcshow | Paramètre incorrect - des valeurs mutuellement exclusives ne peuvent pas être fournies. |
rcpermissiondenied | Vous avez besoin du droit patrol ou patrolmarks pour demander le drapeau patrouillé.
|
Historique des paramètres
- v1.24: obsolète
rctoken
- v1.15: supprimé
rctitles
- v1.14: ajouté
rctitles
- v1.13: ajouté
loginfo
Notes supplémentaires
- Plusieurs actions de journalisation peuvent être affichées en utilisant ce module et en excluant les actions de patrouillage car elles ne sont pas présentes dans la table recentchanges .
- Le Timestamp à partir duquel il faut commencer la liste peut etre supérieur à $wgRCMaxAge dans le passé, ce qui représente 30 jours sur les wikis Wikimedia.
- Les nouvelles modifications peuvent être insérées dans la table
recentchanges
un peu dans le désordre si on se réfère à leur horodatage. Ainsi, lorsque vous demandez les modifications les plus récentes deux fois sur la même ligne, la seconde réponse peut contenir les nouvelles modifications insérées quelques secondes avant la plus récente de la première réponse. Si vous appelez ce module de manière répétitive pour obtenir le flux des modifications récentes, ajoutez un certain recouvrement entre les requêtes pour ne rater aucune modification. - Ce module peut être utilisé comme générateur.
- Ce module est implémenté par ApiQueryRecentChanges.php .