| | <?php |
| | namespace app\admin\controller; |
| | use think\Db; |
| |
|
| | class VodPlayer extends Base |
| | { |
| | var $_pre; |
| | public function __construct() |
| | { |
| | parent::__construct(); |
| | $this->_pre = 'vodplayer'; |
| | } |
| |
|
| | public function index() |
| | { |
| | $list = config($this->_pre); |
| | $this->assign('list',$list); |
| | $this->assign('title',lang('admin/vodplayer/title')); |
| | return $this->fetch('admin@vodplayer/index'); |
| | } |
| |
|
| | public function info() |
| | { |
| | $param = input(); |
| | $list = config($this->_pre); |
| | if (Request()->isPost()) { |
| | $validate = \think\Loader::validate('Token'); |
| | if(!$validate->check($param)){ |
| | return $this->error($validate->getError()); |
| | } |
| | unset($param['__token__']); |
| | unset($param['flag']); |
| | $code = $param['code']; |
| | unset($param['code']); |
| | if(is_numeric($param['from'])){ |
| | $param['from'] .='_'; |
| | } |
| | if (strpos($param['from'], '.') !== false || strpos($param['from'], '/') !== false || strpos($param['from'], '\\') !== false) { |
| | $this->error(lang('param_err')); |
| | return; |
| | } |
| | $list[$param['from']] = $param; |
| | $sort=[]; |
| | foreach ($list as $k=>&$v){ |
| | $sort[] = $v['sort']; |
| | } |
| | array_multisort($sort, SORT_DESC, SORT_FLAG_CASE , $list); |
| |
|
| | $res = mac_arr2file( APP_PATH .'extra/'.$this->_pre.'.php', $list); |
| | if($res===false){ |
| | return $this->error(lang('write_err_config')); |
| | } |
| |
|
| | $res = fwrite(fopen('./static/player/' . $param['from'].'.js','wb'),$code); |
| | if($res===false){ |
| | return $this->error(lang('wirte_err_codefile')); |
| | } |
| | cache('cache_data','1'); |
| | return $this->success(lang('save_ok')); |
| | } |
| |
|
| | $info = $list[$param['id']]; |
| | if(!empty($info)){ |
| | $code = file_get_contents('./static/player/' . $param['id'].'.js'); |
| | $info['code'] = $code; |
| | } |
| | $this->assign('info',$info); |
| | $this->assign('title',lang('admin/vodplayer/title')); |
| | return $this->fetch('admin@vodplayer/info'); |
| | } |
| |
|
| | public function del() |
| | { |
| | $param = input(); |
| | $list = config($this->_pre); |
| | unset($list[$param['ids']]); |
| | $res = mac_arr2file(APP_PATH. 'extra/'.$this->_pre.'.php', $list); |
| | if($res===false){ |
| | return $this->error(lang('del_err')); |
| | } |
| | cache('cache_data','1'); |
| | return $this->success(lang('del_ok')); |
| | } |
| |
|
| | public function field() |
| | { |
| | $param = input(); |
| | $ids = $param['ids']; |
| | $col = $param['col']; |
| | $val = $param['val']; |
| |
|
| | if(!empty($ids) && in_array($col,['ps','status'])){ |
| | $list = config($this->_pre); |
| | $ids = explode(',',$ids); |
| | foreach($list as $k=>&$v){ |
| | if(in_array($k,$ids)){ |
| | $v[$col] = $val; |
| | } |
| | } |
| | $res = mac_arr2file(APP_PATH. 'extra/'.$this->_pre.'.php', $list); |
| | if($res===false){ |
| | return $this->error(lang('save_err')); |
| | } |
| | return $this->success(lang('save_ok')); |
| | } |
| | return $this->error(lang('param_err')); |
| | } |
| |
|
| | public function export() |
| | { |
| | $param = input(); |
| | $list = config($this->_pre); |
| | $info = $list[$param['id']]; |
| | if(!empty($info)){ |
| | $code = file_get_contents('./static/player/' . $param['id'].'.js'); |
| | $info['code'] = $code; |
| | } |
| |
|
| | header("Content-type: application/octet-stream"); |
| | if(strpos($_SERVER['HTTP_USER_AGENT'], "MSIE")) { |
| | header("Content-Disposition: attachment; filename=mac_" . urlencode($info['from']) . '.txt'); |
| | } |
| | else{ |
| | header("Content-Disposition: attachment; filename=mac_" . $info['from'] . '.txt'); |
| | } |
| | echo base64_encode(json_encode($info)); |
| | } |
| |
|
| | public function import() |
| | { |
| | if (request()->isPost()) { |
| | $param = input(); |
| | $validate = \think\Loader::validate('Token'); |
| | if(!$validate->check($param)){ |
| | return $this->error($validate->getError()); |
| | } |
| | unset($param['__token__']); |
| | $file = $this->request->file('file'); |
| | $info = $file->rule('uniqid')->validate(['size' => 10240000, 'ext' => 'txt']); |
| | if ($info) { |
| | $data = json_decode(base64_decode(file_get_contents($info->getpathName())), true); |
| | @unlink($info->getpathName()); |
| | if ($data) { |
| | if (empty($data['status']) || empty($data['from']) || empty($data['sort'])) { |
| | return $this->error(lang('format_err')); |
| | } |
| | if (strpos($data['from'], '.') !== false || strpos($data['from'], '/') !== false || strpos($data['from'], '\\') !== false) { |
| | $this->error(lang('param_err')); |
| | return; |
| | } |
| | $code = $data['code']; |
| | unset($data['code']); |
| |
|
| | $list = config($this->_pre); |
| | $list[$data['from']] = $data; |
| | $res = mac_arr2file(APP_PATH . 'extra/' . $this->_pre . '.php', $list); |
| | if ($res === false) { |
| | return $this->error(lang('write_err_config')); |
| | } |
| |
|
| | $res = fwrite(fopen('./static/player/' . $data['from'] . '.js', 'wb'), $code); |
| | if ($res === false) { |
| | return $this->error(lang('wirte_err_codefile')); |
| | } |
| | } |
| | return $this->success(lang('import_ok')); |
| | } else { |
| | return $this->error($file->getError()); |
| | } |
| | } |
| | else{ |
| | return $this->fetch('admin@vodplayer/import'); |
| | } |
| | } |
| |
|
| | } |
| |
|