Exemplo n.º 1
0
 public function __getConfig()
 {
     //获取mediaserver的里面视频类型的配置
     if ($this->settings['App_mediaserver']) {
         $curl = new curl($this->settings['App_mediaserver']['host'], $this->settings['App_mediaserver']['dir'] . 'admin/');
         $curl->setReturnFormat('json');
         $curl->initPostData();
         $curl->addRequestData('a', '__getConfig');
         $m_config = $curl->request('index.php');
     }
     if ($m_config && is_array($m_config)) {
         $video_type = $m_config[0]['video_type']['allow_type'];
     } else {
         $video_type = $this->default_type;
     }
     $video_type_arr = explode(',', $video_type);
     $flash_video_type = '';
     foreach ($video_type_arr as $k => $v) {
         $flash_video_type .= '*' . $v . ';';
     }
     $video_types = str_replace('.', '', $video_type);
     $this->settings['flash_video_type'] = $flash_video_type;
     $this->settings['video_type'] = $video_types;
     parent::__getConfig();
 }
Exemplo n.º 2
0
 public function setting()
 {
     $data = array('id' => intval($this->user['id']), 'password' => trim($this->input['password']), 'password_again' => trim($this->input['password_again']), 'old_password' => trim($this->input['old_password']));
     if ($data['password'] && $data['password'] != $data['password_again']) {
         $this->ReportError('两次输入的密码不一样');
     }
     $curl = new curl($this->settings['App_auth']['host'], $this->settings['App_auth']['dir']);
     $curl->setSubmitType('post');
     $curl->setReturnFormat('json');
     $curl->initPostData();
     $curl->addRequestData('a', 'update_password');
     foreach ($data as $key => $val) {
         $curl->addRequestData($key, $val);
     }
     if ($_FILES['Filedata']) {
         $curl->addFile($_FILES);
     }
     $return = $curl->request('member.php');
     if ($return && $return[0]) {
         if ($return[0]['error'] == -1) {
             $this->ReportError('原始密码错误');
         }
     }
     $this->redirect('更新成功');
 }
