Changeset 95494 in spip-zone


Ignore:
Timestamp:
Feb 25, 2016, 5:16:47 PM (4 years ago)
Author:
booz@…
Message:

importer des milliers d'articles en quelques secondes avec spip-cli : spip import -s spip_articles_txt

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/convertisseur/trunk/spip-cli/fichiersImporter.php

    r95489 r95494  
    3535                                'conversion_spip'
    3636                        )
     37                        ->addOption(
     38                                'dest',
     39                                'd',
     40                                InputOption::VALUE_OPTIONAL,
     41                                'id_rubrique de la rubrique où importer les numéros et leurs articles',
     42                                '1'
     43                        )
    3744                ;
    3845        }
     
    4552               
    4653                $source = $input->getOption('source') ;
     54                $id_parent = $input->getOption('dest') ;               
    4755                               
    4856                // Répertoire source, ou arrivent les fichiers Quark (/exports_quark par défaut).
     
    5967                        // Si c'est bon on continue
    6068                        else{
    61                                 $output->writeln("<info>C'est parti pour un petit import !</info>");
     69                                $output->writeln("<info>C'est parti pour un petit import de '$source/' dans la rubrique $id_rubrique...</info>");
    6270                                       
    63                                 $fichiers_xml = preg_files($source . "/", "(?:(?<!\.metadata\.)txt$)");
    64                                
    65                                 $output->writeln("\n<info>" . sizeof($fichiers_xml) . " fichiers à importer dans $source/</info>");
     71                                $fichiers = preg_files($source . "/", "(?:(?<!\.metadata\.)txt$)");
     72                                $output->writeln("\n<info>" . sizeof($fichiers) . " fichiers à importer dans $source/</info>");
    6673
    67                                 foreach($fichiers_xml as $f){
    68                                         $fichier =      preg_replace("/$source.*collections\//","",$f);                                                 
    69                                         $output->writeln("$fichier");
     74                                foreach($fichiers as $f){
     75                                        $fichier =      basename($f) ;
     76                                        preg_match("/^(\d{4})-\d{2}/", $fichier, $m);
     77                                        $numero = $m[0];
     78                                       
     79                                        // chopper l'id_parent dans le fichier ?
     80                                        include_spip("inc/flock");                                                                             
     81                                        lire_fichier($f, $texte);
     82                                       
     83                                        // menage
     84                                        //@@COLLECTION:esRetour ligne automatique
     85                                        //@@SOURCE:article914237.html
     86                                       
     87                                        $texte = preg_replace("/@@COLLECTION.*/", "", $texte);
     88                                        $texte = preg_replace("/@@SOURCE.*/", "", $texte);
     89                                                                               
     90                                        // faut il creer des rubriques ?
     91                                        $id_rubrique = sql_getfetsel("id_rubrique", "spip_rubriques", "titre='$numero'");
     92                                       
     93                                        if(!$id_rubrique){
     94                                                include_spip("inc/rubriques");
     95                                                $annee = $m[1] ;
     96                                                $id_rubrique = creer_rubrique_nommee($annee . "/" . $numero, $id_parent);
     97                                                $output->writeln("<info>Creation de la rubrique $annee / $numero => $id_rubrique</info>");                                             
     98                                        }
     99                                        // inserer l'article
     100                                        include_spip("inc/convertisseur");
     101                                        $GLOBALS['auteur_session']['id_auteur'] = 1 ;                           
     102                                        inserer_conversion($texte, $id_rubrique, $f);
     103                                        $output->writeln("<info>Insertion de l'article $f</info>");                                             
     104                                                                               
    70105                                }       
    71106
Note: See TracChangeset for help on using the changeset viewer.