Esempio n. 1
0
 function restart()
 {
     switch (intval($this->input['sort'])) {
         case 0:
             //重建当前时间之后所有的
             $sql = "SELECT * FROM " . DB_PREFIX . "program_record WHERE start_time > " . TIMENOW . " AND conid <> 0";
             //. " AND (start_time+toff)<" . strtotime(date('Y-m-d',TIMENOW) . ' 23:59:59')
             //录制等待中的,并未开始录制,并且是当天,删除录制,重新提交
             $q = $this->db->query($sql);
             $queue_id = $record_id = $space = "";
             while ($row = $this->db->fetch_array($q)) {
                 $queue_id .= $space . $row['conid'];
                 //$record_id .= $space . $row['id'];
                 $space = ',';
             }
             if ($queue_id) {
                 $sql = "SELECT * FROM " . DB_PREFIX . "program_queue WHERE id IN(" . $queue_id . ")";
                 $q = $this->db->query($sql);
                 include_once ROOT_PATH . 'lib/class/curl.class.php';
                 $obj_curl = new curl($this->settings['mms']['record_server']['host'], $this->settings['mms']['record_server']['dir']);
                 while ($row = $this->db->fetch_array($q)) {
                     $obj_curl->setSubmitType('get');
                     $obj_curl->initPostData();
                     $obj_curl->addRequestData('action', 'SELECT');
                     $obj_curl->addRequestData('id', $row['conid']);
                     $record_xml = $obj_curl->request('');
                     $record_array = xml2Array($record_xml);
                     if ($record_array) {
                         if ($record_array['result']) {
                             if ($record_array['record']['status'] == 'waiting') {
                                 $obj_curl->mPostContentType('string');
                                 $obj_curl->setSubmitType('get');
                                 $obj_curl->setReturnFormat('json');
                                 $obj_curl->initPostData();
                                 $obj_curl->addRequestData('action', 'DELETE');
                                 $obj_curl->addRequestData('id', $row['conid']);
                                 $record_xml = $obj_curl->request('');
                                 $record_array_delete = xml2Array($record_xml);
                                 /*
                                 if($record_array_delete['result'])
                                 {
                                 
                                 }
                                 */
                             }
                         }
                     }
                     //ing
                     $sql = "DELETE FROM " . DB_PREFIX . "program_record_log WHERE id=" . $row['log_id'];
                     $this->db->query($sql);
                     $sql = "DELETE FROM " . DB_PREFIX . "program_queue WHERE id=" . $row['id'];
                     $this->db->query($sql);
                     $update_sql = "UPDATE " . DB_PREFIX . "program_record SET is_record=0,conid=0 WHERE id=" . $row['record_id'];
                     //内容清空,录制清空
                     $this->db->query($update_sql);
                     echo $row['record_id'] . '-----------------ok<br/>';
                 }
             }
             break;
         case 1:
             $sql = "SELECT * FROM " . DB_PREFIX . "program_record WHERE start_time > " . TIMENOW . " AND conid <> 0";
             //. " AND (start_time+toff)<" . strtotime(date('Y-m-d',TIMENOW) . ' 23:59:59')
             //录制等待中的,并未开始录制,并且是当天,删除录制,重新提交
             $q = $this->db->query($sql);
             $queue_id = $record_id = $space = "";
             while ($row = $this->db->fetch_array($q)) {
                 //$queue_id .= $space . $row['conid'];
                 $record_id .= $space . $row['id'];
                 $space = ',';
             }
             $update_sql = "UPDATE " . DB_PREFIX . "program_record SET is_record=0,conid=0 WHERE id IN(" . $record_id . ")";
             //内容清空,录制清空
             $this->db->query($update_sql);
             echo $record_id . '-----------------ok<br/>';
             break;
         case 2:
             //往后退一步
             $sql = "SELECT * FROM " . DB_PREFIX . "program_record WHERE conid=0 and start_time > " . TIMENOW;
             //. " AND (start_time+toff)<" . strtotime(date('Y-m-d',TIMENOW) . ' 23:59:59')
             //录制等待中的,并未开始录制,并且是当天,删除录制,重新提交
             $q = $this->db->query($sql);
             $queue_id = $record_id = $space = "";
             $record = array();
             include_once ROOT_PATH . 'lib/class/curl.class.php';
             $obj_curl = new curl($this->settings['mms']['record_server']['host'], $this->settings['mms']['record_server']['dir']);
             while ($row = $this->db->fetch_array($q)) {
                 $obj_curl->setSubmitType('get');
                 $obj_curl->initPostData();
                 $obj_curl->addRequestData('action', 'SELECT');
                 $obj_curl->addRequestData('id', $row['id']);
                 $record_xml = $obj_curl->request('');
                 $record_array = xml2Array($record_xml);
                 if ($record_array) {
                     if ($record_array['result']) {
                         if ($record_array['record']['status'] == 'waiting') {
                             print_r($row);
                             print_r($record_array);
                             $obj_curl->mPostContentType('string');
                             $obj_curl->setSubmitType('get');
                             $obj_curl->setReturnFormat('json');
                             $obj_curl->initPostData();
                             $obj_curl->addRequestData('action', 'DELETE');
                             $obj_curl->addRequestData('id', $row['id']);
                             $record_xml = $obj_curl->request('');
                             $record_array_delete = xml2Array($record_xml);
                             print_r($record_array_delete);
                             if ($record_array_delete['result']) {
                                 $row['conid'] ? $row['conid'] : $this->delete_queue($row['conid']);
                             }
                         }
                     }
                 } else {
                     //任务假如不存在,直接删除
                     $this->delete_queue($row['conid']);
                 }
                 $week_day = unserialize($row['week_day']);
                 if (is_array($week_day) && $week_day) {
                     $week_now = date('N', $row['start_time']);
                     $now = date('N');
                     if ($week_now >= $now) {
                         $ks = $week_now - $now;
                     } else {
                         $ks = $week_now - $now;
                     }
                     $start_time = $row['start_time'] - $ks * 86400 > TIMENOW ? $row['start_time'] - $ks * 86400 : $row['start_time'];
                     echo $row['id'] . '-----------------ok' . date('Y-m-d H:i:s', $start_time) . '<br/>';
                     $sql_update = "UPDATE " . DB_PREFIX . "program_record SET conid=0,is_record=0,start_time=" . $start_time . " WHERE id=" . $row['id'];
                     $this->db->query($sql_update);
                     echo $row['id'] . '-----------------ok<br/>';
                 } else {
                     $sql_update = "UPDATE " . DB_PREFIX . "program_record SET is_out=1,conid=0,is_record=1 WHERE id=" . $row['id'];
                     $this->db->query($sql_update);
                     echo $row['id'] . '-----------------ok<br/>';
                 }
             }
             break;
         default:
             break;
     }
     //录制
 }