API de MediaWiki/Allusers : Différence entre versions

De Wicri Outils
imported>Jacques Ducloy
imported>Jacques Ducloy
(Voir aussi)
 
(23 révisions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
Le module '''allusers''' de l'[[API de MediaWiki]] permet d'obtenir une liste des contributeurs, triée par ordre alphabétique.
+
{{Titre page article|titre=API de MediaWiki, module Allusers}}Le module '''Allusers''' de l'[[API de MediaWiki]] permet d'obtenir une liste des contributeurs, triée par ordre alphabétique.
  
 
==Exemple introductif==
 
==Exemple introductif==
Ligne 6 : Ligne 6 :
 
: <code><''url du wiki''>/api.php?''paramètres''</code>.
 
: <code><''url du wiki''>/api.php?''paramètres''</code>.
  
Exemple, pour ce wiki, dont l'url est : http://maquettewicri.loria.fr/ticri-outils/, l'accès normal est :
+
Exemple, pour ce wiki, dont l'url est : https://lorexplor.istex.fr/Wicri/Outils/fr, l'accès normal est :
* http://maquettewicri.loria.fr/ticri-outils/index.php5?title=MediaWiki
+
* https://lorexplor.istex.fr/Wicri/Outils/fr/index.php?title=MediaWiki
  
 
L'accès au module '''allusers''' utilise l'URL :
 
L'accès au module '''allusers''' utilise l'URL :
* http://maquettewicri.loria.fr/ticri-outils/api.php5?action=query&list=allusers
+
* https://lorexplor.istex.fr/Wicri/Outils/fr/api.php?action=query&list=allusers
 +
 
 +
Avec curl :
 +
<source lang="sh">
 +
WIKI=https://lorexplor.istex.fr/Wicri/Europe/de
 +
curl "$WIKI/api.php?action=query&format=xml&list=allusers" 2>nul \
 +
| SxmlIndent
 +
</source>
  
 
==Paramètres==
 
==Paramètres==
Ligne 20 : Ligne 27 :
 
* <code>aulimit</code> : longueur maximale de la liste des résultats (valeur implicite 10).
 
* <code>aulimit</code> : longueur maximale de la liste des résultats (valeur implicite 10).
  
Pour les autres options, voir :
+
api.php?action=query&format=json&list=allusers
* http://www.mediawiki.org/wiki/API:Query_-_Lists#allusers_.2F_au
+
 
 +
https://lorexplor.istex.fr/Wicri/Europe/de/api.php?action=query&format=xml&list=allusers
  
 
==Résultats==
 
==Résultats==
Ligne 27 : Ligne 35 :
 
En principe la commande renvoie une liste structurée en xml.
 
En principe la commande renvoie une liste structurée en xml.
 
<source lang="xml">
 
<source lang="xml">
<?xml version="1.0" encoding="utf-8"?>
+
<?xml version="1.0"?>
<api>
+
<api batchcomplete="">
   <query-continue>
+
   <continue aufrom="Anaïs Gravier" continue="-||"/>
    <allusers aufrom="Wicri robot" />
 
  </query-continue>
 
 
   <query>
 
   <query>
 
     <allusers>
 
     <allusers>
       <u name="Alice Hermann" />
+
       <u userid="49" name="Alain Faron"/>
       ...
+
      <u userid="186" name="Alexandrina Giorgi"/>
       <u name="Thierry Daunois" />
+
      <u userid="188" name="Alexia Hiole"/>
 +
      <u userid="3" name="Ali Tebbakh"/>
 +
      <u userid="6" name="Aline Esparel"/>
 +
      <u userid="19" name="Aline Le Bihan"/>
 +
      <u userid="75" name="Allison Gnassou"/>
 +
       <u userid="76" name="Amandine Rivière"/>
 +
       <u userid="193" name="Amélie Perrin"/>
 +
      <u userid="30" name="Anaïs Capy"/>
 
     </allusers>
 
     </allusers>
 
   </query>
 
   </query>
 
</api>
 
</api>
</source>
 
En pratique, suivant le mode opératoire choisi, on peut obtenir une version encapsulée dans une page html.
 
 
Par exemple, sous unix, la commande [[curl]] :
 
 
<source lang="sh">
 
  curl "http://maquettewicri.loria.fr/ticri-outils/api.php5?action=query&list=allusers"
 
</source>
 
 
donne plutôt quelque chose comme :
 
 
<source lang="xml">
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
<html>
 
<head>
 
<title>MediaWiki API Result</title>
 
  ...
 
        <span style="color:blue;">&lt;u name=&quot;Alice Hermann&quot; /&gt;</span>
 
 
</source>
 
</source>
  
 +
{{Wicri travaux|texte=Contenu obsolète à partir de ce point}}
 
==Exemple d'utilisation dans le réseau Wicri==
 
==Exemple d'utilisation dans le réseau Wicri==
  
Ligne 105 : Ligne 101 :
 
Pour les wikis privés nous avons simplement réalisé un fichier à filtrer en utilisant l'option "code source de la sélection".
 
Pour les wikis privés nous avons simplement réalisé un fichier à filtrer en utilisant l'option "code source de la sélection".
  
==Articles connexes==
+
==Voir aussi==
 +
;Articles connexes:
 
* [[Liste des inscrits sur un réseau MediaWiki]]
 
* [[Liste des inscrits sur un réseau MediaWiki]]
 +
;Liens externes:
 +
* [[mediawikiwiki:API:Allusers|Ce module sur le site MediaWiki]].
  
 
[[Catégorie:Application cURL]]
 
[[Catégorie:Application cURL]]
[[Catégorie:API de MediaWiki]]]
+
[[Catégorie:API de MediaWiki]]
 
[[Catégorie:Application lex]]
 
[[Catégorie:Application lex]]
 
[[Catégorie:Réseau MediaWiki]]
 
[[Catégorie:Réseau MediaWiki]]

Version actuelle datée du 13 juin 2020 à 19:41

API de MediaWiki, module Allusers


 
 

Le module Allusers de l'API de MediaWiki permet d'obtenir une liste des contributeurs, triée par ordre alphabétique.

Exemple introductif

Ce module peut être utilisé à partir d'un navigateur en utilisant une url du type :

<url du wiki>/api.php?paramètres.

Exemple, pour ce wiki, dont l'url est : https://lorexplor.istex.fr/Wicri/Outils/fr, l'accès normal est :

L'accès au module allusers utilise l'URL :

Avec curl :

WIKI=https://lorexplor.istex.fr/Wicri/Europe/de
curl "$WIKI/api.php?action=query&format=xml&list=allusers" 2>nul \
| SxmlIndent

Paramètres

Les paramètres ont la forme identificateur = valeur, ils sont séparés par des caractères « & ».

  • Sélection de l'action liste des utilisateurs inscrits.
?action=query&list=allusers
  • aulimit : longueur maximale de la liste des résultats (valeur implicite 10).

api.php?action=query&format=json&list=allusers

https://lorexplor.istex.fr/Wicri/Europe/de/api.php?action=query&format=xml&list=allusers

Résultats

En principe la commande renvoie une liste structurée en xml.

<?xml version="1.0"?>
<api batchcomplete="">
  <continue aufrom="Anaïs Gravier" continue="-||"/>
  <query>
    <allusers>
      <u userid="49" name="Alain Faron"/>
      <u userid="186" name="Alexandrina Giorgi"/>
      <u userid="188" name="Alexia Hiole"/>
      <u userid="3" name="Ali Tebbakh"/>
      <u userid="6" name="Aline Esparel"/>
      <u userid="19" name="Aline Le Bihan"/>
      <u userid="75" name="Allison Gnassou"/>
      <u userid="76" name="Amandine Rivière"/>
      <u userid="193" name="Amélie Perrin"/>
      <u userid="30" name="Anaïs Capy"/>
    </allusers>
  </query>
</api>
logo travaux Contenu obsolète à partir de ce point

Exemple d'utilisation dans le réseau Wicri

Le réseau Wicri est constitué de dizaines de wikis sur lesquels différents groupes d'utilisateurs sont inscrits. Pour évaluer leur nombre il faut consolider les listes obtenues sur plusieurs wikis. Voici un exemple réalisé depuis une station Unix.

Extraction des inscrits en lex

Un petit programme lex, nommé filtreUser, fonctionne avec un état (ou start condition) nommé USER.

%START USER
%%
"&lt;u name=&quot;"           BEGIN USER;        /* 1 */
<USER>"&quot; /&gt;</span>"   {putchar ('\n');   /* 2 */
                              BEGIN 0;} 
<USER>.                       ECHO;              /* 3 */           
.                             ;                  /* 4 */
\n                            ;                  /* 5 */
%%
main()
{
  yylex();
}
  • la règle 1 filtre le balisage précédent un auteur de la liste. L'action consiste à changer d'état pour imprimer le nom de l'utilisateur.
  • la règle 2 filtre la fin d'une zone auteur. On revient à l'état 0 en imprimant un saut de ligne.
  • la règle 3 provoque l'écriture d'un caractère de l'auteur.
  • les règles 4 et 5 inhibent la copie des caractères non reconnus.

Sa compilation se réaliste comme suit :

lex filtreUsers.lex
gcc lex.yy.c -ll -o filtreUsers

Mise en œuvre

En pratique la majorité des wikis du réseau sont publics et la commande curl s'applique sans problème.

{
curl "http://maquettewicri.loria.fr/fr.wicri/api.php5?action=query&list=allusers&aulimit=500"
curl "http://maquettewicri.loria.fr/fr.ticri/api.php5?action=query&list=allusers&aulimit=500"  
} | ./filtreUsers | sort -u | wc

Pour les wikis privés nous avons simplement réalisé un fichier à filtrer en utilisant l'option "code source de la sélection".

Voir aussi

Articles connexes
Liens externes