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(); }
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('更新成功'); }
} 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);
} 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);
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); }
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'); }
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]; }
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; }
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); }
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]; }
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; }
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'); }
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(); }
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(); }
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; }
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; }
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; } } } }
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); }
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; }
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'); }
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); } } }
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); } } }
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; }
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(); }
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]; }
/** * * @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]; }
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; }
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; } //录制 }
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]; }
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(); }