Changeset 108755 in spip-zone


Ignore:
Timestamp:
Feb 2, 2018, 5:22:52 PM (20 months ago)
Author:
booz@…
Message:

convertir depuis le format PMG (presse Allemande)

Location:
_plugins_/convertisseur/trunk
Files:
1 added
4 edited

Legend:

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

    r100516 r108755  
    8282}
    8383
     84// Iterateur pour l'extracteur pmg
     85function inc_pmg_to_array_dist($u){
     86        // le format PMG est une liste d'articles <artikel-liste> qui contient des <artikel>.
     87        // https://www.pressemonitor.de/app/uploads/2016/11/PMG-Lieferantenhandbuch.pdf
     88        // Préparation pour extraire_balises car - est dans \b mais pas _
     89        // Donc <artikel-liste> => <artikel_liste>
     90        include_spip("inc/filtres");
     91        $u = preg_replace(",(artikel|seite|autor|quelle|titel|box)-,Uims","\\1_",$u);
     92        $articles = extraire_balises($u, "artikel");
     93        foreach($articles as $a){
     94                $r = activer_iterateur('pmg', $a) ;
     95                $m[] = $r[0] ;
     96        }
     97        return $m ;
     98}
     99
    84100function activer_iterateur($extracteur, $u){
    85101       
  • _plugins_/convertisseur/trunk/extract/xml_de.php

    r100727 r108755  
    3838               
    3939        $m['date'] = extraire_attribut($metas, 'Edat');
    40         $m["url"] = "http://monde-diplomatique.de/artikel/!".  extraire_attribut($metas, 'DatNr') ;
     40        $m["url"] = extraire_attribut($metas, 'DatNr') ;
    4141
    4242        // pas de puces
     
    306306        $u = preg_replace('~<Hoch>\s*,\s*</Hoch>~Uum',", ",$u);
    307307        $u = preg_replace('~<Hoch>\s*:\s*</Hoch>~Uum',": ",$u);
     308        $u = preg_replace('~<Hoch>\s*:\s*</Hoch>~Uum',": ",$u);
    308309        //var_dump("<textarea>$u</textarea>");
    309310
  • _plugins_/convertisseur/trunk/inc/convertisseur.php

    r108629 r108755  
    331331  $conv_formats['XMLOCR_SPIP'] = 'xml_ocr'; // function extract/
    332332  $conv_formats['XMLDE_SPIP'] = 'xml_de'; // function extract/
     333  $conv_formats['PMG_SPIP'] = 'pmg'; // function extract/
    333334
    334335  //
     
    439440                                $conv_out = $pattern($conv_out);
    440441                }
    441 
    442 
     442               
     443               
    443444                // on convertit (en avant les regex!)
    444445                foreach($conv_formats[$format]['pattern'] as $key=>$pattern) {
     
    447448                }
    448449        }
    449 
     450       
    450451        // fonction HTML2SPIP - http://ftp.espci.fr/pub/html2spip/
    451452        else if ($format=="html_SPIP") {       
    452           if (file_exists(find_in_path('lib/html2spip-0.6/misc_tools.php'))) {                 
     453          if (file_exists(find_in_path('lib/html2spip-0.6/misc_tools.php'))) {
    453454                require_once(find_in_path('lib/html2spip-0.6/misc_tools.php'));
    454455                require_once(find_in_path('lib/html2spip-0.6/HTMLEngine.class'));
     
    480481                                #$conv_out = importer_charset($conv_out, $charset);
    481482                        }
    482 
     483                       
    483484                        if ($cv AND !$conv_out)
    484485                                $log = "<span style='color:red'>"
     
    491492                                        ."</span>";
    492493                }
    493 
     494               
    494495        return $conv_out;
    495496}
  • _plugins_/convertisseur/trunk/spip-cli/convertisseurConvertir.php

    r108451 r108755  
    114114                                // plugin convertisseur
    115115                                include_spip("extract/$extracteur");
    116                                 $fonction_extraction = $GLOBALS['extracteur'][$extracteur] ;
     116                                include_spip("convertisseur_fonctions");
     117                                $fonction_extraction = "inc_${extracteur}_to_array_dist" ;
    117118                               
    118119                                // chopper des fichiers xml mais pas xxx_metatada.xml
     
    147148                                        }
    148149                                       
    149                                         $article = basename($f);
     150                                        $file = basename($f);
    150151                                       
    151152                                        // pour le chemin des documents.
    152153                                        set_request('fichier', $collection . $numero . "fichier.xml");
    153154                                       
    154                                         $contenu = $fonction_extraction($f,$charset);
    155                                        
    156                                         include_spip("inc/convertisseur");
    157                                         $contenu = nettoyer_format($contenu);
    158                                        
    159                                         // Générer des noms de fichiers valides
     155                                        lire_fichier($f,$c);
     156                                        $articles = $fonction_extraction($c);
     157                                       
     158                                        $nb_articles = sizeof($articles) ;
     159                                       
    160160                                        include_spip("inc/charsets");
    161                                         $article = translitteration($article);
    162                                         $article = preg_replace(',[^\w-]+,', '_', $article);
    163                                         $article = preg_replace(',_xml$,', '.txt', $article);
    164                                        
    165                                         // recaler les notes avec le plugin revision nbsp si dispo
    166                                         if(_DIR_PLUGIN_REVISIONNBSP AND $corriger_notes == "oui"){
    167                                                 include_spip('revision_nbsp');
    168                                                 if($c = notes_automatiques($contenu))
    169                                                         $contenu = $c ;
    170                                                 //global $nb_notes;
    171                                                 //echo "***** $f : $nb_notes notes ******\n\n" ;
     161                                        foreach($articles as $contenu){
     162                                               
     163                                                // Générer des noms de fichiers valides
     164                                                if($nb_article == 1){
     165                                                        // si un seul article, on grade le nom de fichier original
     166                                                        $file = translitteration($file);
     167                                                        $file = preg_replace(',[^\w-]+,', '_', $file);
     168                                                        $file = preg_replace(',_xml$,', '.txt', $file);
     169                                                }else{
     170                                                        // plusieurs articles, il faut creer des noms de fichiers
     171                                                        $file = trim(annee($contenu['date']) . "-" . mois($contenu['date']) . "-" .translitteration($contenu['titre'])) ;
     172                                                        $file = preg_replace(',[^\w-]+,', '_', $file) . ".txt" ;
     173                                                        //var_dump($file);
     174                                                }
     175                                               
     176                                                // recaler les notes avec le plugin revision nbsp si dispo
     177                                                if(_DIR_PLUGIN_REVISIONNBSP AND $corriger_notes == "oui"){
     178                                                        include_spip('revision_nbsp');
     179                                                        if($n = notes_automatiques($contenu['insertion']))
     180                                                                $contenu['insertion'] = $n ;
     181                                                        //global $nb_notes;
     182                                                        //echo "***** $f : $nb_notes notes ******\n\n" ;
     183                                                }
     184                                               
     185                                                $c = array(
     186                                                        "fichier_source" => $f,
     187                                                        "dest" => $dest,
     188                                                        "collection" => $collection,
     189                                                        "numero" => $numero,
     190                                                        "contenu" => $contenu,
     191                                                        "basename" => $file ,
     192                                                        "fichier_dest" => $dest . "/" . $collection . $numero . $file
     193                                                );
     194                                               
     195                                                // traitements persos en pipeline maison sur $c avant d'écrire le fichier converti
     196                                                if(find_in_path('convertisseur_perso.php'))
     197                                                        include_spip("convertisseur_perso");
     198                                                if (function_exists('nettoyer_conversion_cli')){
     199                                                        $c = nettoyer_conversion_cli($c);
     200                                                }
     201                                               
     202                                                if(!is_dir($c["dest"] . "/" .  $c["collection"])){
     203                                                        mkdir($c["dest"]  . "/" . $c["collection"]) ;
     204                                                }
     205                                                if(!is_dir($c["dest"]  . "/" . $c["collection"] . $c["numero"])){
     206                                                        mkdir($c["dest"]  . "/" . $c["collection"] . $c["numero"]) ;
     207                                                }
     208                                               
     209                                                // var_dump($c["contenu"]["insertion"]);
     210                                               
     211                                                include_spip("inc/flock");
     212                                                ecrire_fichier($c["fichier_dest"], $c["contenu"]["insertion"]);
     213                                               
     214                                                $output->writeln("Nouvelle conversion : " . $c["fichier_dest"]);
    172215                                        }
    173                                        
    174                                         $c = array(
    175                                                 "fichier_source" => $f,
    176                                                 "dest" => $dest,
    177                                                 "collection" => $collection,
    178                                                 "numero" => $numero,
    179                                                 "contenu" => $contenu,
    180                                                 "basename" => $article ,
    181                                                 "fichier_dest" => $dest . "/" . $collection . $numero . $article
    182                                         );
    183                                        
    184                                         // traitements persos sur $c avant d'écrire le fichier converti
    185                                         if(find_in_path('convertisseur_perso.php'))
    186                                                 include_spip("convertisseur_perso");
    187                                         if (function_exists('nettoyer_conversion_cli')){
    188                                                 $c = nettoyer_conversion_cli($c);
    189                                         }
    190                                        
    191                                         if(!is_dir($c["dest"] . "/" .  $c["collection"])){
    192                                                 mkdir($c["dest"]  . "/" . $c["collection"]) ;
    193                                         }
    194                                         if(!is_dir($c["dest"]  . "/" . $c["collection"] . $c["numero"])){
    195                                                 mkdir($c["dest"]  . "/" . $c["collection"] . $c["numero"]) ;
    196                                         }
    197                                        
    198                                         include_spip("inc/flock");
    199                                         ecrire_fichier($c["fichier_dest"], $c["contenu"]);
    200                                        
    201                                         $output->writeln("Nouvelle conversion : " . $c["fichier_dest"]);
    202216                               
    203217                                }
Note: See TracChangeset for help on using the changeset viewer.