Je dois obtenir toutes les pages que j'ai créé comme modèles dans ma page Web wikimedia. Je dois le faire avec javascript.Wikimedia fonction pour obtenir tous mes modèles
Est-ce possible?
Je dois obtenir toutes les pages que j'ai créé comme modèles dans ma page Web wikimedia. Je dois le faire avec javascript.Wikimedia fonction pour obtenir tous mes modèles
Est-ce possible?
Vous pouvez le faire avec un UserContribs API query, comme ceci:
Fondamentalement, les paramètres dont vous avez besoin sont:
format=json
pour obtenir des résultats au format JSON , ce qui est probablement ce que vous voulez pour JavaScript. (Je l'ai utilisé jsonfm
dans le lien exemple ci-dessus pour obtenir une sortie lisible par l'homme assez imprimé.)
action=query
pour indiquer que c'est, en effet, un query plutôt que, par exemple, une modification ou une tentative de connexion.
list=usercontribs
pour indiquer que vous voulez une liste decontributions d'un utilisateur (à savoir les choses que vous voyez sur la page Special:Contributions).
ucuser=your_username
pour sélectionner les contributions de l'utilisateur que vous voulez voir. (L'exemple de lien ci-dessus montre le mien.)
ucnamespace=10
pour sélectionner uniquement les contributions aux modèles. (10 correspond au namespace number pour l'espace de noms de modèle intégré).
ucshow=new
pour sélectionner uniquement les contributions qui impliquent la création d'une nouvelle page. (Notez que cela inclut également la page se déplace;. Je ne vois aucune façon simple de filtrer ceux sur)
Bien sûr, il y a d'autres parameters vous pouvez également inclure. J'ai également inclus un paramètre vide continue=
pour indiquer que je veux utiliser le new query continuation syntax, et supprimer l'avertissement à ce sujet. Évidemment, si vous voulez réellement utiliser la continuation de la requête, vous devrez implémenter vous-même la partie côté client (ou utiliser un client MW API qui l'implémente pour vous). Voici une façon simpliste de le faire:
function getNewTemplatesForUser(username) {
var queryURL = 'https://en.wikipedia.org/w/api.php?format=json&action=query&list=usercontribs&ucnamespace=10&ucshow=new';
queryURL += '&ucuser=' + encodeURIComponent(username);
var callback = function(json) {
// TODO: actually process the results here
if (json.continue) {
var continueURL = queryURL;
for (var attr in json.continue) {
continueURL += '&' + attr + '=' + encodeURIComponent(json.continue[attr]);
}
doAjaxRequest(continueURL, callback);
}
};
doAjaxRequest(queryURL + '&continue=', callback);
}
Je ne savais pas que je peux utiliser l'API de cette façon, merci beaucoup, réponse très utile – Dimentica