Sleazy Fork is available in English.

里番看看

里番看看,全站里番免费观看

Fra og med 05.02.2023. Se den nyeste version.

// ==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);
}
//});