Explorar el Código

Utilisation parser de l'extract

Loquicom hace 5 años
padre
commit
9ea16901fd
Se han modificado 1 ficheros con 16 adiciones y 8 borrados
  1. 16 8
      extract.js

+ 16 - 8
extract.js

@@ -8,21 +8,24 @@ const cst = require('./src/constant');
 const timer = require('./src/timer');
 
 // Variables configs et globales
-let sourceFile = './data/dblp.xml';
+const sourceFile = './data/dblp.xml';
+const outputFile = './data/extract.xml';
 let verbose = false;
 
 // Parametrage CLI
-program.version('0.0.1');
+program.version('1.0.0');
 
 program
     .option('-n, --name <string>', 'Nom de l\'auteur dont il faut chercher les co-auteurs')
-    .option('-f, --file <source>', 'Chemin vers le fichier à utiliser pour la recherche des co-auteurs', sourceFile)
+    .option('-f, --file <source>', 'Chemin vers la base de données dblp au format XML', sourceFile)
+    .option('-o, --output <source>', 'Chemin pour le fichier XML à générer', outputFile)
     .option('-v, --verbose', 'Affiche plus d\'informations', verbose);
 
 // Parse des arguments CLI
 program.parse(process.argv);
 const name = (program.name && typeof program.name === 'string') ? program.name : null;
 let source = program.file;
+let out = program.output;
 verbose = program.verbose;
 
 // Verification que le fichier du pre-traitement existe
@@ -54,9 +57,14 @@ function extract(source, name) {
         console.info(`Extraction of ${name}'s information...`);
         timer.start();
     }
-    //TODO Extraction
-    if (verbose) {
-        timer.stop();
-        console.info(`Information about ${name} extracted in ${timer.time()}`);
-    }
+    const parser = require('./src/extract/parser').get();
+    parser.from(source).search(name).parse(data => {
+        if (verbose) {
+            timer.stop();
+            console.info(`Information about ${name} extracted in ${timer.time()}`);
+        }
+        // Transforme en XML et ecrit dans le fichier
+        const xml = require('./src/extract/formatter').toXml(name, data);
+        file.put(out, xml, true);
+    });
 }