Example #1
0
 public function getBbbRecordings($meetingId = 0)
 {
     $bbb = new BBB($this->salt, $this->url);
     //if a bbb meeting is selected, get the recordings of that specified meeting, else list all the recordings for all the meetings
     $meetingQuery = $meetingId ? "WHERE id = " . $meetingId : '';
     $db = JFactory::getDbo();
     $query = $db->getQuery(true);
     $query = "SELECT * FROM `#__bigbluebutton_meetings` " . $meetingQuery;
     $db->setQuery($query);
     $bbbdata = $db->loadObjectList();
     $itsAllGood = true;
     //Initialize this variable to be json encoded to be passed through the url.
     $final = array();
     if ($meetingId) {
         $query = $db->getQuery(true);
         $query = "SELECT * FROM `#__bigbluebutton_meetings` WHERE `id`=" . (int) $meetingId;
         $db->setQuery($query);
         $bbbd = $db->loadObject();
         $recordingsParams = array('meetingId' => $bbbd->meeting_id);
         try {
             $result = $bbb->getRecordingsWithXmlResponseArray($recordingsParams);
         } catch (Exception $e) {
             echo 'Caught exception: ', $e->getMessage(), "\n";
             $itsAllGood = false;
         }
         if ($itsAllGood == true) {
             if ($result == null) {
                 echo "Failed to get any response. Maybe we can't contact the BBB server.";
             } else {
                 if ($result['returncode'] == 'SUCCESS') {
                     foreach ((array) $result as $data) {
                         $item = array();
                         $item['recordId'] = (string) $data['recordId'][0];
                         $item['playbackFormatUrl'] = (string) $data['playbackFormatUrl'][0];
                         $item['meetingId'] = (string) $data['meetingId'][0];
                         $item['startTime'] = (int) $data['startTime'][0];
                         $item['endTime'] = (int) $data['endTime'][0];
                         $final[] = $item;
                     }
                 } else {
                     echo "<p>Failed to get meeting info.</p>";
                 }
             }
         }
     } else {
         foreach ($bbbdata as $mdata) {
             $recordingsParams = array('meetingId' => $mdata->meeting_id);
             try {
                 $result = $bbb->getRecordingsWithXmlResponseArray($recordingsParams);
             } catch (Exception $e) {
                 echo 'Caught exception: ', $e->getMessage(), "\n";
                 $itsAllGood = false;
             }
             if ($itsAllGood == true) {
                 if ($result == null) {
                     echo "Failed to get any response. Maybe we can't contact the BBB server.";
                 } else {
                     if ($result['returncode'] == 'SUCCESS') {
                         foreach ((array) $result as $data) {
                             $item = array();
                             $item['recordId'] = (string) $data['recordId'][0];
                             $item['playbackFormatUrl'] = (string) $data['playbackFormatUrl'][0];
                             $item['meetingId'] = (string) $data['meetingId'][0];
                             $item['startTime'] = (int) $data['startTime'][0];
                             $item['endTime'] = (int) $data['endTime'][0];
                             $final[] = $item;
                         }
                     } else {
                         echo "<p>Failed to get meeting info.</p>";
                     }
                 }
             }
         }
     }
     foreach ($final as $finalData) {
         if (trim($finalData['recordId']) != '') {
             $query = $db->getQuery(true);
             $query = "SELECT id FROM `#__bigbluebutton_recordings` WHERE `recording_id` = '" . $finalData['recordId'] . "'";
             $db->setQuery($query);
             $isRecordExist = $db->loadResult();
             if (!$isRecordExist) {
                 $query = $db->getQuery(true);
                 $query = "SELECT meetingName, meeting_description FROM `#__bigbluebutton_meetings` WHERE `meeting_id` = '" . $finalData['meetingId'] . "'";
                 $db->setQuery($query);
                 $bbbNameDesc = $db->loadObject();
                 $recordingDetails = new stdClass();
                 $recordingDetails->meeting_id = $finalData['meetingId'];
                 $recordingDetails->recording_id = $finalData['recordId'];
                 $recordingDetails->recording_title = $bbbNameDesc->meetingName;
                 $recordingDetails->recording_description = $bbbNameDesc->meeting_description;
                 $recordingDetails->recording_url = $finalData['playbackFormatUrl'];
                 $recordingDetails->start_time = $finalData['startTime'];
                 $recordingDetails->end_time = $finalData['endTime'];
                 // Insert the objects into the database.
                 $res = $db->insertObject('#__bigbluebutton_recordings', $recordingDetails);
                 $thisId = $db->insertid();
             }
         }
     }
     return $final;
 }