CC-84: Smart Playlists
- started storing last played time in cc_files - db column (lptime) already existed but was not being used before this - will use this as a criteria for smart playlists
This commit is contained in:
parent
9fcc851523
commit
647de9ed39
|
@ -349,6 +349,18 @@ class ApiController extends Zend_Controller_Action
|
|||
$schedule_group_id = $this->_getParam("schedule_id");
|
||||
$media_id = $this->_getParam("media_id");
|
||||
$result = Application_Model_Schedule::UpdateMediaPlayedStatus($media_id);
|
||||
|
||||
//set a 'last played' timestamp for media item
|
||||
//needed for smart playlists
|
||||
try{
|
||||
$file_id = Application_Model_Schedule::GetFileId($media_id);
|
||||
$file = Application_Model_StoredFile::Recall($file_id);
|
||||
$now = new DateTime("now", new DateTimeZone("UTC"));
|
||||
$file->setLastPlayedTime($now);
|
||||
}catch(Exception $e){
|
||||
Logging::log($e);
|
||||
}
|
||||
|
||||
echo json_encode(array("status"=>1, "message"=>""));
|
||||
}
|
||||
|
||||
|
|
|
@ -966,4 +966,10 @@ class Application_Model_Schedule
|
|||
|
||||
return $overlapping;
|
||||
}
|
||||
|
||||
public static function GetFileId($p_scheduleId)
|
||||
{
|
||||
$scheduledItem = CcScheduleQuery::create()->findPK($p_scheduleId);
|
||||
return $scheduledItem->getDbFileId();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -79,6 +79,19 @@ class Application_Model_StoredFile
|
|||
{
|
||||
$this->_file->setDbFtype($p_format);
|
||||
}
|
||||
|
||||
/* This function is only called after liquidsoap
|
||||
* has notified that a track has started playing.
|
||||
*/
|
||||
public function setLastPlayedTime($p_now)
|
||||
{
|
||||
$this->_file->setDbLPtime($p_now);
|
||||
/* Normally we would only call save after all columns have been set
|
||||
* like in setDbColMetadata(). But since we are only setting one
|
||||
* column in this case it is OK.
|
||||
*/
|
||||
$this->_file->save();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set multiple metadata values using defined metadata constants.
|
||||
|
@ -120,9 +133,6 @@ class Application_Model_StoredFile
|
|||
}
|
||||
$this->setDbColMetadata($dbMd);
|
||||
}
|
||||
|
||||
$this->_file->setDbMtime(new DateTime("now"), new DateTimeZone("UTC"));
|
||||
$this->_file->save();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -152,8 +162,8 @@ class Application_Model_StoredFile
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->_file->setDbMtime(new DateTime("now"), new DateTimeZone("UTC"));
|
||||
Logging::log(new DateTime("now", new DateTimeZone("UTC")));
|
||||
$this->_file->setDbMtime(new DateTime("now", new DateTimeZone("UTC")));
|
||||
$this->_file->save();
|
||||
}
|
||||
|
||||
|
@ -476,8 +486,8 @@ Logging::log("getting media! - 2");
|
|||
{
|
||||
$file = new CcFiles();
|
||||
$file->setDbGunid(md5(uniqid("", true)));
|
||||
$file->setDbUtime(new DateTime("now"), new DateTimeZone("UTC"));
|
||||
$file->setDbMtime(new DateTime("now"), new DateTimeZone("UTC"));
|
||||
$file->setDbUtime(new DateTime("now", new DateTimeZone("UTC")));
|
||||
$file->setDbMtime(new DateTime("now", new DateTimeZone("UTC")));
|
||||
|
||||
$storedFile = new Application_Model_StoredFile();
|
||||
$storedFile->_file = $file;
|
||||
|
|
Loading…
Reference in New Issue