Contenu supprimé Contenu ajouté
Bienvenue sur Wikinews !
 
Aucun résumé des modifications
Ligne 15 :
Bonne continuation parmi nous !
<br />[[Utilisateur:Quentinv57|Quentinv57]] [[Discussion_Utilisateur:Quentinv57|<big><font color="#990000">✍</font></big>]] 25 août 2010 à 22:31 (UTC)
 
Bon, je t'envoie comme promis mon script avant d'aller me coucher. Je n'ai pas eu le temps de le nettoyer, alors j'espère que tu t'en sortiras {{clin}}
 
<source lang="php"><?php
 
function GetMonth ( $str ) {
switch ( $str )
{
case 1 : return 'Janvier' ; break ;
case 2 : return 'Février' ; break ;
case 3 : return 'Mars' ; break ;
case 4 : return 'Avril' ; break ;
case 5 : return 'Mai' ; break ;
case 6 : return 'Juin' ; break ;
case 7 : return 'Juillet' ; break ;
case 8 : return 'Août' ; break ;
case 9 : return 'Septembre' ; break ;
case 10 : return 'Octobre' ; break ;
case 11 : return 'Novembre' ; break ;
case 12 : return 'Décembre' ; break ;
default : return false ;
}
}
 
function CESTtoUTC ( $cest ) {
switch ( $cest )
{
case 1 : return 23 ; break ;
case 2 : return 00 ; break ;
default : return ($cest - 2) ;
}
}
 
function MFtoWN_img ( $str ) {
$str = mb_convert_encoding($str,'ISO-8859-1','UTF-8');
global $arr_tradimg;
if ( array_key_exists($str, $arr_tradimg) ) {
return $arr_tradimg[$str] ;
} else {
return "Erreur bot : le temps \"$str\" est inconnu";
}
}
 
function meteo_get_corresp ()
{
global $wpapi;
$meteoconfig = $wpapi->getpage (METEO_SYMBOLS_PAGE);
preg_match_all ( '#^ (.*) = (.*)$#m' , $meteoconfig , $m) ;
$arr_tradimg = array () ;
foreach ( $m[1] as $key => $to )
{
$from = $m[2][$key] ;
$arr_tradimg[$to] = $from ;
}
return $arr_tradimg;
}
 
 
 
 
 
// Chargement des correspondances entre noms d'images
$arr_tradimg = meteo_get_corresp();
$MeteoFrance = new http ;
 
 
// Météo en France
if (METEO_FRANCE == 'ON')
{
$pagewiki = $wpapi->getpage (METEO_FRANCE_PAGE) ;
 
 
// mise à jour du temps
preg_match_all('`^\|.{2,}=[^0-9]+ <!-- ([0-9]{6}) -->$`iUm' , $pagewiki , $array_regions ) ;
 
$night = '';
foreach ( $array_regions[1] as $i => $ville )
{
$pagemeteo = mb_convert_encoding ( $MeteoFrance->get(METEO_FRANCE_URL . $ville) , "UTF8" ) ;
preg_match ('`<td class="temperatures"><img alt="(.*[^ ]) *" src=".*" title="(.*[^ ]) *"/> .*</td>`iUs', $pagemeteo, $matches ) ;
if (empty($night) && preg_match('#night#',MFtoWN_img($matches[1]))) $night = 'oui';
if ($matches[1]==$matches[2]) $pagewiki = preg_replace ('`^(\|.{2,}=)[^0-9\n]+( <!-- ' .$ville. ' -->)$`iUm' , "$1" .MFtoWN_img($matches[1]). "$2", $pagewiki ) ;
}
 
 
// mise à jour des températures
preg_match_all('`^\|t.*=-?[0-9]+ <!-- ([0-9]{6}) -->$`iUm' , $pagewiki , $array_villes ) ;
 
foreach ( $array_villes[1] as $i => $ville )
{
$pagemeteo = mb_convert_encoding ( $MeteoFrance->get(METEO_FRANCE_URL . $ville) , "UTF8" ) ;
if ($i == 0) {
preg_match ( '`<p class="refreshed"><em>Actualis.+([0-9]+)h([0-9]+)</em></p>`iU' , $pagemeteo , $matches ) ;
$maj_day = date('d');
if (date('H')==0) $maj_day--;
$maj_month = GetMonth(date('m'));
$maj_year = date('Y');
$maj_hour = $matches[1];
$maj_min = $matches[2];
}
preg_match ('`<td class="temperatures"><img .*/> (-?[0-9]+)[^0-9]*°C</td>`iUs', $pagemeteo, $matches ) ;
 
$pagewiki = preg_replace ('`^\|t(.*)=-?[0-9]+( <!-- ' .$ville. ' -->)$`iUm' , "|t$1=" .$matches[1]. "$2", $pagewiki ) ;
}
 
 
// Mise à jour date et heure
$pagewiki = preg_replace ("`^\|date=.*$`Uim", "|date=" .$maj_day.' '.$maj_month.' '.$maj_year , $pagewiki) ;
$pagewiki = preg_replace ("`^\|heure CEST=.*$`Uim", "|heure CEST=" .$maj_hour.':'.$maj_min , $pagewiki) ;
$pagewiki = preg_replace ("`^\|heure UTC=.*$`Uim", "|heure UTC=" .CESTtoUTC($maj_hour).':'.$maj_min , $pagewiki) ;
$pagewiki = preg_replace ("`^\|nuit=.*$`Uim", "|nuit=" . $night , $pagewiki) ;
 
$wpapi->edit (METEO_FRANCE_PAGE, $pagewiki, METEO_FRANCE_SUMMARY, METEO_USE_MINOREDIT, METEO_USE_BOTFLAG) ;
}
 
 
 
