/** * So, the user wants weather, correct? */ public function getWeatherForLocation($sChannel, $sNickname, $sArguments) { if (!$sArguments) { $this->Notice($sNickname, "USAGE: weather [Town or City name]"); return END_EVENT_EXEC; } $sXML = utf8_encode(file_get_contents("http://www.google.com/ig/api?weather=" . urlencode($sArguments))); $pXML = new SimpleXMLElement($sXML); $pCurrentConditions = $pXML->xPath("//xml_api_reply/weather/current_conditions"); $pLocationDetails = $pXML->xPath("//xml_api_reply/weather/forecast_information"); if (!$pLocationDetails) { $this->Notice($sNickname, "Nope, give me a real town name, please!"); return END_EVENT_EXEC; } $this->Message($sChannel, "{b}Weather for {c:darkblue}{$pLocationDetails[0]->city['data']}", FORMAT); $this->Message($sChannel, "{c:darkgreen}Condition:{r} {$pCurrentConditions[0]->condition['data']}", FORMAT); $this->Message($sChannel, "{c:darkgreen}Temperature:{r} {$pCurrentConditions[0]->temp_c['data']}°C, {$pCurrentConditions[0]->temp_f['data']}°F", FORMAT); $this->Message($sChannel, "{c:darkgreen}Humidity:{r} " . substr($pCurrentConditions[0]->humidity['data'], 10), FORMAT); $this->Message($sChannel, "{c:darkgreen}Wind Speed:{r} " . substr($pCurrentConditions[0]->wind_condition['data'], 6), FORMAT); return END_EVENT_EXEC; }