public function notifyWebstreamDataAction() { $request = $this->getRequest(); $data = $request->getParam("data"); $media_id = intval($request->getParam("media_id")); $data_arr = json_decode($data); //$media_id is -1 sometimes when a stream has stopped playing if (!is_null($media_id) && $media_id > 0) { if (isset($data_arr->title)) { $data_title = substr($data_arr->title, 0, 1024); $previous_metadata = CcWebstreamMetadataQuery::create()->orderByDbStartTime('desc')->filterByDbInstanceId($media_id)->findOne(); $do_insert = true; if ($previous_metadata) { if ($previous_metadata->getDbLiquidsoapData() == $data_title) { Logging::debug("Duplicate found: " . $data_title); $do_insert = false; } } if ($do_insert) { $startDT = new DateTime("now", new DateTimeZone("UTC")); $webstream_metadata = new CcWebstreamMetadata(); $webstream_metadata->setDbInstanceId($media_id); $webstream_metadata->setDbStartTime($startDT); $webstream_metadata->setDbLiquidsoapData($data_title); $webstream_metadata->save(); $historyService = new Application_Service_HistoryService(); $historyService->insertWebstreamMetadata($media_id, $startDT, $data_arr); } } } $this->view->response = $data; $this->view->media_id = $media_id; }
/** * Returns the number of related CcWebstreamMetadata objects. * * @param Criteria $criteria * @param boolean $distinct * @param PropelPDO $con * @return int Count of related CcWebstreamMetadata objects. * @throws PropelException */ public function countCcWebstreamMetadatas(Criteria $criteria = null, $distinct = false, PropelPDO $con = null) { if (null === $this->collCcWebstreamMetadatas || null !== $criteria) { if ($this->isNew() && null === $this->collCcWebstreamMetadatas) { return 0; } else { $query = CcWebstreamMetadataQuery::create(null, $criteria); if ($distinct) { $query->distinct(); } return $query->filterByCcSchedule($this)->count($con); } } else { return count($this->collCcWebstreamMetadatas); } }
public function notifyWebstreamDataAction() { $request = $this->getRequest(); $data = $request->getParam("data"); $media_id = $request->getParam("media_id"); $data_arr = json_decode($data); if (!is_null($media_id) && isset($data_arr->title) && strlen($data_arr->title) < 1024) { $previous_metadata = CcWebstreamMetadataQuery::create()->orderByDbStartTime('desc')->filterByDbInstanceId($media_id)->findOne(); $do_insert = true; if ($previous_metadata) { if ($previous_metadata->getDbLiquidsoapData() == $data_arr->title) { Logging::debug("Duplicate found: " . $data_arr->title); $do_insert = false; } } if ($do_insert) { $webstream_metadata = new CcWebstreamMetadata(); $webstream_metadata->setDbInstanceId($media_id); $webstream_metadata->setDbStartTime(new DateTime("now", new DateTimeZone("UTC"))); $webstream_metadata->setDbLiquidsoapData($data_arr->title); $webstream_metadata->save(); } } else { throw new Error("Unexpected error. media_id {$media_id} has a null stream value in cc_schedule!"); } $this->view->response = $data; $this->view->media_id = $media_id; }
/** * Removes this object from datastore and sets delete attribute. * * @param PropelPDO $con * @return void * @throws PropelException * @see BaseObject::setDeleted() * @see BaseObject::isDeleted() */ public function delete(PropelPDO $con = null) { if ($this->isDeleted()) { throw new PropelException("This object has already been deleted."); } if ($con === null) { $con = Propel::getConnection(CcWebstreamMetadataPeer::DATABASE_NAME, Propel::CONNECTION_WRITE); } $con->beginTransaction(); try { $ret = $this->preDelete($con); if ($ret) { CcWebstreamMetadataQuery::create()->filterByPrimaryKey($this->getPrimaryKey())->delete($con); $this->postDelete($con); $con->commit(); $this->setDeleted(true); } else { $con->commit(); } } catch (PropelException $e) { $con->rollBack(); throw $e; } }