powered by nequal
Home » Services_WeatherUnderground » Timeline » 1691

Changeset 1691 -- 2010-03-05 18:23:43

Author
FreeBSE
Comment
風向判別コードをスリムにした 風速の表現を変更 演算子切り替えによって生じていたキャッシュ削除機能のWarningを消した エラー発生時における、メモリに対する若干の修正 Windows上でもパーミッション変更をして、Warningの原因になっていた問題を解消へ

Diffs

Services_WeatherUnderground/trunk/WeatherUnderground.php

@@ -108,7 +108,8 @@
* @return 失敗:FALSE
*/
private function cacheSet($data, $id){
-	    if(!is_dir('tmp')) { mkdir('tmp'); chmod(0777, 'tmp'); }
+	    if(!is_dir('tmp')) mkdir('tmp');
+	    if(strpos(PHP_OS, 'WIN') !== 0) chmod(0777, 'tmp');
$Cache_Lite = new Cache_Lite($this->cache_options);
if(!$this->cacheCheck($Cache_Lite, $id)){
$r = $Cache_Lite->save($data, $id);
@@ -127,8 +128,10 @@
if(!is_dir(CACHE_BASE_DIR)) return false;
$dir = scandir(CACHE_BASE_DIR);
foreach($dir as $val){
-		if($val !== '.' || $val !== '..' && ((int) (time() - filemtime(CACHE_BASE_DIR . $val))) > LIFE_TIME){
-		    unlink(CACHE_BASE_DIR . $val);
+		if($val !== '.' && $val !== '..' && ((int) (time() - filemtime(CACHE_BASE_DIR . $val)) > LIFE_TIME)){
+		    if(file_exists(CACHE_BASE_DIR . $val)){
+			unlink(CACHE_BASE_DIR . $val);
+		    }
}
}
unset($dir);
@@ -175,69 +178,27 @@
*/
protected function getWindDir($winddir){
switch($winddir){
-		case 'NNW':
-		    $wind_dir = '北北西';
-		    break;
-		case 'NW':
-		    $wind_dir = '北西';
-		    break;
-		case 'WNW':
-		    $wind_dir = '西北西';
-		    break;
-		case 'W':
-		    $wind_dir = '西';
-		    break;
-		case 'West':
-		    $wind_dir = '西';
-		    break;
-		case 'N':
-		    $wind_dir = '北';
-		    break;
-		case 'North':
-		    $wind_dir = '北';
-		    break;
-		case 'E':
-		    $wind_dir = '東';
-		    break;
-		case 'East':
-		    $wind_dir = '東';
-		    break;
-		case 'NE':
-		    $wind_dir = '北東';
-		    break;
-		case 'NNE':
-		    $wind_dir = '北北東';
-		    break;
-		case 'ENE':
-		    $wind_dir = '東北東';
-		    break;
-		case 'S':
-		    $wind_dir = '南';
-		    break;
-		case 'South':
-		    $wind_dir = '南';
-		    break;
-		case 'SE':
-		    $wind_dir = '南東';
-		    break;
-		case 'SSE':
-		    $wind_dir = '南南東';
-		    break;
-		case 'ESE':
-		    $wind_dir = '東南東';
-		    break;
-		case 'WSW':
-		    $wind_dir = '西南西';
-		    break;
-		case 'SSW':
-		    $wind_dir = '南南西';
-		    break;
-		case 'SW':
-		    $wind_dir = '南西';
-		    break;
-		case 'Variable':
-		    $wind_dir = '無風';
-		    break;
+		case 'NNW':$wind_dir = '北北西';break;
+		case 'NW':$wind_dir = '北西';break;
+		case 'WNW':$wind_dir = '西北西';break;
+		case 'W':$wind_dir = '西';break;
+		case 'West':$wind_dir = '西';break;
+		case 'N':$wind_dir = '北';break;
+		case 'North':$wind_dir = '北';break;
+		case 'E':$wind_dir = '東';break;
+		case 'East':$wind_dir = '東';break;
+		case 'NE':$wind_dir = '北東';break;
+		case 'NNE':$wind_dir = '北北東';break;
+		case 'ENE':$wind_dir = '東北東';break;
+		case 'S':$wind_dir = '南';break;
+		case 'South':$wind_dir = '南';break;
+		case 'SE':$wind_dir = '南東';break;
+		case 'SSE':$wind_dir = '南南東';break;
+		case 'ESE':$wind_dir = '東南東';break;
+		case 'WSW':$wind_dir = '西南西';break;
+		case 'SSW':$wind_dir = '南南西';break;
+		case 'SW':$wind_dir = '南西';break;
+		case 'Variable':$wind_dir = '無風';break;
}
return $wind_dir;
}
@@ -259,6 +220,7 @@
*/
public function getWeatherData(){
if(!$this->weather['station_id']){
+		unset($this->weather);
return CITY_NOT_FOUND;
}
@@ -268,6 +230,8 @@
//風速変換
$mph = $this->convertMphToMetor($this->weather['wind_mph']);
+	    $mph = $mph == 0 ? '無風' : $mph . ' m/s';
+
$weather = array(
//街
'city' => $this->weather['display_location']['city'],
@@ -288,7 +252,7 @@
//風向
'wind_dir' => $wind_dir,
//風速
-		'wind_speed' => $mph . ' m/s',
+		'wind_speed' => $mph,
//気圧
'pressure' => $this->weather['pressure_mb'] . ' hPa',
);