// Météo en Nouvelle Calédonie
if (METEO_NCAL == 'ON')
{
$pagewiki = $wpapi->getpage (METEO_NCAL_PAGE) ;
 
preg_match_all('#^\{\{Image label image - nc\|x=[0-9\.]+\|y=[0-9\.]+\|type=.*\|lieu=.*\}\} <!-- (.*) -->$#iUm' , $pagewiki , $array_villes ) ;
 
foreach ( $array_villes[1] as $i => $ville )
{
$pagemeteo = mb_convert_encoding ( $MeteoFrance->get(METEO_NCAL_URL . $ville) , "UTF8" ) ;
if ($i == 0) {
preg_match ( '`&nbsp;Prévisions mises &agrave; jour le ([0-9]+)/([0-9]+)/([0-9]+) &agrave; ([0-9]+):([0-9]+) locales`iU' , $pagemeteo , $matches ) ;
$maj_day = $matches[1];
$maj_month = GetMonth($matches[2]);
$maj_year = $matches[3];
$maj_hour = $matches[4];
$maj_min = $matches[5];
}
preg_match ('#<!-- Début Contenu 1 -->\s*<TABLE.*>\s*<TBODY>\s*<TR>\s*<TD>.*'
. '</tr><tr><td><div align="center">Temps sensible</div></td><td><div align="center"><img src=".*" width="[0-9]+" height="[0-9]+" title="(.*)" /></div></td>'
. '.*'
. '</tr><tr><td><div align="center">Temp&eacute;ratures extr&ecirc;mes \*</div></td><td><div align="center">(-?[0-9]+)\n &deg;C </div></td>'
. '.*</TD>\s*</TR>\s*</TBODY>\s*</TABLE>#iUs', $pagemeteo, $matches ) ;
 
 
$pagewiki = preg_replace ('#^(\{\{Image label image - nc\|x=[0-9\.]+\|y=[0-9\.]+\|type=).*(\|lieu=.*\}\} <!-- ' .$ville. ' -->)$#iUm' , "$1" .str_replace('&eacute;','é',$matches[1]). "$2", $pagewiki ) ;
preg_match ('#^(\{\{Temp label absolute\|x=[0-9\.]+\|y=[0-9\.]+\|text=)-?[0-9]*(\|unit=c\}\} <!-- ' .$ville. ' -->)$#iUm', $pagewiki, $match ) ;
$pagewiki = preg_replace ('#^(\{\{Temp label absolute\|x=[0-9\.]+\|y=[0-9\.]+\|text=)-?[0-9]*(\|unit=c\}\} <!-- ' .$ville. ' -->)$#iUm' , $match[1] .$matches[2]. $match[2], $pagewiki ) ;
}
 
preg_match ("#(text=<span style=\"color: \#D0D0D0;\">'''Wikinews Météo'''<br/>'''Températures en Nouvelle Calédonie en °C'''<br/>'').*(<br />).*(''</span>)#Uim", $pagewiki, $match) ;
$pagewiki = preg_replace ("#(text=<span style=\"color: \#D0D0D0;\">'''Wikinews Météo'''<br/>'''Températures en Nouvelle Calédonie en °C'''<br/>'').*(<br />).*(''</span>)#Uim", $match[1] . $maj_day.' '.$maj_month.' '.$maj_year . $match[2] . $maj_hour.':'.$maj_min . $match[3] , $pagewiki) ;
preg_match ("#(text=<span style=\"color: black;\">'''Wikinews Météo'''<br/>'''Températures en Nouvelle Calédonie en °C'''<br/>'').*(<br />).*(''</span>)#Uim", $pagewiki, $match) ;
$pagewiki = preg_replace ("#(text=<span style=\"color: black;\">'''Wikinews Météo'''<br/>'''Températures en Nouvelle Calédonie en °C'''<br/>'').*(<br />).*(''</span>)#Uim", $match[1] . $maj_day.' '.$maj_month.' '.$maj_year . $match[2] . $maj_hour.':'.$maj_min . $match[3] , $pagewiki) ;
$pagewiki = preg_replace ("#^(\{\{\#if:\|Source : <span class=\"plainlinks\">\[http://france.meteofrance.com/france/accueil Météo France\]</span>, ).*(.\}\})$#Uim", "$1" . 'le ' . $maj_day.' '.$maj_month.' '.$maj_year . ' à ' . $maj_hour.':'.$maj_min . "$2" , $pagewiki) ;
 
 
$wpapi->edit (METEO_NCAL_PAGE, $pagewiki, METEO_NCAL_SUMMARY, METEO_USE_MINOREDIT, METEO_USE_BOTFLAG) ;
}
 
 
?>
</source>