From 61c9cf52b0c015951351b47148cdecb47c680bfa Mon Sep 17 00:00:00 2001 From: MaZderMind Date: Sun, 8 Nov 2015 20:36:34 +0100 Subject: global streams api --- view/streams-json-v1.php | 164 +++++++++++++++++++++++++---------------------- 1 file changed, 89 insertions(+), 75 deletions(-) (limited to 'view') diff --git a/view/streams-json-v1.php b/view/streams-json-v1.php index c705bd7..af0909b 100644 --- a/view/streams-json-v1.php +++ b/view/streams-json-v1.php @@ -2,97 +2,111 @@ header('Content-Type: application/json'); -if($conference->isClosed()) -{ - echo '[]'; - return; -} - -$overview = new Overview(); +$conferences = Conferences::getActiveConferences(); $struct = array(); -foreach($overview->getGroups() as $group => $rooms) +if(isset($GLOBALS['CONFIG'])) + $saved_config = $GLOBALS['CONFIG']; + +foreach ($conferences as $conference) { - $roomstruct = array(); - foreach($rooms as $room) + /* + ok. das ist so hacky. EIGENTLICH müsste man aus ModelBase + das $GLOBALS tilgen und von der api ne v2 releasen, welche + conferences als eigenes Objekt betrachtet + */ + $GLOBALS['CONFIG'] = $conference['CONFIG']; + $GLOBALS['MANDATOR'] = $conference['slug']; + + $overview = new Overview(); + + foreach($overview->getGroups() as $group => $rooms) { - $streams = array(); - foreach($room->getStreams() as $stream) + $roomstruct = array(); + foreach($rooms as $room) { - $key = $stream->getSelection().'-'.$stream->getLanguage(); - - $urls = array(); - switch($stream->getPlayerType()) + $streams = array(); + foreach($room->getStreams() as $stream) { - case 'video': - foreach ($stream->getVideoProtos() as $proto => $display) - { - $urls[$proto] = array( - 'display' => $display, - 'tech' => $stream->getVideoTech($proto), - 'url' => $stream->getVideoUrl($proto), - ); - } - break; + $key = $stream->getSelection().'-'.$stream->getLanguage(); + + $urls = array(); + switch($stream->getPlayerType()) + { + case 'video': + foreach ($stream->getVideoProtos() as $proto => $display) + { + $urls[$proto] = array( + 'display' => $display, + 'tech' => $stream->getVideoTech($proto), + 'url' => $stream->getVideoUrl($proto), + ); + } + break; + + case 'slides': + foreach ($stream->getSlidesProtos() as $proto => $display) + { + $urls[$proto] = array( + 'display' => $display, + 'tech' => $stream->getSlidesTech($proto), + 'url' => $stream->getSlidesUrl($proto), + ); + } + break; - case 'slides': - foreach ($stream->getSlidesProtos() as $proto => $display) - { - $urls[$proto] = array( - 'display' => $display, - 'tech' => $stream->getSlidesTech($proto), - 'url' => $stream->getSlidesUrl($proto), - ); - } - break; + case 'audio': + foreach ($stream->getAudioProtos() as $proto => $display) + { + $urls[$proto] = array( + 'display' => $display, + 'tech' => $stream->getAudioTech($proto), + 'url' => $stream->getAudioUrl($proto), + ); + } + break; - case 'audio': - foreach ($stream->getAudioProtos() as $proto => $display) - { - $urls[$proto] = array( - 'display' => $display, - 'tech' => $stream->getAudioTech($proto), - 'url' => $stream->getAudioUrl($proto), - ); - } - break; + case 'music': + foreach ($stream->getMusicProtos() as $proto => $display) + { + $urls[$proto] = array( + 'display' => $display, + 'tech' => $stream->getMusicTech($proto), + 'url' => $stream->getMusicUrl($proto), + ); + } + break; + } - case 'music': - foreach ($stream->getMusicProtos() as $proto => $display) - { - $urls[$proto] = array( - 'display' => $display, - 'tech' => $stream->getMusicTech($proto), - 'url' => $stream->getMusicUrl($proto), - ); - } - break; + $streams[] = array( + 'slug' => $key, + 'display' => $stream->getDisplay(), + 'type' => $stream->getPlayerType(), + 'isTranslated' => $stream->isTranslated(), + 'videoSize' => $stream->getVideoSize(), + 'urls' => $urls, + ); } - $streams[] = array( - 'slug' => $key, - 'display' => $stream->getDisplay(), - 'type' => $stream->getPlayerType(), - 'isTranslated' => $stream->isTranslated(), - 'videoSize' => $stream->getVideoSize(), - 'urls' => $urls, + $roomstruct[] = array( + 'slug' => $room->getSlug(), + 'schedulename' => $room->getScheduleName(), + 'thumb' => forceslash(baseurl()).$room->getThumb(), + 'link' => forceslash(baseurl()).$room->getLink(), + 'display' => $room->getDisplay(), + 'streams' => $streams, ); } - $roomstruct[] = array( - 'slug' => $room->getSlug(), - 'schedulename' => $room->getScheduleName(), - 'thumb' => forceslash(baseurl()).$room->getThumb(), - 'link' => forceslash(baseurl()).$room->getLink(), - 'display' => $room->getDisplay(), - 'streams' => $streams, + $struct[] = array( + 'conference' => $conference['title'], + 'group' => $group, + 'rooms' => $roomstruct, ); } - - $struct[] = array( - 'group' => $group, - 'rooms' => $roomstruct, - ); } +if(isset($saved_config)) + $GLOBALS['CONFIG'] = $saved_config; + echo json_encode($struct, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); -- cgit v1.2.3