Hacker Public Radio   /     HPR4266: What's the weather?

Description

This show has been flagged as Clean by the host. One web service that can find out the weather on the command line is: $ curl wttr.in Inspired by this is the following script in PHP that uses data from 7timer.info Available at https://gist.github.com/macsplit <?php date_default_timezone_set('UTC'); $lon = "-0.19759370325694858"; $lat = "51.35956063540873"; $url = "https://www.7timer.info/bin/civil.php?lon=$lon&lat=$lat&unit=metric&ac=0&output=json"; $weathers = [ 'tsday' => "☀️ Hot Day", 'clearday' => "☀️ Clear Day", 'clearnight' => "🌙 Clear Night", 'pcloudyday' => "⛅ Partially Cloudy Day", 'pcloudynight' => "☁️ Partially Cloudy Night", 'mcloudyday' => "🌥️ Moderately Cloudy Day", 'mcloudynight' => "☁️ Moderately Cloudy Night", 'cloudyday' => "☁️ Cloudy Day", 'cloudynight' => "☁️ Cloudy Night", 'humidday' => "🌡️ Humid Day", 'humidnight' => "🌡️ Humid Night", 'lightrainday' => "🌧️ Lightly Rainy Day", 'lightrainnight' => "🌧️ Lightly Rainy Night", 'oshowerday' => "🌧️ Overcast Showery Day", 'oshowernight' => "🌧️ Overcast Showery Night", 'ishowerday' => "🌧️ Showery Day", 'ishowernight' => "🌧️ Showery Night", 'lightsnowday' => "❄️ Lightly Snowy Day", 'lightsnownight' => "❄️ Lightly Snowy Night", 'rainday' => "🌧️ Rainy Day", 'rainnight' => "🌧️ Rainy Night", 'snowday' => "❄️ Snowy Day", 'snownight' => "❄️ Snowy Night", 'rainsnowday' => "🌨️ Rainy and Snowy Day", 'rainsnownight' => "🌨️ Rainy and Snowy Night" ]; $json = file_get_contents($url); if (!$json) exit(); $obj = json_decode($json); $init = DateTime::createFromFormat('YmdH', $obj->init)->getTimestamp(); $series = $obj->dataseries; $now = time(); foreach ($series as $k => $point) { $timepoint = $point->timepoint; $timestamp = $init + ($timepoint * 3600); $diff = abs($timestamp - $now); $data[$diff] = $point; } $key = min(array_keys($data)); $measure = $data[$key]; $temperature = $measure->{'temp2m'}; $weather_desc = $weathers[$measure->weather]; echo "$weather_desc $temperature"."°C\n"; ?> Editor's Note: Modified 2024-11-13 in line with comment #1 Provide feedback on this episode.

Summary

One web service that can find out the weather on the command line is: $ curl wttr.in Inspired by this is the following script in PHP that uses data from 7timer.info Available at https://gist.github.com/macsplit <?php date_default_timezone_set('UTC'); $lon = "-0.19759370325694858"; $lat = "51.35956063540873"; $url = "https://www.7timer.info/bin/civil.php?lon=$lon&lat=$lat&unit=metric&ac=0&output=json"; $weathers = [ 'tsday' => "☀️ Hot Day", 'clearday' => "☀️ Clear Day", 'clearnight' => "🌙 Clear Night", 'pcloudyday' => "⛅ Partially Cloudy Day", 'pcloudynight' => "☁️ Partially Cloudy Night", 'mcloudyday' => "🌥️ Moderately Cloudy Day", 'mcloudynight' => "☁️ Moderately Cloudy Night", 'cloudyday' => "☁️ Cloudy Day", 'cloudynight' => "☁️ Cloudy Night", 'humidday' => "🌡️ Humid Day", 'humidnight' => "🌡️ Humid Night", 'lightrainday' => "🌧️ Lightly Rainy Day", 'lightrainnight' => "🌧️ Lightly Rainy Night", 'oshowerday' => "🌧️ Overcast Showery Day", 'oshowernight' => "🌧️ Overcast Showery Night", 'ishowerday' => "🌧️ Showery Day", 'ishowernight' => "🌧️ Showery Night", 'lightsnowday' => "❄️ Lightly Snowy Day", 'lightsnownight' => "❄️ Lightly Snowy Night", 'rainday' => "🌧️ Rainy Day", 'rainnight' => "🌧️ Rainy Night", 'snowday' => "❄️ Snowy Day", 'snownight' => "❄️ Snowy Night", 'rainsnowday' => "🌨️ Rainy and Snowy Day", 'rainsnownight' => "🌨️ Rainy and Snowy Night" ]; $json = file_get_contents($url); if (!$json) exit(); $obj = json_decode($json); $init = DateTime::createFromFormat('YmdH', $obj->init)->getTimestamp(); $series = $obj->dataseries; $now = time(); foreach ($series as $k => $point) { $timepoint = $point->timepoint; $timestamp = $init + ($timepoint * 3600); $diff = abs($timestamp - $now); $data[$diff] = $point; } $key = min(array_keys($data)); $measure = $data[$key]; $temperature = $measure->{'temp2m'}; $weather_desc = $weathers[$measure->weather]; echo "$weather_desc $temperature"."°Cn"; ?> Editor's Note: Modified 2024-11-13 in line with comment #1

Subtitle
Duration
Publishing date
2024-12-09 00:00
Link
https://hackerpublicradio.org/eps/hpr4266/index.html
Contributors
  leehanken.nospam@nospam.gmail.com (Lee)
author  
Enclosures
https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr4266/hpr4266.mp3
audio/mpeg