|
|
<?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'); |
|
|
} |
|
|
} |
|
|
|
|
|
} |
|
|
|