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 (