修复步数修改工具
This commit is contained in:
@@ -17,36 +17,64 @@ class App extends Plugin
|
||||
|
||||
public function query(){
|
||||
$video_url = input('post.video_url', null, 'trim');
|
||||
if(!$video_url) return msg('error','视频链接不能为空');
|
||||
if(!$video_url) return json(['code'=>-1, 'msg'=>'视频链接不能为空']);
|
||||
|
||||
$apitype = $this->get_api_type($video_url);
|
||||
if(!$apitype) return json(['code'=>-1, 'msg'=>'不支持该视频链接']);
|
||||
|
||||
try{
|
||||
$result = $this->parse($video_url);
|
||||
return json(['code'=>0, 'msg'=>'success', 'data'=>$result]);
|
||||
}catch(\Exception $e){
|
||||
return json(['code'=>-1, 'msg'=>$e->getMessage()]);
|
||||
$classname = 'plugin\\utility\\videoparse\\api\\'.$apitype;
|
||||
if(class_exists($classname)){
|
||||
$instance = new $classname();
|
||||
try{
|
||||
$result = $instance->parse($video_url);
|
||||
return json(['code'=>0, 'msg'=>'success', 'data'=>$result]);
|
||||
}catch(\Exception $e){
|
||||
return json(['code'=>-1, 'msg'=>$e->getMessage()]);
|
||||
}
|
||||
}else{
|
||||
return json(['code'=>-1, 'msg'=>'该平台类型不存在']);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function parse($url){
|
||||
$url = 'https://yuanxiapi.cn/api/jiexi_video/?url='.urlencode($url);
|
||||
$data = get_curl($url);
|
||||
$arr = json_decode($data, true);
|
||||
if(isset($arr['code']) && $arr['code']==200){
|
||||
if(isset($arr['video'])){
|
||||
$resurl = $arr['video'];
|
||||
}elseif(isset($arr['images'])){
|
||||
$resurl = $arr['images'];
|
||||
}else{
|
||||
throw new \Exception('解析url返回异常');
|
||||
}
|
||||
return [
|
||||
'title' => $arr['desc'],
|
||||
'cover' => $arr['cover'],
|
||||
'url' => $resurl,
|
||||
];
|
||||
}else{
|
||||
throw new \Exception('视频解析失败');
|
||||
private function get_api_type($url){
|
||||
if(strpos($url, 'kg.qq.com/') || preg_match('/kg(\d+).qq.com\//', $url)){
|
||||
return 'qmkg';
|
||||
}
|
||||
elseif(strpos($url, 'weishi.qq.com/')){
|
||||
return 'weishi';
|
||||
}
|
||||
elseif(strpos($url, '.huya.com/')){
|
||||
return 'huya';
|
||||
}
|
||||
elseif(strpos($url, '.acfun.cn/')){
|
||||
return 'acfun';
|
||||
}
|
||||
elseif(strpos($url, '.douyin.com/')){
|
||||
return 'douyin';
|
||||
}
|
||||
elseif(strpos($url, '.kuaishou.com/')){
|
||||
return 'kuaishou';
|
||||
}
|
||||
elseif(strpos($url, '.xiaohongshu.com/') || strpos($url, 'xhslink.com/')){
|
||||
return 'xiaohongshu';
|
||||
}
|
||||
elseif(strpos($url, 'toutiao.com/')){
|
||||
return 'toutiao';
|
||||
}
|
||||
elseif(strpos($url, 'v.douyu.com/')){
|
||||
return 'douyu';
|
||||
}
|
||||
elseif(strpos($url, 'weibo.com/') || strpos($url, 'weibo.cn/')){
|
||||
return 'weibo';
|
||||
}
|
||||
elseif(strpos($url, 'pipix.com/')){
|
||||
return 'pipixia';
|
||||
}
|
||||
elseif(strpos($url, 'izuiyou.com/') || strpos($url, 'xiaochuankeji.cn/')){
|
||||
return 'zuiyou';
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace plugin\utility\videoparse;
|
||||
|
||||
interface api
|
||||
{
|
||||
public function parse($url);
|
||||
}
|
||||
@@ -28,10 +28,15 @@
|
||||
<tbody>
|
||||
<tr><td class="query-title">视频标题</td><td class="query-result">{{result_info.title}}</td></tr>
|
||||
<tr v-show="result_info.desc"><td class="query-title">视频描述</td><td class="query-result">{{result_info.desc}}</td></tr>
|
||||
<tr v-show="result_info.author"><td class="query-title">视频作者</td><td class="query-result">{{result_info.author}}</tr>
|
||||
<tr v-show="result_info.author"><td class="query-title">视频作者</td><td class="query-result">{{result_info.author}} <a v-show="result_info.avatar" :href="result_info.avatar" target="_blank" rel="noreferrer"><em class="icon ni ni-img"></em></a></tr>
|
||||
<tr v-show="result_info.time"><td class="query-title">发布时间</td><td class="query-result">{{result_info.time}}</td></tr>
|
||||
<tr v-show="result_info.cover"><td class="query-title">视频封面</td><td class="query-result"><a :href="result_info.cover" class="btn btn-sm btn-outline-info" target="_blank" rel="noreferrer">点击查看</a> <a @click="copy(result_info.cover)" class="btn btn-sm btn-outline-warning" href="JavaScript:;">点此复制</a></td></tr>
|
||||
<tr><td class="query-title">视频链接</td><td class="query-result"><a :href="result_info.url" class="btn btn-sm btn-outline-info" target="_blank" rel="noreferrer">点击查看</a> <a @click="copy(result_info.url)" class="btn btn-sm btn-outline-warning" href="JavaScript:;">点此复制</a></td></tr>
|
||||
<tr v-show="result_info.url"><td class="query-title">视频链接</td><td class="query-result"><a :href="result_info.url" class="btn btn-sm btn-outline-info" target="_blank" rel="noreferrer">点击查看</a> <a @click="copy(result_info.url)" class="btn btn-sm btn-outline-warning" href="JavaScript:;">点此复制</a></td></tr>
|
||||
<tr v-show="result_info.images"><td class="query-title">图片链接</td><td class="query-result">
|
||||
<div v-for="(item, index) in result_info.images" :key="index" style="margin-bottom:5px;">
|
||||
<a :href="item" class="btn btn-sm btn-outline-info" target="_blank" rel="noreferrer">图片{{index+1}}查看</a> <a @click="copy(item)" class="btn btn-sm btn-outline-warning" href="JavaScript:;">点此复制</a>
|
||||
</div>
|
||||
</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@@ -40,7 +45,7 @@
|
||||
<div class="card-inner">
|
||||
<h6><em class="icon ni ni-info"></em> 工具说明</h6>
|
||||
<div class="accordion-inner">
|
||||
<p>本工具可解析短视频去除水印的下载链接。<br/>目前已支持的视频平台:抖音、头条、西瓜、快手、微博、皮皮虾、小红书、微视、虎牙、秒拍、全民K歌、Acfun等</p>
|
||||
<p>本工具可解析短视频去除水印的下载链接。<br/>已支持的视频平台:抖音、头条、快手、微博、小红书、微视、虎牙、全民K歌、Acfun等</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user