Wicri:Dilib source, module Wicri, commande WicriExpandApiFromList
De Wicri Outils
Révision datée du 22 juin 2020 à 15:23 par imported>Jacques Ducloy (→Code source)
Code source
/* -*- coding: utf-8 -*- */
/*
WicriExpandApiFromList.c
*/
#include <stdio.h> /* for printf */
#include <stdlib.h> /* for exit */
#include <getopt.h>
#include "SxmlNode.h"
extern char *optarg;
extern int optind;
int getopt();
char *apiAction;
int proceedWiki(SxmlNode *wiki)
{
char *name;
char *url;
static Buffer *bufUrl=NULL;
if (!bufUrl) bufUrl=NewBuffer();
BufferStrcpy (bufUrl, "https://lorexplor.istex.fr/Wicri/");
BufferStrcat (bufUrl, SxmlLeafText(SxmlGetFirstChildByTagName(wiki, "url")));
BufferStrcat (bufUrl, "/api.php?action=query&format=xml&");
BufferStrcat (bufUrl, apiAction);
name=SxmlLeafText(SxmlGetFirstChildByTagName(wiki, "name"));
printf ("%s\t%s\n", name, BufferString(bufUrl));
return 0;
}
int main(int argc, char **argv)
{
int cOption;
SxmlNode *docInput;
while((cOption=getopt(argc,argv,"a:"))!=EOF)
{switch (cOption)
{
case 'a':
apiAction=optarg;
break;
}
}
while ((docInput=SxmlInputNextDocumentElement()))
{
if(SxmlNodeHasName(docInput,"wiki"))
{
proceedWiki(docInput);
}
}
}
Mise en œuvre
La suite de commande ci-dessous range dans un répertoire testDilib le fichier WicriExpandApiFromList.c
WicriGetPage -l wicri-outils.fr -p "Wicri:Dilib source, module Wicri, commande WicriExpandApiFromList" \
| MediaWikiExtractSources -w | HfdStoreFile
- Simple test
Pour tester la commande en local, faire :
gcc testDilib/WicriExpandApiFromList.c $DILIB_CC -o testDilib/WicriExpandApiFromList
cat myPmc_resultFile.xml \
|NlmPmc2Sxml \
| Utf8FromHexEntity \
| SxmlUnIndent \
| importNlm/NlmPmc2Wicri