Show
Ignore:
Timestamp:
02/03/10 19:55:02 (6 weeks ago)
Author:
patfr@…
Message:

Mises à jour automatiques : vérification distante (et mise en cache de cette vérification) des zip potentiels

Location:
_plugins_/couteau_suisse
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • _plugins_/couteau_suisse/outils/maj_auto_action_rapide.php

    r34730 r34886  
    55if (!defined("_ECRIRE_INC_VERSION")) return; // securiser 
    66include_spip('inc/actions'); 
     7include_spip('inc/distant'); 
    78 
    89define('_MAJ_SVN_DEBUT', 'svn://zone.spip.org/spip-zone/'); 
     
    7980 
    8081// renvoie le pattern present dans la page distante 
    81 function maj_auto_rev_distante($url, $pattern, $lastmodified = 0, $force = false) { 
     82// si le pattern est NULL, renvoie un 'is_file_exists' 
     83function maj_auto_rev_distante($url, $pattern=NULL, $lastmodified = 0, $force = false) { 
    8284        $force |= in_array(_request('var_mode'), array('calcul', 'recalcul')); 
    8385 
     
    8991        if (!$force && $maj[1]!==false && ($lastmodified<$maj[0]) && (time()-$maj[0] < 24*3600)) $distant = $maj[1]; 
    9092        else { 
    91                 include_spip('inc/distant'); 
    92                 $distant = recuperer_page($url); 
    93                 $distant = $maj[1] = $distant?(preg_match($pattern, $distant, $regs)?$regs[1]:'-2'):'-1'; 
     93                $distant = $maj[1] = ($pattern!==NULL) 
     94                        ?(($distant = recuperer_page($url)) 
     95                                ?(preg_match($pattern, $distant, $regs)?$regs[1]:'-2') 
     96                                :'-1') 
     97                        :strlen(recuperer_page($url, false, true, 0)); 
    9498                $maj[0] = time(); 
    9599                ecrire_meta('tweaks_maj_auto', serialize($maj_)); 
     
    102106        $get_infos = defined('_SPIP20100')?charger_fonction('get_infos','plugins'):'plugin_get_infos'; 
    103107        $infos = $get_infos($p); 
    104         $p2 = preg_match(',^auto/(.*)$,', $p, $regs)?$regs[1]:''; 
    105         if(strlen($p2)) { 
    106                 // supposition du nom d'archive sur files.spip.org 
    107                 $infos['zip_trac'] = _MAJ_ZIP . $p2. '.zip'; 
    108                 // nom de l'archive recemment installee par chargeur 
    109                 $ok = lire_fichier(sous_repertoire(_DIR_CACHE, 'chargeur').$p2.'/install.log', $log); 
    110                 $infos['zip_log'] = ($ok && preg_match(',[\n\r]source: *([^\n\r]+),msi', $log, $regs)) 
    111                         ?$regs[1]:''; 
    112         } else $infos['zip_log'] = $infos['zip_trac'] = ''; 
    113108        // fichier svn.revision 
    114109        $ok = lire_fichier($svn_rev = _DIR_PLUGINS.$p.'/svn.revision', $svn); 
     
    136131        $infos['rev_rss'] = maj_auto_rev_distante($infos['url_origine'], ', \[(\d+)\],', $lastmodified, $force); 
    137132        $infos['maj_dispo'] = $infos['rev_rss']>0 && $infos['rev_local']>0 && $infos['rev_rss']>$infos['rev_local']; 
     133        // fichiers zip 
     134        $infos['zip_log'] = $infos['zip_trac'] = ''; 
     135        $p2 = preg_match(',^auto/(.*)$,', $p, $regs)?$regs[1]:''; 
     136        if(strlen($p2)) { 
     137                // supposition du nom d'archive sur files.spip.org 
     138                if(maj_auto_rev_distante($f = _MAJ_ZIP.$p2.'.zip')) $infos['zip_trac'] = $f; 
     139                // nom de l'archive recemment installee par chargeur 
     140                if(lire_fichier(sous_repertoire(_DIR_CACHE, 'chargeur').$p2.'/install.log', $log) 
     141                                && preg_match(',[\n\r]source: *([^\n\r]+),msi', $log, $regs) 
     142                                && maj_auto_rev_distante($regs[1])) 
     143                        $infos['zip_log'] = $regs[1]; 
     144                // au final on prend le bon 
     145                if(!$infos['zip_trac']) $infos['zip_trac'] = $infos['zip_log']; 
     146        } 
    138147        return $infos; 
    139148} 
  • _plugins_/couteau_suisse/plugin.xml

    r34852 r34886  
    22        <nom><multi>Swiss Knife[fr]Le Couteau Suisse[ca]El Ganivet Su&#237;s[ar]&#1587;&#1603;&#1610;&#1606; &#1575;&#1604;&#1580;&#1610;&#1576;[nl]Het Zwitserland Mes[gl]A navalla su&#237;za[es]La Navaja Suiza[de]Schweizer Taschenmesser[tr]&#304;svi&#231;re &#199;ak&#305;s&#305;[br]Ar Gontell Suis[pt_br]Canivete Su&#237;&#231;o[ast]La Navaya Suiza[gl]A navalla su&#237;za[ro]Cu&#355;itul Elve&#355;ian[it]Coltellino Svizzero</multi></nom> 
    33        <icon>img/couteau-50.gif</icon> 
    4         <version>1.8.13.07</version> 
     4        <version>1.8.13.08</version> 
    55        <auteur>Patrice Vanneufville 
    66_ &#169; 2007-2009 - Distribu&#233; sous licence GPL