$val)
{
if( is_array($val) )
{
$return[$key] = utf8_array_decode($val);
}
else
{
$return[$key] = utf8_decode($val);
}
}
return $return;
}
class saabotti
{
function saa(&$irc, &$data)
{
$paikkakunta = ucfirst($data->messageex[1]);
// $irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel,
// "Jeps, kelitiedot paikkakunnalle $paikkakunta: ");
//rollen koodi alkaa
$lines = file ('http://www.fmi.fi/saa/paikalli.html?kunta='.$paikkakunta.'/'); //hakee sään urlin
foreach ($lines as $line_num => $tulos)
{
if (preg_match("/Tuorein säähavainto:/", $tulos)) {
$tulos_exlude = explode('
', $tulos);
$tulos_split = explode('
', $tulos_exlude[1]);
$poistettavat = array('','','
','ä','ö','
','','
',' ','°','', 'Tuorein säähavainto: ', ' Suomen aikaa');
$tilalle = array('','','','ä','ö',': ','','',' ','°','', '', '');
$hieno = str_replace($poistettavat, $tilalle, $tulos_split[0]);
$kaupungit = array('Alajärvi', 'Asikkala', 'Enontekiö', 'Espoo', 'Foglo', 'Haapavesi', 'Hailuoto', 'Halsua', 'Hammarland', 'Hanko', 'Heinola', 'Helsinki', 'Hyvinkää', 'Hämeenlinna', 'Iisalmi', 'Ilomantsi', 'Inari', 'Inkoo', 'Joensuu', 'Jokioinen Joutsa', 'Juuka', 'Juupajoki', 'Juva', 'Jyväskylä', 'Jämsä', 'Kajaani', 'Kalajoki', 'Kankaanpää', 'Karvia', 'Kauhajoki', 'Kemi', 'Kemijärvi', 'Kemiönsaari', 'Kilpisjärvi', 'Kirkkonummi', 'Kittilä', 'Kokemäki', 'Kokkola', 'Korsnas', 'Kotka', 'Kouvola', 'Kristiinankaupunki', 'Kuhmo', 'Kumlinge', 'Kuopio', 'Kustavi', 'Kuusamo', 'Lahti', 'Lappeenranta', 'Lieksa', 'Lohja', 'Loviisa', 'Luhanka', 'Länsi-Turunmaa', 'Maaninka', 'Maarinahamina', 'Mikkeli', 'Multia', 'Muonio', 'Naantali', 'Nivala', 'Nurmes', 'Nurmijärvi', 'Oulu', 'Parikkala', 'Pelkosenniemi', 'Pello', 'Pietarsaari', 'Pori', 'Porvoo', 'Pudasjärvi', 'Punkaharju', 'Puumala', 'Pyhäjärvi', 'Raahe', 'Raasepori', 'Ranua', 'Rauma', 'Rautavaara', 'Rovaniemi', 'Saariselkä', 'Salla', 'Salo', 'Savonlinna', 'Savukoski', 'Seinäjoki', 'Siikajoki', 'Sodankylä', 'Sotkamo', 'Suomussalmi', 'Taipalsaari', 'Taivalkoski', 'Tampere', 'Tohmajärvi', 'Tornio', 'Turku', 'Utsjoki', 'Uusikaupunki', 'Vaasa', 'Vantaa', 'Varkaus', 'Vihti', 'Viitasaari', 'Virolahti', 'Virrat', 'Ylitornio', 'Ylivieska', 'Ähtäri');
if (in_array($paikkakunta, utf8_array_decode($kaupungit) )) {
$irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel,
"\002".$paikkakunta."\002: ".utf8_decode($hieno) );
} elseif ($paikkakunta == "Kaupunki" or $paikkakunta == "kaupunki") {
$irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel,
"Luuletko olevas fiksukin?" );
} else {
$irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel,
"\002".$paikkakunta."\002 ei ole kaupunki? Yritä näillä: http://peikko.us/paikkakunnat.txt" );
}
}
}
//rollen koodi loppuu
}
}
$host = "xs4all.nl.quakenet.org";
$port = 6667;
$nick = "Meteorologi";
$chans = array("#pulina");
//$chans = array("#pulina", "#kumiotus", "#peikko.us", "#untuva", "#redrum187");
//redrum on fveitsin kanava
//$erikoiskanava1 = utf8_decode("#keltaiset_jänöt");
//$erikoiskanava2 = utf8_decode("#jyväskylä");
$bot = &new saabotti( );
$irc = &new Net_SmartIRC( );
$irc->setUseSockets( TRUE );
$irc->registerActionhandler(SMARTIRC_TYPE_CHANNEL, utf8_decode('^!sää'), $bot, 'saa' );
$irc->registerActionhandler(SMARTIRC_TYPE_CHANNEL, utf8_decode('^!keli'), $bot, 'saa' );
$irc->connect( $host, $port );
$irc->login( $nick, 'Rollen sääbotti. Hakee kelitiedot Suomen ilmatieteenlaitokselta', 0, $nick );
$irc->join($chans);
//$irc->join(array($erikoiskanava1));
//$irc->join(array($erikoiskanava2));
$irc->listen( );
$irc->disconnect( );
?>