×
HeadHunter and Superjob rezume updater on Ruby on Rails (21 авг 2017)

Практикуемся в написании кода под rails.

Вопрос Extended weather informer. Wunderground.com

Больше
1 год 7 мес. назад #1 от Aleksej
Aleksej создал эту тему: Extended weather informer. Wunderground.com
Ниже приведен код скрипта, работой которого можно всласть полюбоваться в блоге .


<?php
$ip = $_SERVER['REMOTE_ADDR'];
$url = 'http://api.sypexgeo.net/xml/'. $ip .'';
$xml = simplexml_load_string(file_get_contents($url));
$loc_array = array($xml->ip->city->lat,$xml->ip->city->lon);
$loc_safe = array();
foreach($loc_array as $loc){
    $loc_safe[] = urlencode($loc);
}
$loc_string=implode(',', $loc_safe);
$json = file_get_contents('http://api.wunderground.com/api/vash_api_key/conditions/satellite/webcams/forecast/q/' . $loc_string . '.json');
$obj = json_decode($json, true);
$webcam_key = array_rand(array_keys($obj['webcams']), true);
?>

<div><strong><?=($obj['current_observation']['display_location']['full']);?></strong></div>
<div><?=($obj['current_observation']['local_time_rfc822']);?></div>
<div><?=('Lat ' . $obj['current_observation']['display_location']['latitude']);?></div>
<div><?=('Lon ' . $obj['current_observation']['display_location']['longitude']);?></div>
<h4>Weather forecast</h4>
<?

$html .= "</h2><table cellpadding=10 cellspacing=5><tr>";
 
	foreach ($obj['forecast']['simpleforecast']['forecastday'] as $arr) {
 
		$html .= "<td align='center'>" . $arr['date']['weekday'] . "<br />";
		$html .= "<img src='http://icons-pe.wxug.com/i/c/k/" . $arr['icon'] . ".gif' border=0 /><br />";
		$html .= "<font color='red'>" . $arr['high']['celsius'] . '&deg;C' . " </font>";
		$html .= "<font color='blue'>" . $arr['low']['celsius'] . '&deg;C' . "</font>";
		$html .= "</td>";
 
 
	}
	$html .= "</tr></table>";

echo $html;
?>

<h4>Satellite</h4>
<div><?='<img width="200" src="' . $obj['satellite']['image_url'] . '"/>';?></div>
<h4>Weather today</h4>
<div><?='<img src="' . $obj['current_observation']['icon_url'] . '"/>';?></div>
<div><?=($obj['current_observation']['temp_c'] . '&deg;C');?></div>
<div><?=($obj['current_observation']['weather']);?></div>
<div><?=('Humidity ' . $obj['current_observation']['relative_humidity']);?></div>
<div><?=('Pressure ' . $obj['current_observation']['pressure_mb'] . 'mb');?></div>
<div><?=('Visibility ' . $obj['current_observation']['visibility_km'] . 'km');?></div>
<div><?=($obj['forecast']['txt_forecast']['forecastday']['0']['fcttext']);?></div>
<h4>Random webcam</h4>
<div><?='<img width="200" src="' . $obj['webcams'][$webcam_key]['CURRENTIMAGEURL'] . '"/>';?></div>
<p> </p>
<div><?=($obj['webcams'][$webcam_key][neighborhood]);?></div>

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
1 год 2 мес. назад #2 от boris_term
boris_term ответил в теме Extended weather informer. Wunderground.com
Wunderground не работает чето нифига сегодня... это только у меня так?

Бреем, стрижем. Недорого берем.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
1 год 2 мес. назад #3 от serge
serge ответил в теме Extended weather informer. Wunderground.com
не, не думаю. Уже чинят.

Weather Underground ‏@wunderground 20 мин.20 минут назад:
We're experiencing a service disruption, our engineers are investigating. Thanks for your patience!


А я смогу! - А поглядим! - А я упрямый!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
9 мес. 5 дн. назад - 6 мес. 1 нед. назад #4 от Aleksej
Aleksej ответил в теме Extended weather informer. Wunderground.com

serge пишет: не, не думаю. Уже чинят.



Снова проблемы, сервис работает, но не получается получить картинку с веб-камеры (см. демо в блоге). Причем если через проксю, европейскую или американскую, то вроде пашет, а напрямую нет:

<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>*****************</RequestId>
<HostId>
*******************************
</HostId>
</Error>
Последнее редактирование: 6 мес. 1 нед. назад от p.rishard.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
6 мес. 1 нед. назад #5 от Aleksej
Aleksej ответил в теме Extended weather informer. Wunderground.com
Да, картинки веб-камеры в полученном JSON может и не быть, в этом случае HTML у нас с вами окажется не слишком красивым. Добавим в информер несложное условие, позволяющее проверить изображение: оно есть либо его все же нет? Теперь фрагмент кода, отвечающий за отображение статичной картинки веб-камеры, способен выглядеть у нас с вами, например, следующим образом...

Как добавить проверку на наличие изображения

<?
if (@fopen($obj['webcams'][$webcam_key]['CURRENTIMAGEURL'],'r'))
echo '<h4>Random webcam</h4>' . '<div><img width="200" src="' . $obj['webcams'][$webcam_key]['CURRENTIMAGEURL'] . '"/>' . '</div>' . '<p> </p>' . '<div>' . $obj['webcams'][$webcam_key][neighborhood] . '</div>';
?>

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.