Changeset 95735 in spip-zone


Ignore:
Timestamp:
Mar 3, 2016, 6:21:51 PM (5 years ago)
Author:
booz@…
Message:

une petite barre de progression + portabilité sqlite de l'insertion en bdd

Location:
_plugins_/convertisseur/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/convertisseur/trunk/inc/convertisseur.php

    r95144 r95735  
    652652        $c['texte'] = preg_replace("/\n\n+/m", "\n\n", $c['texte']);
    653653
    654         $r = '';
     654        // on ne retient pas l'id_article pour éviter des collisions éventuelles
     655        if($c["id_article"])
     656                unset($c["id_article"]);
     657
     658        $r = array();
    655659        foreach ($c as $var => $val)
    656                 $r .= "$var="._q(trim($val)).', ';
    657 
    658         spip_query("UPDATE spip_articles
    659                 SET $r
    660                 date=NOW(),
    661                 date_modif=NOW()
    662                 WHERE id_article=$id_article"
    663         );
    664 
     660                $r[$var] = sql_quote(trim($val));
     661
     662        sql_update("spip_articles", $r, "id_article=" . $id_article);
     663       
    665664        return $id_article;
    666665}
  • _plugins_/convertisseur/trunk/spip-cli/fichiersImporter.php

    r95494 r95735  
    1919use Symfony\Component\Console\Input\InputOption;
    2020use Symfony\Component\Console\Output\OutputInterface;
     21use Symfony\Component\Console\Helper\ProgressBar;
    2122
    2223class fichiersImporter extends Command {
     
    4041                                InputOption::VALUE_OPTIONAL,
    4142                                'id_rubrique de la rubrique où importer les numéros et leurs articles',
    42                                 '1'
     43                                '0'
    4344                        )
    4445                ;
     
    5556                               
    5657                // Répertoire source, ou arrivent les fichiers Quark (/exports_quark par défaut).
    57                 if(!is_dir($source))
    58                         $output->writeln("<error>Préciser le répertoire avec les fichiers à importer. spip import -s repertoire </error>");
     58                if(!is_dir($source)){
     59                        $output->writeln("<error>Préciser le répertoire avec les fichiers à importer. spip import -s repertoire </error>\n");
     60                        exit ;
     61                }       
     62
     63                if($id_parent == 0){
     64                        $output->writeln("<error>Préciser le secteur cible pour importer. spip import -d `id_secteur` </error>\n");
     65                        exit ;
     66                }       
    5967
    6068               
     
    6775                        // Si c'est bon on continue
    6876                        else{
    69                                 $output->writeln("<info>C'est parti pour un petit import de '$source/' dans la rubrique $id_rubrique...</info>");
    70                                        
    71                                 $fichiers = preg_files($source . "/", "(?:(?<!\.metadata\.)txt$)");
    72                                 $output->writeln("\n<info>" . sizeof($fichiers) . " fichiers à importer dans $source/</info>");
     77                                                               
     78                                $fichiers = preg_files($source . "/", "(?:(?<!\.metadata\.)txt$)", 100000);
     79
     80                                // start and displays the progress bar
     81                                $progress = new ProgressBar($output, sizeof($fichiers));
     82                                $progress->setBarWidth(100);
     83                                $progress->setRedrawFrequency(1);
     84                                $progress->setMessage(" Import de $source/*.txt en cours dans la rubrique $id_parent ... ", 'message');
     85                                $progress->start();
    7386
    7487                                foreach($fichiers as $f){
     
    95108                                                $annee = $m[1] ;
    96109                                                $id_rubrique = creer_rubrique_nommee($annee . "/" . $numero, $id_parent);
    97                                                 $output->writeln("<info>Creation de la rubrique $annee / $numero => $id_rubrique</info>");                                             
     110                                                $progress->clear();
     111                                                $progress->setMessage(" Import de $source/*.txt en cours dans la rubrique $id_parent ... \nCreation de la rubrique $annee / $numero => $id_rubrique", 'message');
     112                                                $progress->display();
     113                                                                                       
    98114                                        }
    99115                                        // inserer l'article
    100116                                        include_spip("inc/convertisseur");
    101117                                        $GLOBALS['auteur_session']['id_auteur'] = 1 ;                           
    102                                         inserer_conversion($texte, $id_rubrique, $f);
    103                                         $output->writeln("<info>Insertion de l'article $f</info>");                                             
    104                                                                                
     118                                        if(inserer_conversion($texte, $id_rubrique, $f)){
     119                                               
     120                                                // Si tout s'est bien passé, on avance la barre
     121                                                $progress->setMessage($f, 'filename');
     122                                                $progress->setFormat("<fg=white;bg=blue>%message%</>\n" . '%current%/%max% [%bar%] %percent:3s%% %elapsed:6s%/%estimated:-6s% %memory:6s%' . "\n  %filename%\n\n");
     123                                                $progress->advance();
     124                                                                                       
     125                                        }else{
     126                                                $output->writeln("<error>échec de l'import de $f</error>");
     127                                                exit ;
     128                                        }
    105129                                }       
    106130
     131                                // ensure that the progress bar is at 100%
     132                                $progress->finish();
    107133                        }
    108134                }
Note: See TracChangeset for help on using the changeset viewer.