// ==UserScript==
// @name 里番看看
// @namespace http://tampermonkey.net/
// @version 0.3.beta
// @description 里番看看,全站里番免费观看
// @author Ths
// @license MIT License
// @match https://www.lf1080.com/index.php?s=/vod-play-id-*
// @icon https://www.google.com/s2/favicons?sz=64&domain=lf1080.com
// @grant none
// ==/UserScript==
async function getMediaInfo(){
var mediaId, pId;
try{
mediaId=window.location.search.match(/-id-(\d+)/)[1];
pId=window.location.search.match(/-pid-(\d+)/)[1];
} catch(e){
alert("未找到对应mediaId,当前location:"+window.location);
throw e;
}
var data=await fetch("/?s=Plus-Api-json&vodids="+mediaId).then(function(response) {
if (!response.ok) {
throw new NetworkError(`HTTP error! status: ${response.status}`);
}
return response.json();
})
.catch(error => {
if (error instanceof NetworkError) {
console.error("Network error: ", error.message);
alert("网络不通,无法完成搜索!");
} else if (error instanceof TypeError) {
console.error("Type error: ", error.message);
alert("类型错误!");
} else {
console.error("Other error: ", error);
alert("获取视频api数据失败,请检查服务器是否正常");
}
throw error;
});
try{
var vod_play=data.data[0].vod_play;
var all_url=data.data[0].vod_url;
console.log("all_url: \n"+all_url);
var vod_url=all_url.split("\r\n")[parseInt(pId)-1].slice(3);
} catch(e){
alert("获取json信息失败,请检查服务器是否正常");
throw e;
}
return [vod_url, vod_play];
}
function insertScript(mediaName, vod_play) {
var iframe=document.querySelector("iframe");
iframe.style='';
document.querySelector("div.cms-player-box").remove();
var con=iframe.contentDocument.documentElement.querySelector('#cms_player');
document.querySelector("#cms_player").setAttribute('class','embed-responsive embed-responsive-16by9');
con.setAttribute('class','embed-responsive embed-responsive-16by9');
var div=document.createElement('div');
div.id="dplayer";
div.setAttribute("class", "embed-responsive-item");
con.appendChild(div);
var script1=document.createElement('script');
script1.innerHTML=`var cms_player = {"yun":true,"url":"${mediaName}","copyright":0,"name":"${vod_play}","jiexi":"","time":0,"buffer":"https:\/\/www.hhhh1080.com\/buffer.html","pause":"https:\/\/www.hhhh1080.com\/pause.html","next_path":"","next_url":""};`;
con.appendChild(script1);
var script2=document.createElement('script');
//script2.src=`/Public/player/${vod_play}.js`; //3种可能,DPlayer其中访问这样的url:'https://play.vodhhh.com/dm_vod_m3u8/' + cms_player.url + '/' + cms_player.url + '.m3u8';DPlayerMMD其中访问这样的url:'https://play.vodhhh.com/mmd_vod_m3u8/' + cms_player.url + '/' + cms_player.url + '.m3u8';DPlayer3D其中访问这样的url:'https://play.vodhhh.com/3d_vod_m3u8/' + cms_player.url + '/' + cms_player.url + '.m3u8'
//网站原来版本的js播放有些一卡一顿的,换成稳定版的可以加速,但加载会变慢
var dirPrefix="dm";
if("DplayerMMD"===vod_play) dirPrefix="mmd";
else if("Dplayer3D"===vod_play) dirPrefix="3d";
script2.innerHTML=`var cms_player_fun = {
'canplay': false,
'buffer': function () {
$('#dplayer').before('<iframe id="cms_player_buffer" class="embed-responsive-item" src="' + cms_player.buffer + '" frameborder="0" scrolling="no" allowtransparency="true"></iframe>');
},
'pause': function () {
$width = $('#dplayer').width() / 2;
$height = $('#dplayer').height() / 2;
$top = $('#dplayer').height() / 4;
$left = $('#dplayer').width() / 4;
$('#dplayer').before('<iframe id="cms_player_pause" class="embed-responsive-item" src="' + cms_player.pause + '" frameborder="0" scrolling="no" allowtransparency="true" style="position:absolute;z-index:2;top:' + $top + 'px;left:' + $left + 'px;width:' + $width + 'px;height:' + $height + 'px"></iframe>');
},
'remove': function () {
$('#cms_player_buffer').remove();
$('#cms_player_pause').remove();
},
'dplayer_plus': function () {
// document.write('<script src="https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.1.0/hls.min.js"></script>');
document.write('<script src="https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.1.5/hls.min.js"></script>');
},
'dplayer_css': function () {
// $("<link>").attr({ rel: "stylesheet",type: "text/css",href: "https://cdnjs.cloudflare.com/ajax/libs/dplayer/1.25.0/DPlayer.min.css"}).appendTo("head");
document.write('<style>.dplayer-menu{display: none !important;}</style><div id="dplayer" class="embed-responsive-item"></div>');
},
'dplayer_html': function () {
// 调用播放器
var dp = new DPlayer({
container: document.getElementById('dplayer'),
autoplay: true,
allowfullscreen: true,
theme: '#FADFA3',
screenshot: true,
preload: 'auto',
video: {
url: 'https://play.vodhhh.com/${dirPrefix}_vod_m3u8/' + cms_player.url + '/' + cms_player.url + '.m3u8',
//url:'https://play.vodhhh.com/123321/123321.m3u8',
type: 'hls'
}
});
// 足够播放时
dp.on('canplay', function () {
cms_player_fun.canplay = true;
});
// 播放开始时
// dp.on('play', function () {
// cms_player_fun.remove();
// });
// 播放暂停时
// dp.on('pause', function () {
// if (cms_player.pause && cms_player_fun.canplay) {
// cms_player_fun.pause();
// }
// });
// 播放完成时
dp.on('ended', function () {
if (cms_player.next_path) {
top.location.href = cms_player.next_path;
}
});
},
'play': function () {
cms_player.yun = false;//取消云播放器
cms_player_fun.dplayer_plus();//m3u8 flv插件
cms_player_fun.dplayer_css();//dplayer 样式
$.getScript("https://cdnjs.cloudflare.com/ajax/libs/dplayer/1.26.0/DPlayer.min.js", function () {
if (cms_player.time && cms_player.buffer) {
cms_player_fun.buffer();
setTimeout(function () { cms_player_fun.remove(); cms_player_fun.dplayer_html(); }, (cms_player.time * 1000));
} else {
cms_player_fun.dplayer_html();
}
});
}
};
cms_player_fun.play();`;
con.appendChild(script2);
}
function isVideo(){
let isvideo = 0;
let info = window.location.search;
if(-1!==info.search("/vod-play-id-")){
isvideo=1;
console.log('isvideo=true');
}
//return 1;
return isvideo;
}
/*window.addEventListener('load', () => {
'use strict';
*/
if(isVideo()){
setTimeout(async () => {
//var url=getMediaUrl();
//var url="https://play.vodhhh.com/dm_vod_m3u8/Vod_2022003701/Vod_2022003701.m3u8";
var mediaUnit=await getMediaInfo();
console.log(mediaUnit);
insertScript(mediaUnit[0], mediaUnit[1]);
}, 800);
}
//});