code cleaning

This commit is contained in:
2018-04-15 13:14:37 +02:00
parent ffc94cb85a
commit 588f9bb102
2 changed files with 103 additions and 52 deletions

View File

@@ -192,6 +192,57 @@ class Spot extends Main
return $asMessages;
}
private function getPictures()
{
$asPicPaths = glob('files/*.{jpg,JPG,jpeg,JPEG,png,PNG}', GLOB_BRACE);
$asPics = array();
foreach($asPicPaths as $sPicPath)
{
//Finding picture timestamp
$asPicInfo = self::getPicInfo($sPicPath);
$iPicTimeStamp = $asPicInfo['timestamp'];
//Preparing pictures sorting key and related info
if( Settings::MODE != self::MODE_HISTO ||
($iPicTimeStamp >= strtotime(Settings::HISTO_SPAN['from']) && $iPicTimeStamp <= strtotime(Settings::HISTO_SPAN['to']))) {
$asPics[] = array(
'path' => $sPicPath,
'rotate' => $asPicInfo['rotate'],
'timestamp' => $iPicTimeStamp,
'formatted_time'=> date(self::FORMAT_TIME, $iPicTimeStamp),
'relative_time' => Toolbox::getDateTimeDesc($iPicTimeStamp)
);
}
}
return $asPics;
}
private function getPosts()
{
$asInfo = array('from'=>self::POST_TABLE);
if(Settings::MODE==self::MODE_HISTO) {
$asInfo['constraint'] = array('led'=>Settings::HISTO_SPAN);
$asInfo['constOpe'] = array('led'=>"BETWEEN");
}
$asPosts = $this->oDb->selectRows($asInfo);
foreach($asPosts as &$asPost) {
$iUnixTimeStamp = strtotime($asPost['led']);
$asPost['relative_time'] = Toolbox::getDateTimeDesc($iUnixTimeStamp);
$asPost['formatted_time'] = date(self::FORMAT_TIME, $iUnixTimeStamp);
$asPost['formatted_name'] = Toolbox::mb_ucwords($asPost['name']);
}
return $asPosts;
}
private static function getJsonId($iTimeStamp, $sPriority='0', $iDbId=0)
{
return ($iTimeStamp * -1).'.'.$sPriority.$iDbId;
}
public function getNewsFeed($iChunk=0)
{
$asFeed = array();
@@ -200,62 +251,36 @@ class Spot extends Main
$asMessages = $this->getSpotMessages();
foreach($asMessages as $asMessage)
{
$iId = ($asMessage['unix_timestamp']*-1).'.0'.$asMessage[Db::getId(self::MSG_TABLE)];
$asFeed[$iId] = $asMessage;// array('type'=>'message', 'time'=>$asMessage['relative_time'], 'text'=>$asMessage['relative_time']);
$iMsgId = $asMessage[Db::getId(self::MSG_TABLE)];
$iId = self::getJsonId($asMessage['unix_timestamp'], '0', $iMsgId);
$asFeed[$iId] = $asMessage;
$asFeed[$iId]['type'] = 'message';
$asFeed[$iId]['id'] = $asMessage[Db::getId(self::MSG_TABLE)];
$asFeed[$iId]['displayed_id'] = $iMsgId;
}
//Pictures
$asPicPaths = glob('files/*.{jpg,JPG,jpeg,JPEG,png,PNG}', GLOB_BRACE);
foreach($asPicPaths as $iKey=>$sPicPath)
{
//Finding picture timestamp
$asPicInfo = self::getPicInfo($sPicPath);
$iPicTimeStamp = $asPicInfo['timestamp'];
//Preparing pictures sorting key and related info
if( Settings::MODE!=self::MODE_HISTO ||
($iPicTimeStamp>=strtotime(Settings::HISTO_SPAN['from']) && $iPicTimeStamp<=strtotime(Settings::HISTO_SPAN['to']))) {
$asPics[($iPicTimeStamp*-1).'.1'.$iKey] = array(
'type' => 'picture',
'path' => $sPicPath,
'rotate' => $asPicInfo['rotate'],
'formatted_time'=> date(self::FORMAT_TIME, $iPicTimeStamp),
'relative_time' => Toolbox::getDateTimeDesc($iPicTimeStamp)
);
}
}
ksort($asPics);
$iCount = count($asPics);
$asPics = $this->getPictures();
foreach($asPics as $iKey=>$asPic)
{
$asFeed[$iKey] = $asPic;
$asFeed[$iKey]['id'] = $iCount--;
$iId = self::getJsonId($asPic['timestamp'], '1', $iKey);
$asFeed[$iId] = $asPic;
$asFeed[$iId]['type'] = 'picture';
}
//Post
$asInfo = array('from'=>self::POST_TABLE);
if(Settings::MODE==self::MODE_HISTO) {
$asInfo['constraint'] = array('led'=>Settings::HISTO_SPAN);
$asInfo['constOpe'] = array('led'=>"BETWEEN");
}
$asPosts = $this->oDb->selectRows($asInfo);
$asPosts = $this->getPosts();
foreach($asPosts as $asPost)
{
$iUnixTimeStamp = strtotime($asPost['led']);
$iId = ($iUnixTimeStamp*-1).'.2'.$asPost[Db::getId(self::POST_TABLE)];
$asFeed[$iId] = array('name'=>Toolbox::mb_ucwords($asPost['name']), 'post'=>$asPost['content'], 'type'=>'post');;
$asFeed[$iId]['relative_time'] = Toolbox::getDateTimeDesc($iUnixTimeStamp);
$asFeed[$iId]['formatted_time'] = date(self::FORMAT_TIME, $iUnixTimeStamp);
//$asFeed[$iId]['id'] = $asPost[Db::getId(self::POST_TABLE)];
$iId = self::getJsonId(strtotime($asPost['led']), '2', $asPost[Db::getId(self::POST_TABLE)]);
$asFeed[$iId] = $asPost;
$asFeed[$iId]['type'] = 'post';
}
//Sort by key
ksort($asFeed);
//split chunks
$asFeed = array_slice($asFeed, $iChunk*self::FEED_CHUNK_SIZE, self::FEED_CHUNK_SIZE);
//Split chunks
//$asFeed = array_slice($asFeed, $iChunk*self::FEED_CHUNK_SIZE, self::FEED_CHUNK_SIZE);
return self::getJsonResult(true, '', $asFeed);
}
@@ -277,13 +302,16 @@ class Spot extends Main
public static function getPicInfo($sPicPath)
{
$iPicTimeStamp = 0;
$iPicTimeStamp = $iPicTakenTimeStamp = $iPicFileTimeStamp = 0;
$asExif = @exif_read_data($sPicPath, 0, true);
//Timestamp
if(!empty($asExif) && array_key_exists('DateTimeOriginal', $asExif['EXIF'])) $iPicTimeStamp = strtotime($asExif['EXIF']['DateTimeOriginal']);
else $iPicTimeStamp = $asExif['FILE']['FileDateTime'];
//Timestamps
if(!empty($asExif) && array_key_exists('DateTimeOriginal', $asExif['EXIF'])) $iPicTakenTimeStamp = strtotime($asExif['EXIF']['DateTimeOriginal']);
if(!empty($asExif) && array_key_exists('FileDateTime', $asExif['FILE'])) $iPicFileTimeStamp = $asExif['FILE']['FileDateTime'];
//Merge timestamps
$iPicTimeStamp = ($iPicTakenTimeStamp > 0)?$iPicTakenTimeStamp:$iPicFileTimeStamp;
//Time Zone
//if($iPicTimeStamp >= self::HONEYMOON_DATE_BEG && $iPicTimeStamp <= self::HONEYMOON_DATE_END) $iPicTimeStamp -= 60*60*(12+1); //timezone + daylight saving
@@ -300,7 +328,12 @@ class Spot extends Main
}
else $sRotate = '0';
return array('timestamp'=>$iPicTimeStamp, 'rotate'=>$sRotate);
return array(
'timestamp' => $iPicTimeStamp,
'taken_ts' => $iPicTimeStamp,
'file_ts' => $iPicTimeStamp,
'rotate' => $sRotate
);
}
}