Changeset 84327 in spip-zone for _plugins_/aspirateur


Ignore:
Timestamp:
Aug 25, 2014, 11:34:00 AM (6 years ago)
Author:
toutati@…
Message:

nettoyage et doc
quelques modifs en todo

Location:
_plugins_/aspirateur/inc
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/aspirateur/inc/aspirer_curl.php

    r84305 r84327  
    6363**/
    6464function isoler_contenu($chaine){
    65         //Identifiant du div pour isoler le contenu via xpath
     65        //Identifiant donné pour isoler le contenu via xpath (tout tag accepté) (option*)
    6666        $div_id_contenu = trim(lire_config('aspirateur/div_id_contenu'));
    6767        $div_class_contenu_exclure = trim(lire_config('aspirateur/div_class_contenu_exclure'));
     
    8080                }
    8181               
    82                 //on exclut un noeud div avec une class donnée (option*)
     82                //on exclut les noeuds ayant une class donnée (tout tag accepté) (option*)
    8383                if($div_class_contenu_exclure){
    8484                        foreach($xpath->query(".//*[@class='$div_class_contenu_exclure']") as $node) {
     
    129129   //recupere toute la page
    130130   $la_page=la_page($url);
    131    //fabriquer le titre -> todo réviser pour tester en premier le <title> sur $texte_encoded
     131   //fabrique le titre depuis <title>
    132132   if(preg_match("/<title>(.*)<\/title>/siU", $la_page, $title_matches)){
    133133        // Clean up title: remove EOL's and excessive whitespace.
     
    136136        if ($titre!='') return char($titre);   
    137137   }
    138    
     138   //sinon depuis le h1
    139139   $pattern = "/<h1(.*?)>(.*?)<\/h1>/";
    140140   if(preg_match($pattern, $la_page, $h1)){
    141    $titre=$h1[2];
    142    $titre = preg_replace('#&nbsp;#Umis','',$titre);
    143    return char($titre);
     141           $titre=$h1[2];
     142           $titre = preg_replace('#&nbsp;#Umis','',$titre);
     143           return char($titre);
    144144   }
    145145   return "titre_temporaire_de_la_page";
  • _plugins_/aspirateur/inc/aspirer_dom.php

    r84297 r84327  
    7979        $chaine = preg_replace('#[[:blank:]]#Umis','',$chaine);
    8080        $chaine = str_replace("\r\n", "", $chaine);
    81         //$href = strtolower(translitteration($href)); //reecrit les liens, necessite SPIP
    8281        return $chaine;
    8382}
  • _plugins_/aspirateur/inc/aspirer_memo.php

    r84299 r84327  
    1717 *
    1818 * Utilisé par la fonction verifier_le_lien
     19 *
     20 * @param string $url_page
     21 *      l'url de la page à traiter
     22 *
     23 * @param string $url_site_aspirer
     24 *      l'url du site à aspirer
     25 *
     26 * @return string $url_page
     27 *      l'url de la page à traiter ou rien
    1928 *
    2029**/
     
    4756 * créé avec un md5 sur @param $url_parent
    4857 *
     58 * @param string $url_parent
     59 *      l'url du site à aspirer
     60 *
     61 * @return string
     62 *      le fichier créé dans IMG/aspirateur/
    4963 *
    5064**/
     
    6882 *
    6983 * Fonction reprise de SPIP (plugin dist urls_etendues)
     84 *
     85 * todo, sortir la fonction url_nettoyer pour être réutilisable ici ou ailleurs
    7086 *
    7187 *
  • _plugins_/aspirateur/inc/aspirer_nettoyer.php

    r84301 r84327  
    2121 * @return string
    2222 *      le contenu html nettoyé
     23 *
     24 * todo passer en xpath le plus possible
    2325 *
    2426**/
  • _plugins_/aspirateur/inc/aspirer_rss.php

    r84301 r84327  
    1515 * Fabriquer un flux pour un fichier rss et l'enregistrer
    1616 *
    17  * La seule variable est le nom du fichier
    1817 *
    1918 * @example
    20  *      echo do_rss("nom_fichier.xml");
     19 *      do_rss("nom_fichier.xml",3);
    2120 *
    2221 * @param string $fichier
    2322 *      Le nom du fichier xml à enregistrer
     23 *
     24 * @param string $nombre_de_pages
     25 *      Le nombre_de_pages à traiter en items
    2426 *
    2527 * @return string
     
    111113                $texte=$traite_texte_documents['texte'];
    112114               
    113                 //traitement du texte via SPIP pour rss
    114                 //$texte = texte_backend($texte);
    115                
    116115                //cree un item pour chaque page
    117116                $flux.= "\n<item xml:lang='fr'>\n";
     
    135134 *
    136135 * @example
    137  *      do_item($titre,$url_page,$texte_encoded);
     136 *      do_item($titre,$url_page,$texte);
    138137 *
    139138 * @param string $titre
    140139 *      Le titre de l'item
     140 *
    141141 * @param string $url_page
    142142 *      L'url de l'item
    143  * @param string $texte_encoded
    144  *      Le texte html encodé pour le RSS de l'item
     143 *
     144 * @param string $texte
     145 *      Le texte html (encodé ou pas) pour le RSS de l'item
    145146 *
    146147 * @return string
    147148 *
    148149**/
    149 function do_item($titre,$url_page,$texte_encoded){
     150function do_item($titre,$url_page,$texte){
    150151        $nom_site_aspirer = lire_config('aspirateur/nom_site_aspirer');
    151152        $flux = "<title>".$titre."</title>\n";
     
    157158        $flux.= "<description></description>\n"; //todo
    158159        $flux.= "<pubDate></pubDate>\n"; //todo
    159         $flux.= "<content:encoded><![CDATA[".$texte_encoded."]]>\n";
     160        $flux.= "<content:encoded><![CDATA[".$texte."]]>\n";
    160161        $flux.= "</content:encoded>\n";
    161162       
     
    183184        return '<enclosure url="'.$fichier.'" length="'.$length.'" type="'.$type.'" />'."\n";   
    184185}
    185 
    186 // not use
    187 /**
    188  * Encode du HTML pour transmission XML
    189  * notamment dans les flux RSS
    190  *
    191  * http://doc.spip.org/@texte_backend
    192  *
    193  * @param $texte
    194  * @return mixed
    195  */
    196 
    197 function texte_backend_aspirateur($texte) {
    198 
    199         static $apostrophe = array("&#8217;", "'"); # n'allouer qu'une fois
    200 
    201         // echapper les tags &gt; &lt;
    202         $texte = preg_replace(',&(gt|lt);,S', '&amp;\1;', $texte);
    203 
    204         // importer les &eacute;
    205         $texte = filtrer_entites($texte);
    206 
    207         // " -> &quot; et tout ce genre de choses
    208         $u = $GLOBALS['meta']['pcre_u'];
    209         $texte = str_replace("&nbsp;", " ", $texte);
    210         $texte = preg_replace('/\s\s+/'," ",$texte);
    211         // ne pas echapper les sinqle quotes car certains outils de syndication gerent mal
    212         $texte = entites_html($texte, false, false);
    213 
    214         // verifier le charset
    215         $texte = charset2unicode($texte);
    216 
    217         // Caracteres problematiques en iso-latin 1
    218         if ($GLOBALS['meta']['charset'] == 'iso-8859-1') {
    219                 $texte = str_replace(chr(156), '&#156;', $texte);
    220                 $texte = str_replace(chr(140), '&#140;', $texte);
    221                 $texte = str_replace(chr(159), '&#159;', $texte);
    222         }
    223 
    224         // l'apostrophe curly pose probleme a certains lecteure de RSS
    225         // et le caractere apostrophe alourdit les squelettes avec PHP
    226         // ==> on les remplace par l'entite HTML
    227         return str_replace($apostrophe, "'", $texte);
    228 }
    229 
Note: See TracChangeset for help on using the changeset viewer.