alias html { var %x | var %i | %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x) | %x = $remove(%x, ) | return %x } ON *:TEXT:!meteo *:#: { if ($sock(meteo)) || ($sock(meteo2)) { msg $chan ·Meteo· Č gia in corso una ricerca, aspettare i risultati. | halt } unset %meteo* set %meteo.chan $chan set %meteo.ticks $ticks set %meteo.find $replace($2-,$chr(32),$chr(43)) sockopen meteo meteo.ansa.it 80 } on 1:SOCKOPEN:meteo: { if ($sockerr > 0) return sockwrite -n meteo $eval(GET http://meteo.ansa.it/ricerca.asp?cerca=,0) $+ %meteo.find } on 1:SOCKCLOSE:meteo: { return } on 1:SOCKREAD:meteo: { if ($sockerr > 0) return :meteo sockread %meteo.temp if ($sockbr == 0) return if (Nessun Comune isin %meteo.temp) { msg %meteo.chan ·Meteo· $upper($left($replace(%meteo.find,+,$chr(32)),1)) $+ $right($replace(%meteo.find,+,$chr(32)),$calc($len($replace(%meteo.find,+,$c hr(32))) -1)) $+ : comune inesistente. [ $+ $calc(($ticks - %meteo.ticks) / 1000) $+ secs.] unset %meteo* | sockclose meteo | return } if (Location: isin %meteo.temp) { set %meteo.url $remove(%meteo.temp,$gettok(%meteo.temp,1,32),$chr(32)) sockopen meteo2 meteo.ansa.it 80 | sockclose meteo | return } if ($replace(%meteo.find,+,$chr(32)) isin %meteo.temp) && ($gettok(%meteo.temp,1-3,32) == 0) return sockwrite -n meteo2 $eval(GET http://meteo.ansa.it/Regione.asp?,0) $+ $remove(%meteo.url,Regione.asp?) } on 1:SOCKCLOSE:meteo2: { return } on 1:SOCKREAD:meteo2: { if ($sockerr > 0) return :meteo2 sockread %meteo.temp if ($sockbr == 0) return if (  isin %meteo.temp) && ( isin %meteo.temp) { set %meteo.regione $remove($html(%meteo.temp), ) goto meteo2 } if ($replace(%meteo.find,+,$chr(32)) isin %meteo.temp) && ( isin %meteo.temp) && (!%meteo.citta) { set %meteo.citta $html(%meteo.temp) if ($replace(%meteo.find,+,$chr(32)) !isin %meteo.citta) { unset %meteo.citta | goto meteo2 } else { set %meteo.comune on | goto meteo2 } } if (%meteo.comune == on) && ($gettok(%meteo.temp,1-2,32) ==
) set %meteo.comune off } goto meteo2 } if (%meteo.comune == on) && ( isin %meteo.temp) { inc %meteo.temperatura 1 if (%meteo.temperatura == 1) { set %meteo.temper $html(%meteo.temp) | goto meteo2 } elseif (%meteo.temperatura > 1) && (%meteo.temperatura < 3) { set %meteo.temper %meteo.temper $html(%meteo.temp) set %meteo.temper , la temperatura e' intorno a  $+ $round($calc( ( $gettok(%meteo.temper,1,32) + $gettok(%meteo.temper,2,32) ) /2 ),1) $+ ° - min $gettok(%meteo.temper,1,32) $+ ° max $gettok(%meteo.temper,2,32) $+ °. | goto meteo2 } } if (altitudine isin %meteo.temp) { set %meteo.alt $gettok($gettok(%meteo.temp,$calc($numtok(%meteo.temp,32) -1) $+ -,32),1,32) goto meteo2 } if (vento isin %meteo.temp) && (%meteo.vento != on) { set %meteo.vento on | goto meteo2 } if (%meteo.vento == on) && (

isin %meteo.temp) { set %meteo.spira $remove(%meteo.temp,

) $+ . set %meteo.tipovento on goto meteo2 } if (%meteo.tipovento == on) { msg %meteo.chan ·Meteo· %meteo.regione $+ : $iif($mid(%meteo.citta,1,1) isin aeiou,Ad,A) %meteo.citta $iif(temporale isin %meteo.tempo,c'č il,il tempo č) $lower(%meteo.tempo) $+ %meteo.temper Altitudine media: %meteo.alt $+ m s.l.m. $iif($gettok(%meteo.temp,1,32) = vento,Un,Una) %meteo.temp spira %meteo.spira [ $+ $calc(($ticks - %meteo.ticks) / 1000) $+ secs.] unset %meteo* | sockclose meteo2 | return } if ( isin %meteo.temp) { msg %meteo.chan ·Meteo· %meteo.regione $+ : $iif($mid(%meteo.citta,1,1) isin aeiou,Ad,A) %meteo.citta $iif(temporale isin %meteo.tempo,c'č il,il tempo č) $lower(%meteo.tempo) $+ %meteo.temper Altitudine media: %meteo.alt $+ m s.l.m. [ $+ $calc(($ticks - %meteo.ticks) / 1000) $+ secs] unset %meteo* | sockclose meteo2 | return } goto meteo2 }