|
本帖最后由 jiteloozz 于 2022-12-15 20:32 编辑
重写了两处代码,看起来更舒服了。
有兴趣的可以对比一下已发表的1.2版。若有不足之处,欢迎指正~~~
其实可以获取整个赛事的ID的。。。
- <?php
- header('Content-Type: text/json;charset=UTF-8');
- $url = 'https://v1-sc.miguvideo.com/vms-match/v6/staticcache/basic/match-list/normal-match-list/0/2221401/default/1/miguvideo';
- $data = json_decode(get_data($url));
- $nowdays = date('Ymd');
- $days =$data->body->days;
- $num=array_keys($days,$nowdays)[0];
- $prevdays=$days[$num-1];
- foreach ($data->body->matchList->$nowdays as $match){
- if($match->matchStatus==1){ //直播
- $pids[]=$match->pID;
- }
- if($match->matchStatus==2){ //回放
- $mids[]=$match->mgdbId;
- $rids[]=$match->pID;
- }
- }
- $ids=!empty($pids)?$pids:$mids;
- if(empty($ids)){
- foreach ($data->body->matchList->$prevdays as $match){
- if($match->matchStatus==2){
- $mids[]=$match->mgdbId;
- $rids[]=$match->pID;
- }
- }
- $ids=$mids;
- }
- $playtype =isset($_GET['type'])&&!empty($ids[$_GET['type']])?$_GET['type']:array_rand($ids,1);
- $id=$ids[$playtype];
- if(!empty($rids)){
- $rid=$rids[$playtype];
- }
- if(strlen($id)>9){
- $bsurl='https://app-sc.miguvideo.com/vms-match/v5/staticcache/basic/all-view-list/'.$id.'/2/miguvideo';
- $info = json_decode(get_data($bsurl));
- foreach ($info->body->replayList as $pre){
- if(strpos($pre->name,'回放')!==false&&$pre->tip==null){
- $eids[]=$pre->pID;
- }
- }
- $id=!empty($eids)?$eids[array_rand($eids,1)]:$rid;
- }
- echo $id;
- function get_data($url){
- $headers = array(
- 'appid:miguvideo',
- 'terminalid: WWW',
- 'Accept-Encoding: gzip, deflate',
- 'Referer: https://www.miguvideo.com/mgs/website/prd/',
- );
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
- curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
- curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
- curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');
- $data = curl_exec($ch);
- curl_close($ch);
- return $data;
- }
复制代码
更新2.1版,修复第35句获取不到数据的问题,加了个头 'appid: miguvideo','terminalid: WWW'
更新2.2版,修改第37句foreach ($info->body->replayList as $pre){,剔除需要用劵观看的ID。
说明:
这个php只是获取ID而已......
发帖注意事项
请勿胡乱发帖:https://www.right.com.cn/forum/thread-8307840-1-1.html
账户手机验证:https://www.right.com.cn/forum/home.php?mod=spacecp&ac=plugin&id=jzsjiale_sms:home
|
|