Wicri:Dilib source, module Wicri, commande WicriStatistiquesSite : Différence entre versions
De Wicri Outils
imported>Jacques Ducloy (→Test) |
imported>Jacques Ducloy (→Voir aussi) |
||
Ligne 125 : | Ligne 125 : | ||
''Voir le résultat en [[Discussion Wicri:{{PAGENAME}}|page Discussion]]'' | ''Voir le résultat en [[Discussion Wicri:{{PAGENAME}}|page Discussion]]'' | ||
==Voir aussi== | ==Voir aussi== | ||
− | Voir : [[Dilib | + | Voir : [[Dilib, module Wicri, commande WicriStatistiquesSite]] |
Version du 12 juillet 2020 à 21:35
Code source
/* -*- coding: utf-8 -*- */
#include "SxmlNode.h"
int main()
{
SxmlNode *apiNode ;
SxmlNode *queryNode;
SxmlNode *statNode;
char *pagesStr;
char *articlesStr;
char *editsStr;
char *imagesStr;
int pagesNum;
int articlesNum;
int editsNum;
int imagesNum;
int cumulPages;
int cumulArticles;
int cumulEdits;
int cumulImages;
printf ("{| class=\"wikitable sortable\" \n");
printf ("|- \n");
printf ("!Wiki\n");
printf ("!Pages\n");
printf ("!Articles significatifs\n");
printf ("!Modifications\n");
printf ("!Fichiers (images...)\n");
printf ("|- \n");
cumulPages=0;
cumulArticles=0;
cumulEdits=0;
cumulImages=0;
while ((apiNode=SxmlInputGetDocumentElement()))
{
queryNode=SxmlGetFirstChildByTagName(apiNode, "query");
if (!queryNode)continue;
statNode= SxmlGetFirstChildByTagName(queryNode, "statistics");
if (!statNode)continue;
pagesStr=SxmlGetAttribute(statNode,"pages");
articlesStr=SxmlGetAttribute(statNode,"articles");
editsStr=SxmlGetAttribute(statNode,"edits");
imagesStr=SxmlGetAttribute(statNode,"images");
printf ("|%s\n", SxmlInputRecordKey);
printf ("|{{formatnum:%s}}\n", pagesStr);
printf ("|{{formatnum:%s}}\n", articlesStr);
printf ("|{{formatnum:%s}}\n", editsStr);
printf ("|{{formatnum:%s}}\n", imagesStr);
printf ("|- \n");
pagesNum= atoi(pagesStr);
articlesNum= atoi(articlesStr);
editsNum= atoi(editsStr);
imagesNum= atoi(imagesStr);
cumulPages+=pagesNum;
cumulArticles+=articlesNum;
cumulEdits+=editsNum;
cumulImages+=imagesNum;
};
printf ("|}\n");
printf(";Statistiques cumulées:\n");
printf ("{| class=\"wikitable\" \n");
printf ("|- \n");
printf ("!Pages\n");
printf ("!Articles\n");
printf ("!Modifications\n");
printf ("!Fichiers\n");
printf ("|- \n");
printf ("|{{formatnum:%d}}\n", cumulPages);
printf ("|{{formatnum:%d}}\n", cumulArticles);
printf ("|{{formatnum:%d}}\n", cumulEdits);
printf ("|{{formatnum:%d}}\n", cumulImages);
printf ("|- \n");
printf ("|}\n");
}
Mise en œuvre
Importation
WicriGetPage -l wicri-outils.fr -p "Wicri:Dilib source, module Wicri, commande WicriStatistiquesSite" \
| MediaWikiExtractSources -w | HfdStoreFile
Compilation
gcc testDilib/WicriStatistiquesSite.c $DILIB_CC -l curl -o testDilib/WicriStatistiquesSite
Test
- Pour visualiser la liste d'entrée
cat testDilib/wiki.dict \
| ./testDilib/WicriExpandApiFromList -a "meta=siteinfo&siprop=statistics" \
| SxmlIndent
- Pour tester
cat testDilib/wiki.dict \
| ./testDilib/WicriExpandApiFromList -a "meta=siteinfo&siprop=statistics" \
| ./testDilib/WicriStatistiquesSite
Voir le résultat en page Discussion