From f6c0270d40f6730fe1e1820f2866b08792df1db6 Mon Sep 17 00:00:00 2001 From: MaZderMind Date: Sat, 10 Dec 2016 18:22:34 +0100 Subject: rewrite data-model so that every configuration option is accessed through the conference --- model/Schedule.php | 39 +++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) (limited to 'model/Schedule.php') diff --git a/model/Schedule.php b/model/Schedule.php index c0ff69b..0b789f2 100644 --- a/model/Schedule.php +++ b/model/Schedule.php @@ -1,26 +1,37 @@ conference = $conference; + } + + public function getConference() { + return $this->conference; + } + public function isEnabled() { - return $this->has('SCHEDULE'); + return $this->getConference()->has('SCHEDULE'); } private function isRoomFiltered($room) { - if(!$this->has('SCHEDULE.ROOMFILTER')) + if(!$this->getConference()->has('SCHEDULE.ROOMFILTER')) return false; - $rooms = $this->get('SCHEDULE.ROOMFILTER'); + $rooms = $this->getConference()->get('SCHEDULE.ROOMFILTER'); return !in_array($room, $rooms); } public function getSimulationOffset() { - return $this->get('SCHEDULE.SIMULATE_OFFSET', 0); + return $this->getConference()->get('SCHEDULE.SIMULATE_OFFSET', 0); } public function getScale() { - return floatval($this->get('SCHEDULE.SCALE', 7)); + return floatval($this->getConference()->get('SCHEDULE.SCALE', 7)); } private function fetchSchedule() @@ -35,7 +46,7 @@ class Schedule extends ModelBase $schedule = file_get_contents($this->getScheduleUrl(), false, $context); if(!$schedule) - throw new ScheduleException("Error Downloading Schedule from ".$this->getScheduleUrl()); + throw new ScheduleException("Error Downloading Schedule from ".$this->getConference()->getScheduleUrl()); return simplexml_load_string($schedule); } @@ -49,10 +60,10 @@ class Schedule extends ModelBase } catch(Exception $e) { - return array(); + return array('_error' => (string)$e); } - $mapping = $this->getScheduleToRoomSlugMapping(); + $mapping = $this->getConference()->getScheduleToRoomSlugMapping(); $program = array(); // re-calculate day-ends @@ -220,10 +231,10 @@ class Schedule extends ModelBase } - if($this->has('SCHEDULE.ROOMFILTER')) + if($this->getConference()->has('SCHEDULE.ROOMFILTER')) { // sort by roomfilter - $roomfilter = $this->get('SCHEDULE.ROOMFILTER'); + $roomfilter = $this->getConference()->get('SCHEDULE.ROOMFILTER'); // map roomfilter-rooms to room-slugs $roomfilter = array_map(function($e) use ($mapping) { @@ -246,7 +257,7 @@ class Schedule extends ModelBase public function getDurationSum() { $sum = 0; - $schedule = $this->getSchedule(); + $schedule = $this->getConference()->getSchedule(); foreach(reset($schedule) as $event) $sum += $event['duration']; @@ -263,13 +274,13 @@ class Schedule extends ModelBase private function getScheduleUrl() { - return $this->get('SCHEDULE.URL'); + return $this->getConference()->get('SCHEDULE.URL'); } public function getScheduleToRoomSlugMapping() { $mapping = array(); - foreach($this->get('ROOMS') as $slug => $room) + foreach($this->getConference()->get('ROOMS') as $slug => $room) { if(isset($room['SCHEDULE_NAME'])) $mapping[ $room['SCHEDULE_NAME'] ] = $slug; -- cgit v1.2.3 From f499d4d53a31011d523d8ebaf8c4f7f0fcea43b7 Mon Sep 17 00:00:00 2001 From: MaZderMind Date: Sun, 11 Dec 2016 20:36:46 +0100 Subject: repair schedule view --- model/Schedule.php | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) (limited to 'model/Schedule.php') diff --git a/model/Schedule.php b/model/Schedule.php index 0b789f2..eb9fe05 100644 --- a/model/Schedule.php +++ b/model/Schedule.php @@ -54,16 +54,9 @@ class Schedule public function getSchedule() { // download schedule-xml - try - { - $schedule = $this->fetchSchedule(); - } - catch(Exception $e) - { - return array('_error' => (string)$e); - } + $schedule = $this->fetchSchedule(); - $mapping = $this->getConference()->getScheduleToRoomSlugMapping(); + $mapping = $this->getScheduleToRoomSlugMapping(); $program = array(); // re-calculate day-ends @@ -257,7 +250,7 @@ class Schedule public function getDurationSum() { $sum = 0; - $schedule = $this->getConference()->getSchedule(); + $schedule = $this->getSchedule(); foreach(reset($schedule) as $event) $sum += $event['duration']; -- cgit v1.2.3 From 284878f0f9917b55359cd464b86508cacc472653 Mon Sep 17 00:00:00 2001 From: MaZderMind Date: Sun, 11 Dec 2016 21:46:01 +0100 Subject: add cache-file getters and download preparations --- model/Schedule.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'model/Schedule.php') diff --git a/model/Schedule.php b/model/Schedule.php index eb9fe05..4032ecb 100644 --- a/model/Schedule.php +++ b/model/Schedule.php @@ -265,11 +265,16 @@ class Schedule return ((int)$parts[0] * 60 + (int)$parts[1]) * 60; } - private function getScheduleUrl() + public function getScheduleUrl() { return $this->getConference()->get('SCHEDULE.URL'); } + public function getScheduleCache() + { + return sprintf('/tmp/schedule-cache-%s', $this->getConference()->getSlug()); + } + public function getScheduleToRoomSlugMapping() { $mapping = array(); -- cgit v1.2.3 From 3384e963da66e9089b71c546750c8981be8c6ed8 Mon Sep 17 00:00:00 2001 From: MaZderMind Date: Sat, 17 Dec 2016 14:11:47 +0100 Subject: change storage paths according to issue description --- model/Schedule.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'model/Schedule.php') diff --git a/model/Schedule.php b/model/Schedule.php index 4032ecb..6536864 100644 --- a/model/Schedule.php +++ b/model/Schedule.php @@ -272,7 +272,7 @@ class Schedule public function getScheduleCache() { - return sprintf('/tmp/schedule-cache-%s', $this->getConference()->getSlug()); + return sprintf('/tmp/schedule-cache-%s.xml', $this->getConference()->getSlug()); } public function getScheduleToRoomSlugMapping() -- cgit v1.2.3 From da739f3b60a30d5dd5c7877742f8b5c292f25f46 Mon Sep 17 00:00:00 2001 From: MaZderMind Date: Sun, 18 Dec 2016 10:37:10 +0100 Subject: use the new cache-files for viewing --- model/Schedule.php | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) (limited to 'model/Schedule.php') diff --git a/model/Schedule.php b/model/Schedule.php index 6536864..b54709e 100644 --- a/model/Schedule.php +++ b/model/Schedule.php @@ -36,17 +36,10 @@ class Schedule private function fetchSchedule() { - $opts = array( - 'http' => array( - 'timeout' => 2, - 'user_agent' => 'C3VOC Universal Streaming-Website Backend @ '.$_SERVER['HTTP_HOST'], - ) - ); - $context = stream_context_create($opts); - $schedule = file_get_contents($this->getScheduleUrl(), false, $context); + $schedule = file_get_contents($this->getScheduleCache()); if(!$schedule) - throw new ScheduleException("Error Downloading Schedule from ".$this->getConference()->getScheduleUrl()); + throw new ScheduleException("Error Loading Schedule from ".$this->getScheduleCache()); return simplexml_load_string($schedule); } -- cgit v1.2.3