twilio-time-and-temperature/time-temp.php

56 lines
2.6 KiB
PHP
Raw Normal View History

2018-01-17 04:06:59 +00:00
<?php
require('time-temp.inc.php');
$cache_path = "/tmp/timetemp-".md5($url.$wunderkey.$feature.$path).".tmp";
$from_cache = 0;
// update weather every half hour
if (file_exists($cache_path) && (time() - filemtime($cache_path) < 1800) ) {
$response = file_get_contents($cache_path);
$from_cache = 1;
} else {
$response = file_get_contents($url.$wunderkey.$feature.$path);
file_put_contents($cache_path, $response);
}
$jso = json_decode($response);
$obs = $jso->current_observation;
$tz = new DateTimeZone($obs->local_tz_long);
$obs_date = new DateTime($obs->local_time_rfc822);
$date = new DateTime('now', $tz);
$dst = $date->format('I');
if ($dst === "1") {
$dst_text = "is";
} else {
$dst_text = "is not";
}
if ($obs->pressure_trend == "+") {
$pres_text = "and rising";
} elseif ($obs->pressure_trend == "-") {
$pres_text = "and falling";
} else {
$pres_text = "and steady";
}
header('Content-Type: application/xml');
echo '<?xml version="1.0" encoding="UTF-8"?>
<!-- from_cache: '.$from_cache.' filemtime: '.filemtime($cache_path).' -->
<Response>
<Message>The current time is '.$date->format('g:i:s A').', on '.$date->format('F j, Y').'. It is week number '.((int)$date->format('W')).' and day number '.((int)$date->format('z')).' of the year. It '.$dst_text.' currently Daylight Saving Time in '.$date->format('T').'. The temperature in '.$obs->observation_location->city.' was '.$obs->temp_f.'F today at '.$obs_date->format('g:i A').' (zyphon.com via wunderground.com)</Message>
<Say voice="man">Hello. '.$date->format('g:i:s A').' is the current time, on '.$date->format('F j, Y').'. It is week number '.((int)$date->format('W')).' and day number '.((int)$date->format('z')).' of the year. It '.$dst_text.' currently Daylight Saving Time in '.$obs->display_location->city.'.</Say>
<Say voice="woman">Thank you for calling '.$obs->display_location->city.' Time and Temperature: a free hobby service, courtesy of zye fawn dot com, and Weather Underground dot com.</Say>
<Say voice="man">The temperature in '.$obs->observation_location->city.' was '.$obs->temp_f.' degrees Fahrenheit today at '.$obs_date->format('g:i A').'. The weather was '.$obs->weather.' with winds '.$obs->wind_string.'. The dew point was '.$obs->dewpoint_f.' degrees, pressure '.$obs->pressure_mb.' millibars '.$pres_text.', visibility '.$obs->visibility_mi.' miles. The temperature felt like '.$obs->feelslike_f.' degrees.</Say>
<Gather input="dtmf" timeout="5" numDigits="1">
<Say voice="woman">Please press any key to hear this message again.</Say>
</Gather>
<Say voice="woman">Thanks again for calling. Goodbye.</Say>
</Response>';