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");
|
$schedule_group_id = $this->_getParam("schedule_id");
|
||||||
$media_id = $this->_getParam("media_id");
|
$media_id = $this->_getParam("media_id");
|
||||||
$result = Application_Model_Schedule::UpdateMediaPlayedStatus($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"=>""));
|
echo json_encode(array("status"=>1, "message"=>""));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -966,4 +966,10 @@ class Application_Model_Schedule
|
||||||
|
|
||||||
return $overlapping;
|
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->_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.
|
* Set multiple metadata values using defined metadata constants.
|
||||||
|
@ -120,9 +133,6 @@ class Application_Model_StoredFile
|
||||||
}
|
}
|
||||||
$this->setDbColMetadata($dbMd);
|
$this->setDbColMetadata($dbMd);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->_file->setDbMtime(new DateTime("now"), new DateTimeZone("UTC"));
|
|
||||||
$this->_file->save();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -152,8 +162,8 @@ class Application_Model_StoredFile
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Logging::log(new DateTime("now", new DateTimeZone("UTC")));
|
||||||
$this->_file->setDbMtime(new DateTime("now"), new DateTimeZone("UTC"));
|
$this->_file->setDbMtime(new DateTime("now", new DateTimeZone("UTC")));
|
||||||
$this->_file->save();
|
$this->_file->save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -476,8 +486,8 @@ Logging::log("getting media! - 2");
|
||||||
{
|
{
|
||||||
$file = new CcFiles();
|
$file = new CcFiles();
|
||||||
$file->setDbGunid(md5(uniqid("", true)));
|
$file->setDbGunid(md5(uniqid("", true)));
|
||||||
$file->setDbUtime(new DateTime("now"), new DateTimeZone("UTC"));
|
$file->setDbUtime(new DateTime("now", new DateTimeZone("UTC")));
|
||||||
$file->setDbMtime(new DateTime("now"), new DateTimeZone("UTC"));
|
$file->setDbMtime(new DateTime("now", new DateTimeZone("UTC")));
|
||||||
|
|
||||||
$storedFile = new Application_Model_StoredFile();
|
$storedFile = new Application_Model_StoredFile();
|
||||||
$storedFile->_file = $file;
|
$storedFile->_file = $file;
|
||||||
|
|
Loading…
Reference in New Issue