Exemplo n.º 3
0
 }
 public function __destruct()
 {
     parent::__destruct();
 }
 public function convert()
 {
     global $gGlobalConfig;
     include_once ROOT_PATH . 'lib/class/curl.class.php';
     if ($gGlobalConfig['App_officeconvert']) {
         $curl = new curl($gGlobalConfig['App_officeconvert']['host'], $gGlobalConfig['App_officeconvert']['dir']);
     }
     $curl->setSubmitType('post');
     $curl->setReturnFormat('json');
     $curl->initPostData();
     $curl->addRequestData('custom_appid', CUSTOM_APPID);
     $curl->addRequestData('custom_appkey', CUSTOM_APPKEY);
     $curl->addFile($_FILES);
     $result = $curl->request('convert.php');
     //var_dump($result);exit;
     $path = 'cache/word/zip_' . uniqid() . '/';
     $zipDir = ROOT_PATH . $path;
     $return = array();
     if (hg_mkdir($zipDir) && is_writeable($zipDir)) {
         $zipFile = $zipDir . 'word.zip';
         file_put_contents($zipFile, $result);
         $unzipDir = $zipDir . 'unzip/';
         if (hg_mkdir($unzipDir) && is_writeable($unzipDir)) {
             $unzipCmd = ' unzip ' . $zipFile . ' -d ' . realpath($unzipDir);
             exec($unzipCmd);
             $rmZip = ' rm -f ' . $zipFile;
             exec($rmZip);
Exemplo n.º 4
0
    }
    public function __destruct()
    {
        parent::__destruct();
    }
    /**
	 * 转换word文档
	 */
    public function convert()
    {
        $app_id = isset($this->input['custom_appid']) ? trim($this->input['custom_appid']) : '';
        $app_key = isset($this->input['custom_appkey']) ? trim($this->input['custom_appkey']) : '';
        if (empty($app_id) || empty($app_key)) {
            $this->errorOutput(PARAM_WRONG);
        }
        //先验证是否有权限
        $auth = new Auth();
        $auth_info = $auth->getAccessToken($app_id, $app_key);
        if (!$auth_info) {
            $this->errorOutput(NO_AUTH);
        }
        //处理上传的word文档
        $gGlobalConfig['officeconvert'] = array('host' => '10.0.1.59:8080', 'dir' => 'officeConverter/');
        $curl = new curl($gGlobalConfig['officeconvert']['host'], $gGlobalConfig['officeconvert']['dir']);
        $curl->setSubmitType('post');
        $curl->setReturnFormat('str');
        $curl->initPostData();
        $curl->addFile($_FILES);
        $curl->addRequestData('custom_appid', $app_id);
        $curl->addRequestData('custom_appkey', $app_key);
Exemplo n.º 5
0
 public function show()
 {
     $sql = "SELECT app_uniqueid, trade_number, out_trade_number, total_fee FROM " . DB_PREFIX . "orders\n            WHERE order_type = 'THIRD_PARTY' AND trade_status = 'HAS_PAY' AND out_trade_notify IN(0,1)\n            ORDER BY out_trade_notify_time ASC LIMIT 1";
     $order = $this->db->query_first($sql);
     //通知第三方订单
     $sql = "SELECT * FROM " . DB_PREFIX . "app_access WHERE app_uniqueid = '" . $order['app_uniqueid'] . "'";
     $app = $this->db->query_first($sql);
     if (!empty($app)) {
         $curl = new curl($app['host'], $app['dir']);
         $curl->setSubmitType('post');
         $curl->setReturnFormat('json');
         $curl->initPostData();
         $curl->addRequestData('a', $app['order_detail_func']);
         $curl->addRequestData('trade_number', $order['out_trade_number']);
         $curl->addRequestData('total_fee', $order['total_fee']);
         $ret = $curl->request($app['request_file']);
         if ($ret['success'] == 1) {
             $status = $ret['data']['status'];
             if ($status == 0) {
                 $curl->initPostData();
                 $curl->addRequestData('a', $app['pay_func']);
                 $curl->addRequestData('trade_number', $order['out_trade_number']);
                 $curl->addRequestData('total_fee', $order['total_fee']);
                 $ret = $curl->request($app['request_file']);
             }
             $this->db->update_data(array('out_trade_notify' => $status, 'out_trade_notify_time' => TIMENOW), 'orders', " trade_number = '" . $order['trade_number'] . "'");
         } else {
             $this->db->update_data(array('out_trade_notify' => 0, 'out_trade_notify_time' => TIMENOW), 'orders', " trade_number = '" . $order['trade_number'] . "'");
         }
     }
     var_dump($ret);
     var_dump($order);
 }
Exemplo n.º 6
0
 public function show()
 {
     $this->appstore->initPostData();
     $this->appstore->addRequestData('a', 'get_sort');
     $menu_group = $this->appstore->request('index.php');
     $menu_group = $menu_group['sort'];
     $this->appstore->initPostData();
     $menu_apps = $this->appstore->request('index.php');
     $menu_apps = $menu_apps['apps'];
     $curl = new curl($this->product_server['host'] . ':' . $this->product_server['port'], '');
     $curl->setClient(CUSTOM_APPID, CUSTOM_APPKEY);
     $curl->setSubmitType('get');
     $curl->setReturnFormat('json');
     $curl->initPostData();
     $curl->addRequestData('install', 1);
     $curl->addRequestData('pre_release', 1);
     $curl->addRequestData('app', $app);
     $appinfo = $this->appinfo;
     $program_url = $curl->request('check_version.php');
     $appinfo['pre_release_url'] = $program_url;
     $curl->initPostData();
     $curl->addRequestData('install', 1);
     $curl->addRequestData('app', $app);
     $program_url = $curl->request('check_version.php');
     $appinfo['release_url'] = $program_url;
     $this->tpl->addVar('appinfo', $appinfo);
     $this->tpl->addVar('_settings', $this->settings);
     $this->tpl->addVar('menu_group', $menu_group);
     $this->tpl->addVar('menu_apps', $menu_apps);
     $this->tpl->outTemplate('admin_appstore');
 }
Exemplo n.º 7
0
 private function checklogin($username, $password)
 {
     $curl = new curl($this->settings['App_auth']['host'], $this->settings['App_auth']['dir']);
     $curl->setSubmitType('post');
     $curl->setReturnFormat('json');
     $curl->initPostData();
     $curl->addRequestData('a', 'show');
     $curl->addRequestData('username', $username);
     $curl->addRequestData('password', $password);
     $ret = $curl->request('get_access_token.php');
     return $ret[0];
 }
Exemplo n.º 8
0
 private function get_mediaserver_config()
 {
     //获取需要修改的配置
     $curl = new curl($this->settings['App_mediaserver']['host'], $this->settings['App_mediaserver']['dir']);
     $curl->setSubmitType('post');
     $curl->setReturnFormat('json');
     $curl->initPostData();
     $curl->addRequestData('a', 'settings');
     $settings = $curl->request('configuare.php');
     $config = array('default_record_file_path' => !empty($settings) ? $settings['define']['UPLOAD_DIR'] : '');
     return $config;
 }
Exemplo n.º 9
0
 function config()
 {
     $curl = new curl('localhost', 'livsns/api/auth/');
     $curl->setSubmitType('post');
     $curl->setReturnFormat('json');
     $curl->initPostData();
     $curl->addRequestData('a', 'settings');
     $ret = $curl->request('configuare.php');
     $user_configs = array('base' => $ret['base'], 'define' => $ret['define']);
     $curl = new curl('10.0.1.40', 'livworkbench/api/');
     $curl->setSubmitType('post');
     $curl->setReturnFormat('json');
     $curl->initPostData();
     $curl->setClient(CUSTOM_APPID, CUSTOM_APPKEY);
     $curl->addRequestData('app', 'auth');
     $curl->addRequestData('version', '1.0.0');
     $curl->addRequestData('pre_release', '1');
     $new_configs = $curl->request('config.php');
     if ($new_configs) {
         $doset = array();
         foreach ($new_configs as $k => $v) {
             if (is_array($v)) {
                 foreach ($v as $kk => $vv) {
                     if (!$user_configs[$k][$kk]) {
                         $doset[$k][$kk] = $vv;
                     }
                 }
             }
         }
     }
     if ($doset) {
         $curl = new curl('localhost', 'livsns/api/auth/');
         $curl->setSubmitType('post');
         $curl->setReturnFormat('json');
         $curl->initPostData();
         $curl->addRequestData('a', 'doset');
         foreach ($doset as $k => $v) {
             foreach ($v as $kk => $vv) {
                 if (is_array($vv)) {
                     foreach ($vv as $kkk => $vvv) {
                         $curl->addRequestData($k . "[{$kk}][{$kkk}]", $vvv);
                     }
                 } else {
                     $curl->addRequestData($k . "[{$kk}]", $vv);
                 }
             }
         }
         $ret = $curl->request('configuare.php');
     }
     print_r($doset);
     print_r($curl);
 }
Exemplo n.º 10
0
 private function access_token_expired($access_token)
 {
     //获取需要修改的配置
     require_once ROOT_PATH . 'lib/class/curl.class.php';
     $curl = new curl($this->settings['App_auth']['host'], $this->settings['App_auth']['dir']);
     $curl->setSubmitType('post');
     $curl->setReturnFormat('json');
     $curl->initPostData();
     $curl->addRequestData('a', 'access_token_expired');
     $curl->addRequestData('access_token', $access_token);
     $ret = $curl->request('get_app_info.php');
     return $ret[0];
 }
Exemplo n.º 11
0
 private function add2log($content, $operation = 'login')
 {
     $curl = new curl($this->settings['App_logs']['host'], $this->settings['App_logs']['dir'] . 'admin/');
     $curl->setSubmitType('post');
     $curl->setReturnFormat('json');
     $curl->initPostData();
     $curl->addRequestData('a', 'create');
     $curl->addRequestData('bundle_id', 'm2o');
     $curl->addRequestData('moudle_id', 'm2o');
     $curl->addRequestData('operation', $operation);
     $curl->addRequestData('title', $content);
     $ret = $curl->request('logs_update.php');
     return $ret;
 }
Exemplo n.º 12
0
 private function addmonitorlog($mark, $title, $content = '', $type = 0)
 {
     if (!$this->settings['App_servermonitor']) {
         return;
     }
     include_once ROOT_PATH . 'lib/class/curl.class.php';
     $curl = new curl($this->settings['App_servermonitor']['host'], $this->settings['App_servermonitor']['dir'] . 'admin/');
     $curl->setReturnFormat('json');
     $curl->setSubmitType('post');
     $curl->initPostData();
     $curl->addRequestData('a', 'create');
     $curl->addRequestData('mark', $mark);
     $curl->addRequestData('title', $title);
     $curl->addRequestData('type', $type);
     $curl->addRequestData('content', $content);
     $curl->request('logs_update.php');
 }
Exemplo n.º 13
0
 public function create_publish_table()
 {
     $planret = array();
     if ($this->settings['App_livmedia']) {
         include_once ROOT_PATH . 'lib/class/curl.class.php';
         $curl = new curl($this->settings['App_livmedia']['host'], $this->settings['App_livmedia']['dir']);
         $curl->setSubmitType('post');
         $curl->setReturnFormat('json');
         $curl->initPostData();
         $curl->addRequestData('a', 'settings');
         $ret = $curl->request('configuare.php');
         $planret[1] = $ret['define']['PUBLISH_SET_ID'];
     }
     $this->addItem_withkey('message', 'success');
     $this->addItem_withkey('ret', $planret);
     $this->output();
 }
Exemplo n.º 14
0
 public function detail()
 {
     if (!$this->input['id']) {
         $this->errorOutput(NOID);
     }
     $ret = $this->mode->show_detail($this->input['id']);
     if (!$ret['title']) {
         $this->errorOutput(NODATA);
     }
     /***从会员接口取会员相关信息和拓展信息****/
     if ($this->user['user_id'] && $this->settings['App_members']) {
         $curl = new curl($this->settings['App_members']['host'], $this->settings['App_members']['dir'] . 'admin/');
         $curl->setSubmitType('post');
         $curl->setReturnFormat('json');
         $curl->initPostData();
         $curl->addRequestData('id', $this->user['user_id']);
         $curl->addRequestData('a', 'detail');
         $info = $curl->request('member.php');
         $info = $info[0];
         if ($info && is_array($info)) {
             $data = array('mobile' => $info['mobile'], 'avatar' => $info['avatar'], 'mobile' => $info['mobile'], 'email' => $info['email']);
             if ($info['extension'] && is_array($info['extension'])) {
                 foreach ($info['extension'] as $k => $v) {
                     $data[$v['field']] = $v['value'];
                 }
             }
         }
     }
     /***从会员接口取会员相关信息和拓展信息****/
     //会员信息对应到相关字段上去
     if ($data && $ret['forms'] && is_array($ret['forms'])) {
         foreach ($ret['forms'] as $key => $val) {
             if (!$val['default_value'] && $val['member_field'] && !$val['member_field_addr']) {
                 $ret['forms'][$key]['default_value'] = $data[$val['member_field']];
             } else {
                 if (!$val['default_value'] && $val['member_field_addr'] && is_array($val['element'])) {
                     foreach ($val['element'] as $ks => $ele) {
                         $ret['forms'][$key]['element'][$ks]['default_value'] = $data[$val['member_field_addr'][$ele['id']]];
                     }
                 }
             }
         }
     }
     $this->addItem($ret);
     $this->output();
 }
Exemplo n.º 15
0
 public function getSystemUserInfo($uid)
 {
     if (!$uid || !$this->settings['App_auth']) {
         return false;
     }
     $ret = array();
     $curl = new curl($this->settings['App_auth']['host'], $this->settings['App_auth']['dir']);
     $curl->setSubmitType('post');
     $curl->setReturnFormat('json');
     $curl->initPostData();
     $curl->addRequestData('a', 'getMemberById');
     $curl->addRequestData('id', $uid);
     $ret = $curl->request('member.php');
     if (!$ret || $ret['ErrorCode']) {
         return false;
     }
     $ret = $ret[0];
     return $ret;
 }
Exemplo n.º 16
0
 private function format_data($data)
 {
     /*
     $filecontnet = '';
     $filename = $id . '.php';
     $filedir = DATA_DIR;
     */
     $info = array();
     if ($data['data_type']) {
         switch ($data['data_type']) {
             case 'news':
                 $info = array('id' => 'id', 'content_id' => 'content_id', 'column_id' => 'column_id', 'column_name' => 'column_name', 'bundle_id' => 'bundle_id', 'module_id' => 'module_id', 'struct_id' => 'struct_id', 'title' => 'title', 'subtitle' => 'subtitle', 'keywords' => 'keywords', 'brief' => 'brief', 'publish_time' => 'publish_time', 'publish_user' => 'publish_user', 'publish_date' => 'publish_date', 'create_time' => 'create_time', 'create_user' => 'create_user', 'outlink' => 'outlink', 'source' => 'source', 'author' => 'author', 'click_num' => 'click_num', 'ip' => 'ip', 'indexpic' => 'indexpic', 'content_url' => 'content_url', 'date' => 'date');
                 break;
             case 'livmedia':
                 $info = array('id' => 'id', 'content_id' => 'content_id', 'column_id' => 'column_id', 'column_name' => 'column_name', 'bundle_id' => 'bundle_id', 'module_id' => 'module_id', 'struct_id' => 'struct_id', 'title' => 'title', 'subtitle' => 'subtitle', 'keywords' => 'keywords', 'brief' => 'brief', 'publish_time' => 'publish_time', 'publish_user' => 'publish_user', 'publish_date' => 'publish_date', 'create_time' => 'create_time', 'create_user' => 'create_user', 'outlink' => 'outlink', 'source' => 'source', 'author' => 'author', 'click_num' => 'click_num', 'ip' => 'ip', 'indexpic' => 'indexpic', 'duration' => 'duration', 'duration_format' => 'duration_format', 'bitrate' => 'bitrate', 'content_url' => 'content_url', 'date' => 'date');
                 break;
             case 'variety':
                 $info = array('id' => 'id', 'content_id' => 'content_id', 'column_id' => 'column_id', 'column_name' => 'column_name', 'bundle_id' => 'bundle_id', 'module_id' => 'module_id', 'struct_id' => 'struct_id', 'title' => 'title', 'subtitle' => 'subtitle', 'keywords' => 'keywords', 'brief' => 'brief', 'publish_time' => 'publish_time', 'publish_user' => 'publish_user', 'publish_date' => 'publish_date', 'create_time' => 'create_time', 'create_user' => 'create_user', 'outlink' => 'outlink', 'source' => 'source', 'author' => 'author', 'click_num' => 'click_num', 'ip' => 'ip', 'indexpic' => 'indexpic', 'duration' => 'duration', 'duration_format' => 'duration_format', 'bitrate' => 'bitrate', 'content_url' => 'content_url', 'date' => 'date', 'index' => array('id', 'rid', 'title', 'subtitle', 'brief', 'keywords', 'source', 'create_user', 'publish_user', 'author', 'create_time', 'publish_time', 'verify_time', 'content', 'indexpic', 'content_url'));
                 break;
             default:
                 break;
         }
     } else {
         include_once ROOT_PATH . 'lib/class/curl.class.php';
         $curl_connect = new curl($data['host'] . ($data['port'] ? ":" . $data['port'] : ''), $data['dir']);
         $curl_connect->setSubmitType('post');
         $curl_connect->setReturnFormat('json');
         $curl_connect->initPostData();
         $tmp_data = array();
         if (!empty($data['parameter'])) {
             $data['parameter'] = explode('&', trim($data['parameter']));
         }
         foreach ($data['parameter'] as $k => $v) {
             $tmp = explode('=', $v);
             $curl_connect->addRequestData($tmp[0], $tmp[1]);
         }
         $ret = $curl_connect->request($data['filename']);
         $info = array_keys($ret[0]);
     }
     return $info;
 }
Exemplo n.º 17
0
 public function video_audit($ids, $audit)
 {
     if ($ids) {
         $sql = 'SELECT vodid FROM ' . DB_PREFIX . 'materials WHERE content_id IN (' . $ids . ') AND vodid !=""';
         $query = $this->db->query($sql);
         $k = array();
         while ($row = $this->db->fetch_array($query)) {
             $k[] = $row['vodid'];
         }
         if (!empty($k)) {
             $curl = new curl($this->settings['APP_livmedia']['host'], $this->settings['APP_livmedia']['dir']);
             $curl->setSubmitType('post');
             $curl->setReturnFormat('json');
             $curl->initPostData();
             $curl->addRequestData('a', 'audit');
             $curl->addRequestData('id', implode(',', $k));
             $curl->addRequestData('audit', $audit);
             $ret = $curl->request('vod_update.php');
             if ($ret && is_array($ret)) {
                 return true;
             }
         }
     }
 }
Exemplo n.º 18
0
if ($new_configs) {
    $doset = array();
    foreach ($new_configs as $k => $v) {
        if (is_array($v)) {
            foreach ($v as $kk => $vv) {
                if (!$user_configs[$k][$kk]) {
                    $doset[$k][$kk] = $vv;
                }
            }
        }
    }
}
if ($doset) {
    $curl = new curl($installinfo['host'], $installinfo['dir']);
    $curl->setSubmitType('post');
    $curl->setReturnFormat('json');
    $curl->initPostData();
    $curl->addRequestData('a', 'doset');
    foreach ($doset as $k => $v) {
        foreach ($v as $kk => $vv) {
            if (is_array($vv)) {
                foreach ($vv as $kkk => $vvv) {
                    if (is_array($vvv)) {
                        foreach ($vvv as $kkkk => $vvvv) {
                            if (is_array($vvvv)) {
                                foreach ($vvvv as $kkkkk => $vvvvv) {
                                    $curl->addRequestData($k . "[{$kk}][{$kkk}][{$kkkk}][{$kkkkk}]", $vvvvv);
                                }
                            } else {
                                $curl->addRequestData($k . "[{$kk}][{$kkk}][{$kkkk}]", $vvvv);
                            }
Exemplo n.º 19
0
 private function forward_road($data, $ret)
 {
     //hg_pre($ret);exit();
     $curl = new curl($ret['host'], $ret['dir']);
     $curl->setSubmitType('post');
     $curl->setReturnFormat('json');
     $curl->initPostData();
     $curl->addRequestData('a', 'create');
     $curl->addRequestData('content', $data['text']);
     $curl->addRequestData('longitude', $data['longitude']);
     $curl->addRequestData('latitude', $data['latitude']);
     $curl->addRequestData('pic', $data['pic']);
     if ($data['pic']) {
         foreach ($data['pic'] as $key => $val) {
             $curl->addRequestData("pic[{$key}]", $val);
         }
     }
     $ret = $curl->request($ret['filename']);
     return $ret;
 }
Exemplo n.º 20
0
 public function show_layout()
 {
     $curl = new curl($this->appstore_server['host'], $this->appstore_server['dir']);
     $curl->setClient(CUSTOM_APPID, CUSTOM_APPKEY);
     //$curl->setClient(67, 'Bj2IRKxQgxV6XJVbTMb5lz8WwAQYorcP');
     $curl->setSubmitType('post');
     $curl->setReturnFormat('json');
     $curl->initPostData();
     $curl->addRequestData('a', 'get_temp');
     $curl->addRequestData('type', 4);
     $mode_info = $curl->request('template.php');
     if ($mode_info && is_array($mode_info)) {
         foreach ($mode_info as $k => $v) {
             if ($v['chg_status'] == '2') {
                 $v['op_name'] = '更新';
             } elseif ($v['chg_status'] == '0') {
                 $v['op_name'] = '安装';
             } else {
                 $v['op_name'] = '';
             }
             $v['attr'] = ' onclick="return hg_ajax_post(this, \'更新\', 1);"';
             $v['link'] = '?a=temp_do&type=4';
             $datas[$v['id']] = $v;
         }
     }
     $list_fields = array('id' => array('title' => 'ID', 'exper' => '$v[id]'), 'name' => array('title' => '名称', 'exper' => '$v[title]'));
     $op = 1;
     $batch_op = array('temp_do' => array('name' => '更新', 'brief' => '', 'attr' => ' onclick="return hg_ajax_batchpost(this, \'temp_do\', \'更新\', 1,\'\',\'\',\'ajax\');"'));
     $str = 'var gBatchAction = new Array();gBatchAction[\'temp_do\'] = \'?a=temp_do&type=4\';';
     hg_add_head_element('js-c', $str);
     $this->tpl->addHeaderCode(hg_add_head_element('echo'));
     $this->tpl->addVar('list_fields', $list_fields);
     $this->tpl->addVar('batch_op', $batch_op);
     $this->tpl->addVar('op', $op);
     $this->tpl->addVar('primary_key', 'sign');
     $this->tpl->addVar('type', '4');
     $this->tpl->addVar('list', $datas);
     $this->tpl->outTemplate('layout');
 }
Exemplo n.º 21
0
 public function show()
 {
     $timenow = time();
     $sql = 'SELECT * FROM ' . DB_PREFIX . 'live_control_stream  WHERE is_used=1';
     $q = $this->db->query($sql);
     $curl = new curl($this->settings['App_live']['host'], $this->settings['App_live']['dir'] . 'admin/');
     $curl->setReturnFormat('json');
     $curl->setSubmitType('post');
     while ($r = $this->db->fetch_array($q)) {
         $tmpfilename = CACHE_DIR . 'live_stream_' . $r['channel_id'] . '_' . $r['start_time'] . '.php';
         if (is_file($tmpfilename)) {
             $first_switch_live = false;
             $content = @file_get_contents($tmpfilename);
             $content = substr($content, 14);
             $live_stream_info = json_decode($content, 1);
         } else {
             $first_switch_live = true;
             $live_stream_info = array();
         }
         $f_start_time = intval($r['start_time']) * 1000;
         $last_start_time = intval($live_stream_info['last_start_time']);
         if ($r['url']) {
             $curl->initPostData();
             $curl->addRequestData('a', 'create');
             $curl->addRequestData('channel_id', $r['channel_id']);
             $curl->addRequestData('ischannel', 1);
             $curl->addRequestData('level', 3);
             $type = $r['type'];
             $start_time = intval($live_stream_info['cur_start_time']);
             if (!$start_time) {
                 $start_time = $f_start_time;
             }
             $m3u8list = $this->parse_top_m3u8($r['url']);
             if ($m3u8list) {
                 $content = file_get_contents($m3u8list);
                 $m3u8_list = $this->parse_m3u8($content);
                 if ($r['change_type'] == 'stream') {
                     $lenth = count($m3u8_list) - 1;
                     if ($first_switch_live) {
                         $m3u8_list = array($m3u8_list[$lenth]);
                     }
                     $postdata = array();
                     foreach ($m3u8_list as $k => $v) {
                         $file_start = 0;
                         $lefttime = $v['dur'];
                         if ($last_start_time && $v['start_time'] <= $last_start_time) {
                             continue;
                         }
                         if (!$last_start_time) {
                             $file_start = 1;
                             $last_start_time = 1;
                         }
                         echo 'start_time:' . date('Y-m-d H:i:s', $v['start_time'] / 1000) . 'file_start:' . $file_start . '<br />';
                         echo 'f_start_time:' . date('Y-m-d H:i:s', $f_start_time / 1000) . '<br />';
                         echo 'f_end_time:' . date('Y-m-d H:i:s', $f_end_time / 1000) . '<br />';
                         echo 'last_start_time:' . date('Y-m-d H:i:s', $last_start_time / 1000) . '<br />';
                         $file_end = 0;
                         $duration[] = $v['dur'];
                         if (substr($v['ts'], 0, 4) != 'http') {
                             $c = substr($v['ts'], 0, 1);
                             if ($c == '/') {
                                 $ts = $root_url . $v['ts'];
                             } else {
                                 $ts = $cur_url . $v['ts'];
                             }
                         } else {
                             $ts = $v['ts'];
                         }
                         if (!$r['change_id']) {
                             $r['change_id'] = -1;
                         }
                         $lefttime = 3600000;
                         $postdata[] = $start_time . '#' . $v['dur'] . '#' . $ts . '#0#' . $r['id'] . '#' . $f_start_time . '#' . $lefttime . '#' . $file_start . '#' . $file_end;
                         $start_time = $start_time + $v['dur'];
                         $last_ts_start_time = $v['start_time'];
                     }
                 } elseif ($r['change_type'] == 'file') {
                     $curl->addRequestData('ischannel', 2);
                     $tmp = explode('/', $r['url']);
                     $root_url = $tmp[0] . '//' . $tmp[2] . '/';
                     unset($tmp[count($tmp) - 1]);
                     $cur_url = implode('/', $tmp) . '/';
                     $toff = $r['toff'];
                     $tmpfilename1 = CACHE_DIR . 'fileindex_' . $r['channel_id'] . '_' . $r['start_time'] . '.php';
                     $m3u8_list_len = count($m3u8_list) - 1;
                     if (!is_file($tmpfilename1)) {
                         $index = -1;
                     } else {
                         $index = intval(file_get_contents($tmpfilename1));
                         if ($index >= $m3u8_list_len) {
                             $index = -1;
                         }
                     }
                     $postdata = array();
                     for ($k = $index + 1; $k <= $m3u8_list_len; $k++) {
                         $v = $m3u8_list[$k];
                         $v['start_time'] = $start_time;
                         if ($start_time > time() * 1000) {
                             break;
                         }
                         $index = $k;
                         $file_start = 0;
                         if (!$last_start_time) {
                             $file_start = 1;
                             $last_start_time = 1;
                         }
                         echo 'start_time:' . date('Y-m-d H:i:s', $v['start_time'] / 1000) . 'file_start:' . $file_start . '<br />';
                         echo 'f_start_time:' . date('Y-m-d H:i:s', $f_start_time / 1000) . '<br />';
                         echo 'f_end_time:' . date('Y-m-d H:i:s', $f_end_time / 1000) . '<br />';
                         echo 'last_start_time:' . date('Y-m-d H:i:s', $last_start_time / 1000) . '<br />';
                         $file_end = 0;
                         $duration[] = $v['dur'];
                         if (substr($v['ts'], 0, 4) != 'http') {
                             $c = substr($v['ts'], 0, 1);
                             if ($c == '/') {
                                 $ts = $root_url . $v['ts'];
                             } else {
                                 $ts = $cur_url . $v['ts'];
                             }
                         } else {
                             $ts = $v['ts'];
                         }
                         if (!$r['change_id']) {
                             $r['change_id'] = -1;
                         }
                         $lefttime = 3600000;
                         $postdata[] = $start_time . '#' . $v['dur'] . '#' . $ts . '#0#' . $r['id'] . '#' . $f_start_time . '#' . $lefttime . '#' . $file_start . '#' . $file_end;
                         $start_time = $start_time + $v['dur'];
                         $last_ts_start_time = $v['start_time'];
                     }
                     file_put_contents($tmpfilename1, $index);
                 }
             }
             if ($postdata) {
                 $live_stream_info = array('cur_start_time' => $start_time, 'last_start_time' => $last_ts_start_time);
                 file_put_contents($tmpfilename, '<?php exit; ?>' . json_encode($live_stream_info));
                 $curl->addRequestData('data', implode(']ts[', $postdata));
                 $ret = $curl->request('dvr_update.php');
             }
             print_r($ret);
         }
     }
 }
Exemplo n.º 22
0
 private function fetch_live()
 {
     $timenow = time();
     $sql = 'SELECT * FROM ' . DB_PREFIX . 'schedule WHERE start_time < ' . $timenow . ' AND (start_time+toff + 20) >= ' . $timenow . ' AND type=1';
     //$sql = 'SELECT * FROM ' . DB_PREFIX . 'schedule WHERE (start_time+toff) >= ' . $timenow . ' AND type=3';
     $q = $this->db->query($sql);
     $curl = new curl($this->settings['App_live']['host'], $this->settings['App_live']['dir'] . 'admin/');
     $curl->setReturnFormat('json');
     $curl->setSubmitType('post');
     while ($r = $this->db->fetch_array($q)) {
         $tmpfilename = CACHE_DIR . 'live_stream_' . $r['id'] . '_' . $r['start_time'] . '.php';
         if (is_file($tmpfilename)) {
             $first_switch_live = false;
             $content = @file_get_contents($tmpfilename);
             $content = substr($content, 14);
             $live_stream_info = json_decode($content, 1);
         } else {
             $first_switch_live = true;
             $live_stream_info = array();
         }
         $f_start_time = intval($r['start_time']) * 1000;
         $f_end_time = $f_start_time + $r['toff'] * 1000;
         $last_start_time = intval($live_stream_info['last_start_time']);
         if ($r['url']) {
             $curl->initPostData();
             $curl->addRequestData('a', 'create');
             $curl->addRequestData('channel_id', $r['channel_id']);
             $curl->addRequestData('ischannel', 1);
             $curl->addRequestData('level', 2);
             $type = $r['type'];
             $toff = $r['toff'];
             $start_time = intval($live_stream_info['cur_start_time']);
             $lefttime = intval($live_stream_info['lefttime']);
             if (!$start_time) {
                 $start_time = $f_start_time;
             }
             if (!$lefttime) {
                 $lefttime = $r['toff'] * 1000;
             }
             $m3u8list = $this->parse_top_m3u8($r['url']);
             if ($m3u8list) {
                 $content = file_get_contents($m3u8list);
                 $m3u8_list = $this->parse_m3u8($content);
                 $lenth = count($m3u8_list) - 1;
                 if ($first_switch_live) {
                     $m3u8_list = array($m3u8_list[$lenth]);
                 }
                 $postdata = array();
                 foreach ($m3u8_list as $k => $v) {
                     $file_start = 0;
                     if ($lefttime - $v['dur'] < 500) {
                         break;
                     }
                     if ($last_start_time && $v['start_time'] <= $last_start_time) {
                         continue;
                     }
                     if (!$last_start_time) {
                         $file_start = 1;
                         $last_start_time = 1;
                     }
                     echo 'start_time:' . date('Y-m-d H:i:s', $v['start_time'] / 1000) . 'file_start:' . $file_start . '<br />';
                     echo 'f_start_time:' . date('Y-m-d H:i:s', $f_start_time / 1000) . '<br />';
                     echo 'f_end_time:' . date('Y-m-d H:i:s', $f_end_time / 1000) . '<br />';
                     echo 'last_start_time:' . date('Y-m-d H:i:s', $last_start_time / 1000) . '<br />';
                     $file_end = 0;
                     $duration[] = $v['dur'];
                     if (substr($v['ts'], 0, 4) != 'http') {
                         $c = substr($v['ts'], 0, 1);
                         if ($c == '/') {
                             $ts = $root_url . $v['ts'];
                         } else {
                             $ts = $cur_url . $v['ts'];
                         }
                     } else {
                         $ts = $v['ts'];
                     }
                     $postdata[] = $start_time . '#' . $v['dur'] . '#' . $ts . '#0#' . $r['change2_id'] . '#' . $f_start_time . '#' . $lefttime . '#' . $file_start . '#' . $file_end;
                     $lefttime = $lefttime - $v['dur'];
                     $start_time = $start_time + $v['dur'];
                     $last_ts_start_time = $v['start_time'];
                 }
             }
             if ($postdata) {
                 $live_stream_info = array('cur_start_time' => $start_time, 'last_start_time' => $last_ts_start_time, 'lefttime' => $lefttime);
                 file_put_contents($tmpfilename, '<?php exit; ?>' . json_encode($live_stream_info));
                 $curl->addRequestData('data', implode(']ts[', $postdata));
                 $ret = $curl->request('dvr_update.php');
             }
             print_r($ret);
         }
     }
 }
Exemplo n.º 23
0
 public function getMemberInfoFromMemberCenter($member_id = '')
 {
     if (!$this->settings['App_members'] || !$member_id) {
         return false;
     }
     $curl = new curl($this->settings['App_members']['host'], $this->settings['App_members']['dir']);
     $curl->setSubmitType('get');
     $curl->setReturnFormat('json');
     $curl->initPostData();
     $curl->addRequestData('member_id', $member_id);
     $memberInfo = $curl->request('member.php');
     return $memberInfo;
 }
Exemplo n.º 24
0
 function get_material_info()
 {
     if (empty($this->input['url'])) {
         return false;
     }
     $url = urldecode($this->input['url']);
     $url = explode("/", $url);
     $name = array_pop($url);
     $name = explode(".", $name);
     $name = $name[0];
     $name = explode("_", $name);
     $id = array_pop($name);
     $filename = implode('_', $name);
     $module_bundle = array_pop($url);
     $app_bundle = array_pop($url);
     include_once ROOT_PATH . 'lib/class/curl.class.php';
     $curl = new curl($this->settings['App_' . $app_bundle]['host'], $this->settings['App_' . $app_bundle]['dir'] . 'admin/');
     $curl->setSubmitType('post');
     $curl->setReturnFormat('json');
     $curl->initPostData();
     $curl->addRequestData('a', 'refer_detail');
     $curl->addRequestData('id', $id);
     $curl->addRequestData('token', '8sdhu9a7sdASDSiSUDs9SwiU7sGF');
     $ret = $curl->request($filename . '.php');
     if (!empty($ret) && is_array($ret)) {
         foreach ($ret as $k => $v) {
             $this->addItem($v);
         }
     }
     $this->output();
 }
Exemplo n.º 25
0
 public function deleteAccount($ids)
 {
     $curl = new curl($this->settings['App_auth']['host'], $this->settings['App_auth']['dir'] . 'admin/');
     $curl->setSubmitType('post');
     $curl->setReturnFormat('json');
     $curl->initPostData();
     $curl->addRequestData('a', 'delete');
     $curl->addRequestData('id', $ids);
     $ret = $curl->request('admin_update.php');
     return $ret[0];
 }
Exemplo n.º 26
0
 /**
  *
  * @Description 视频上传
  */
 public function uploadToVideoServer($file, $title = '', $brief = '', $vod_lexing = 1)
 {
     $curl = new curl($this->settings['App_mediaserver']['host'], $this->settings['App_mediaserver']['dir'] . 'admin/');
     $curl->setSubmitType('post');
     $curl->setReturnFormat('json');
     $curl->initPostData();
     $curl->addFile($file);
     $curl->addRequestData('title', $title);
     $curl->addRequestData('comment', $brief);
     $curl->addRequestData('vod_leixing', $vod_lexing);
     //网页传的视频类型是1,手机传的视频是2
     $curl->addRequestData('app_uniqueid', APP_UNIQUEID);
     $curl->addRequestData('mod_uniqueid', MOD_UNIQUEID);
     $ret = $curl->request('create.php');
     return $ret[0];
 }
Exemplo n.º 27
0
 public function content_material_list($url, $dir, &$content, $need_pages, $need_process)
 {
     $content_material_list = array();
     preg_match_all('/<img[^>]class=[\'|\\"]image-refer[\'|\\"][^>]src=[\'|\\"](.*?)[\'|\\"].*?[\\/]?>/is', $content, $mat_r1);
     preg_match_all('/<img[^>]src=[\'|\\"](.*?)[\'|\\"].*?class=[\'|\\"]image-refer[\'|\\"].*?[\\/]?>/is', $content, $mat_r2);
     $mat_r = arrpreg($mat_r1, $mat_r2);
     if (!$mat_r[0] || !is_array($mat_r[0])) {
         return array();
     }
     foreach ($mat_r[0] as $k => $v) {
         if ($mat_r[1][$k]) {
             $ex_arr = explode('/', $mat_r[1][$k]);
             $re_ex_arr = array_reverse($ex_arr);
             $filename = $re_ex_arr[0];
             $module = $re_ex_arr[1];
             $app = $re_ex_arr[2];
             $filename_arr = explode('_', $filename);
             $re_filename_arr = array_reverse($filename_arr);
             $fileid = intval($re_filename_arr[0]);
             unset($re_filename_arr[0]);
             if (empty($this->settings['App_' . $app]) || !$re_filename_arr) {
                 continue;
             }
             $curl = new curl($this->settings['App_' . $app]['host'], $this->settings['App_' . $app]['dir']);
             $curl->setSubmitType('post');
             $curl->setReturnFormat('json');
             $curl->initPostData();
             $curl->addRequestData('id', $fileid);
             $curl->addRequestData('a', 'detail');
             $result = $curl->request(implode('_', array_reverse($re_filename_arr)) . '.php');
             if (is_array($result) && $result) {
                 $ret = $this->select_child($app, $result);
             }
             $content_material_list[$app . '_' . $fileid] = $ret;
             $find_arr[] = $v;
             $replace_arr[] = '<m2o_mark style="display:none">' . $app . '_' . $fileid . '</m2o_mark>';
         }
     }
     if ($find_arr && $replace_arr && $content) {
         $content = str_replace($find_arr, $replace_arr, $content);
     }
     return $content_material_list;
 }
Exemplo n.º 28
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;
     }
     //录制
 }
Exemplo n.º 29
0
 public function get_apps()
 {
     $curl = new curl($this->settings['App_auth']['host'], $this->settings['App_auth']['dir']);
     $curl->setSubmitType('post');
     $curl->setReturnFormat('json');
     $curl->initPostData();
     $curl->addRequestData('a', 'effective_app');
     $ret = $curl->request('get_app_info.php');
     return $ret[0];
 }
Exemplo n.º 30
0
 public function get_log_operation()
 {
     $static_date = $this->input['static_date'];
     $user_id = $this->input['user_id'];
     if (!$static_date) {
         $static_date = date("Y-m-d 00:00:00", strtotime("-1 day"));
     }
     $date = strtotime($static_date);
     if (!$this->settings['App_logs']) {
         $this->errorOutput('日志应用尚未安装');
     }
     $curl = new curl($this->settings['App_logs']['host'], $this->settings['App_logs']['dir']);
     $curl->setReturnFormat('json');
     $curl->initPostData();
     $curl->addRequestData('a', 'get_work');
     $curl->addRequestData('user_id', $user_id);
     $curl->addRequestData('start_time', $static_date);
     $curl->addRequestData('end_time', date("Y-m-d", $date + 86400));
     $ret = $curl->request("admin/logs.php");
     $ret = $ret[0];
     if (!$ret) {
         $this->errorOutput('当天没有工作数据');
     }
     if ($ret['total'] && is_array($ret['total'])) {
         //每个操作的总数入库
         foreach ($ret['total'] as $k => $v) {
             if ($k) {
                 $data = array('user_id' => $user_id, 'action' => $k, 'count' => $v, 'date' => $date);
                 $ac = $this->mode->insert_data($data, 'operation');
             }
         }
     }
     if ($ret['total'] && is_array($ret['total'])) {
         //每个操作详细操作入库
         foreach ($ret['detail'] as $app => $v) {
             if ($v && is_array($v)) {
                 foreach ($v as $op_id => $op) {
                     $operation = array('user_id' => $user_id, 'app_bundle' => $app, 'operation_id' => $op_id, 'operation_name' => $op['op_name'], 'count' => $op['count'], 'action' => $op['action'], 'date' => $date);
                     $op = $this->mode->insert_data($operation, 'operate_detail');
                 }
             }
         }
     }
     $this->addItem($ret);
     $this->output();
 }