代码拉取完成,页面将自动刷新
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>精品小姐姐视频_by缘分</title>
<style>
*{
margin:0px;
padding:0px;
touch-action: pan-y;
text-align: center;
}
.app{
width: 100%;
height:100%;
position: absolute;
top:0px;
right:0px;
bottom: 0px;
left:0px;
overflow: hidden;
background-color: #000000;
}
#myVideo{
width: 100%;
height: 100%;
object-fit: contain;
object-position: center center;
z-index: 10;
}
.play-icon {
width: 100%;
height: 100%;
position: absolute;
//object-fit: cover;
background-position: 50% 50%;
top: 0px;
left: 0px;
opacity: 0;
transition: opacity 0.3s;
background: url("https://s21.ax1x.com/2024/03/26/pF56HHO.png");
background-repeat: no-repeat;
background-position-x: center;
background-position-y: center;
background-size: 50px 50px
}
.play-icons {
width: 100%;
height: 100%;
position: absolute;
//object-fit: cover;
background-position: 50% 50%;
top: 0px;
left: 0px;
opacity: 0;
transition: opacity 0.3s;
background: url("https://s21.ax1x.com/2024/03/26/pF5claF.png");
background-repeat: no-repeat;
background-position-x: center;
background-position-y: center;
background-size: 62px 62px
}
.progress {
position: fixed;
right: 0;
bottom: 0;
width: 100%;
height: 2px;
background-color: #ddd;
z-index: 110;
}
.progress-bar {
position: absolute;
top: 0;
left: 0;
width: 0;
height: 100%;
background-color: #4CAF50;
z-index: 120;
}
.progress-times {
position: absolute;
right: 85%;
bottom: 2px;
z-index: 130;
font-size: 12px;
color: #fff;
}
.progress-time {
position: absolute;
right: 20px;
bottom: 2px;
z-index: 130;
font-size: 12px;
color: #fff;
}
.modal {
position: fixed;
top: 40%;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0);
display: none;
justify-content: center;
align-items: center;
}
.modal-content {
opacity:0.5;
background-color: #fff;
padding: 10px;
border-radius: 2px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0);
border-radius: 20px;
}
.modal-footer {
margin-top: 20px;
}
#options {
display: none;
transform: translate(1%, 20%);/*上下左右移动*/
flex-wrap: wrap;
//gap: 8px; /* 设置间距 */
}
.option {
width: 56px; /*按钮宽度 */
height: 15px; /*按钮高度 */
padding: 10px; /*按钮大小*/
font-size: 14px; /*字体大小 */
border: 1px solid #ddd; /*按钮边框的像素,颜色,样式 */
background-color: #FFFFCC;/*按钮的颜色*/
display: flex;
margin-top: 8px;
margin-left: 8px;
justify-content: center;
opacity: 0.6; /* 透明度 */
border-radius: 10px; /*圆角*/
align-items: center;
}
</style>
<!-- <script src="https://cdn.bootcdn.net/ajax/libs/slick-carousel/1.8.1/slick.js"></script> -->
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script>
</head>
<body>
<div class="app">
<div class="play-icon" id="playIcon" onclick="">
</div>
<div class="play-icons" id="playIcons" onclick="">
</div>
<video id="myVideo" preload="auto" autoplay="autoplay" poster="https://hikerfans.com/weisyr/img/Loading1.gif" src="">
</video>
</div>
<div class="progress">
<div id="progress-bar" class="progress-bar"></div>
<div class="progress-times" id="time-divs">
0:00
</div>
<div class="progress-time" id="time-div">
0:00
</div>
</div>
<div id="buttons" style="position:absolute;bottom:150px;right:0px;opacity:0;">
<button id="bth" style="border-radius:20px;width:35px;height:25px;opacity:1;">连播</button>
<br />
<br />
<br />
<button id="ping" style="border-radius:20px;width:35px;height:25px;opacity:1;">原始</button>
<br />
<br />
<br />
<button id="yuan" style="border-radius:20px;width:35px;height:25px;opacity:1;">换源</button>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
</div>
<div id="options">
<div class="option">源01<span class="url" data-url=""></span>
</div>
<div class="option">源02<span class="url" data-url=""></span>
</div>
</div>
<div class="modal" id="myModal">
<div class="modal-content">
<p id="tipMessage"></p>
</div>
</div>
<script>
$(document).ready(function() {
auto = true;
player = document.getElementById("myVideo");
buttons = document.querySelector("#buttons");
playicon = document.querySelector(".play-icon");
playicons = document.querySelector(".play-icons");
players();
$("#bth").on("click", function() {
auto = !auto;
this.innerText = (auto ? '连播' : '循环');
document.getElementById("tipMessage").textContent = auto ? '您选择了:连续播放' : '您选择了:循环播放';
document.getElementById("myModal").style.display = "flex";
setTimeout(function() {
closeTip();
}, 3000);
function closeTip() {
document.getElementById("myModal").style.display = "none";
}
setTimeout(function() {
buttons.style.opacity = 0;
playicon.style.opacity = 0;
}, 5000);
player.play()
});
$("#ping").on("click", function() {
//fba.log(this.innerText)
this.innerText = (this.innerText == '原始' ? '满屏' : '原始');
if (this.innerText == '满屏') {
player.style.objectFit = "cover";
player.play()
} else {
player.style.objectFit = "contain";
player.play()
}
setTimeout(function() {
playicon.style.opacity = 0;
buttons.style.opacity = 0;
}, 5000);
})
$("#myVideo").on("error", function() {
players();
}); //错误从新播放
player.addEventListener('ended', function() {
console.log("播放结束");
if (auto == false) {
player.play();
} else {
players();
}
}, false);
$("#myVideo").on("dblclick", function(){
console.log("dblclick");
FullScreen();
player.style.objectFit = "contain";
playicon.style.opacity = 0;
});
/* $("#myVideo").on("click", function(){
if (player.paused) {
playicon.style.opacity = 0;
buttons.style.opacity = 0;
player.play();
} else {
playicon.style.opacity = 1;
buttons.style.opacity = 1;
player.pause();
}
});*/
$("#myVideo").on("click", function(){
if (playicon.style.opacity == 0) {
buttons.style.opacity = 1;
playicon.style.opacity = 1;
setTimeout(function() {
buttons.style.opacity = 0;
playicon.style.opacity =0;
// playicons.style.opacity = 0;
}, 5000);
playicons.style.opacity = 0;
player.play();
} else {
playicons.style.opacity = 1;
buttons.style.opacity = 0;
playicon.style.opacity = 0;
player.pause();
}
});
var isOptionsOpen = false;
$(document).on("click", "#yuan", function() {
if (isOptionsOpen) {
// 弹窗已经打开,我们需要关闭它
$("#options").hide();
isOptionsOpen = false;
} else {
// 弹窗已经关闭,我们需要打开它
var options = [{
name: "源07",
url: "https://api.linhun.vip/api/Littlesistervideo?type=json&apiKey=4ce6a5c5bdf1374020dc6ef38bacc31a",
}, {
name: "源08",
url: "https://v.nrzj.vip/video.php?_t=0" + Math.random(),
}, {
name: "源09",
url: "https://www.nihaowua.com/v/video.php?_t=0" + Math.random(),
}, {
name: '源10',
url: 'https://cn-sy1.rains3.com/tc1/1%20(ssss).mp4'
}, {
name: '源11',
url: 'https://api.zxz.ee/api/video/?type=2'
}, {
name: '源12',
url: 'https://jx.iqfk.top/api/sjsp.php'
}, {
name: '源13',
url: 'http://api.treason.cn/API/xjj.php'
}, {
name: '源14',
url: 'https://777.cam/api/M/?type=302'
}, {
name: '源15',
url: 'http://www.wudada.online/Api/ScSp'
}, {
name: '源16',
url: 'http://api.yujn.cn/api/zzxjj.php?type=video',
}, {
name: '源17',
url: 'https://v2.api-m.com/api/meinv',
}, {
name: '源18',
url: 'https://api.qqsuu.cn/api/dm-xjj?type=json&apiKey=67b63b35fef398c2985f7acc857659e1'
}, {
name: '源19',
url: 'http://tucdn.wpon.cn/api-girl/index.php?wpon=url'
}, {
name: "姐姐",
url: "https://jiejie.uk/xjj/get/video.php?_t=0" + Math.random(),
}, {
name: "精品",
url: "https://api.cnmcom.com/dsp/get/get1.php",
}, {
name: "抖抖",
url: "http://dou.plus/get/get1.php",
}, {
name: "kuai",
url: "http://119.91.196.247:7778/xjj/ksget.php?_t=0" + Math.random(),
}, {
name: "极客",
url: "https://t.xxgeek.com/tools/mmvod/m.php",
}, {
name: "网红",
url: "https://api.linhun.vip/api/jingxuanshipin?type=网红&apiKey=b3c4da047a34a03956b93a76d070ebb5",
}, {
name: "明星",
url: "https://api.linhun.vip/api/jingxuanshipin?type=明星&apiKey=b3c4da047a34a03956b93a76d070ebb5",
}, {
name: "热舞",
url: "https://api.linhun.vip/api/jingxuanshipin?type=热舞&apiKey=b3c4da047a34a03956b93a76d070ebb5",
}, {
name: "风景",
url: "https://www.xfree.com",
}, {
name: "游戏",
url: "https://api.linhun.vip/api/jingxuanshipin?type=游戏&apiKey=b3c4da047a34a03956b93a76d070ebb5",
}, {
name: "微视",
url: "https://api.linhun.vip/api/weishi?apiKey=ee70d9266073c421ecaa3d603978ce61",
}, /*{
name: "抖音热点",
url: "https://api.linhun.vip/api/rddouyin?apiKey=d61f3ff73245436bbf3d3d7d096b3dae",
}, {
name: "抖音推荐",
url: "https://api.linhun.vip/api/tjdouyin?apiKey=fc806de3fd5031bdcc63c3a686eff9ec",
}, {
name: "抖音娱乐",
url: "https://api.linhun.vip/api/yldouyin?apiKey=31585470acf2f6594fafbc3a140799bb",
},*/ {
name: "kan",
url: "http://www.kankanbb.top/video.php?_t=0" + Math.random()
}, {
name: "dou",
url: "https://www.tblist.cn/douyin/video.php?_t=0" + Math.random()
}, {
name: "游艇",
url: "https://play.cnnnnet.com/youtinggirl.php?_t=0" + Math.random(),
}, {
name: "国内",
url: "https://diskgirl.com/get/get1.php"
}, {
name: "极致",
url: "https://p.txqq.pro/api/girls?limit=1",
}
];
for (var j = 6; j > 0; j--) {
options.unshift({
name: '源0' + j,
url: 'http://119.91.196.247:7778/xjj/get' + j + '.php'
});
}
for (var j = 1; j < 9; j++) {
options.push({
name: 'pf0' + j,
url: 'https://pf129.com/xjj/get/get' + j + '.php'
});
}
options.push({
name: 'DJ秀',
url: 'http://djshare.kuaiyuhudong.cn/api/web/share/djvideo.php'
});
options.push(
/*{
name: '抖音',
url: 'http://m.sharenice.net/mobile/get_more_videos?cate=200&page='
}, {
name: '快手',
url: 'http://m.sharenice.net/mobile/get_more_videos?cate=201&page='
}, {
name: '火山',
url: 'http://m.sharenice.net/mobile/get_more_videos?cate=203&page='
}, */
{
name: '美女',
url: 'https://v1.21lhz.cn/API/Video/api.php?_t=0' + Math.random()
});
var options = options.filter(data => {
return !data.name.match(/pf07/)
});
var name = localStorage.getItem('xjjname');
if(null === name) {
name = '源01';
}
const index = options.findIndex(function(val) {
return val.name === name
});
options[index].name = '<span style="color:red">' + options[index].name + '</span>';
var optionsHtml = "";
options.forEach(function(option) {
optionsHtml += "<div class='option'>" + option.name + "<span class='url' data-url='" + option.url + "'></span></div>";
});
document.getElementById("options").style.display ='flex';
$("#options").html(optionsHtml);
$("#options").show();
isOptionsOpen = true;
$(".option").on("click", function() {
var name = $(this).text();
var url = $(this).find(".url").attr("data-url");
localStorage.setItem('jjurl', url);
localStorage.setItem('xjjname', name)
document.getElementById('yuan').innerText = name;
players();
$("#options").hide();
});
}
});
// 点击弹窗内部的任何元素都可以关闭弹窗
$(document).on("click", ".option", function(event) {
$("#options").hide();
isOptionsOpen = false;
});
// 点击屏幕其他地方可以关闭弹窗
$(document).on("click", function(event) {
if (!$(event.target).closest("#yuan, .option").length && isOptionsOpen) {
$("#options").hide();
isOptionsOpen = false;
player.play()
playicon.style.opacity = 0;
}
});
})
function players() {
var url = localStorage.getItem('jjurl');
if(null === url) {
url = 'http://119.91.196.247:7778/xjj/get1.php';
};
if (/kuaiyuhudong/.test(url)) {
fetch(url, {
method: 'GET'
})
.then(response => {
if (!response.ok) {
throw new Error("网络请求失败,正在重新尝试...");
}
return response.text();
})
.then(data => {
var list = data.match(/data-url="(.*?)"\>/g)
i = Math.floor(Math.random() * list.length);
var url = 'http://djshare.kuaiyuhudong.cn/api/web/share/djvideo.php' + list[0].split('"')[1]
return fetch(url, {
method: 'GET'
});
})
.then(response => {
if (!response.ok) {
throw new Error("网络请求失败,正在重新尝试...");
}
return response.text();
})
.then(data => {
url = data.match(/audiodiv" src="(.*?)"/)[1];
$("#myVideo").attr("src", url);
})
} else
/* if (/sharenice/.test(url)) {
x = Math.floor(Math.random() * 697) + 1;
i = Math.floor(Math.random() * 208) + 1;
j = Math.floor(Math.random() * 251) + 1;
z = Math.floor(Math.random() * 89) + 1;
if (/200/.test(url)) {
url = url + x
}else if (/201/.test(url)) {
url = url + i
}else if (/576O5aWz/.test(url)) {
url = url + j + '&type=t'
}else if (/203/.test(url)) {
url = url + z
}
//fba.log(url)
fetch(url, {
headers: {
"X-Requested-With": "XMLHttpRequest"
},
method: 'GET',
})
.then(response => {
if (!response.ok) {
throw new Error("网络请求失败,正在重新尝试...");
}
return response.text();
})
.then(data => {
var list = JSON.parse(data).data.match(/a href=".*?"/g)
i = Math.floor(Math.random() * list.length);
var url = list[i].split('"')[1]
return fetch(url, {
method: 'GET'
});
})
.then(response => {
if (!response.ok) {
throw new Error("网络请求失败,正在重新尝试...");
}
return response.text();
})
.then(data => {
url = data.match(/video.*?src="(.*?)"/)[1];
$("#myVideo").attr("src", url);
})
} else */
if (/t=0|\.mp4|mnapi|iqfk|cam|yujn|zxz|shenke/.test(url)) {
url = url.replace('ssss', Math.floor(Math.random()*678+1))
$("#myVideo").attr("src", url);
} else
if (/treason/.test(url)) {
getJSON(url)
} else {
$.get(url, function(data, status) {
if (status == status) {
if (/xxgeek|meinv|67b63|txqq/.test(url)) {
data = data.match(/.*(http.*?\.mp4)/)[1];
}
if (/linhun|wudada/.test(url)) {
data = data.video || data.视频 || data.data;
}
if (!data.startsWith("http")) {
data = 'https:' + data;
}
console.log("成功获取数据!");
player.src = data;
//player.play()
} else {
console.log("失败,重新发起请求!");
players()
}
});
}
playicon.style.opacity = 0;
}
function getJSON(url) {
fetch(url).then(function(response) {
return response.text();//json()
}).then(function(data) {
player.src = data;
}).catch(function(e) {
console.log("Oops, error");
});
}
function FullScreen() {
if (player.requestFullscreen) {
player.requestFullscreen();
player.play();
} else
if (player.mozRequestFullScreen) {
player.mozRequestFullScreen();
player.play();
} else
if (player.webkitRequestFullScreen) {
player.webkitRequestFullScreen();
player.play();
}
}
</script>
<script>
var startx, starty;
//获得角度
function getAngle(angx, angy) {
return Math.atan2(angy, angx) * 180 / Math.PI;
};
//根据起点终点返回方向 1向上 2向下 3向左 4向右 0未滑动
function getDirection(startx, starty, endx, endy) {
var angx = endx - startx;
var angy = endy - starty;
var result = 0;
//如果滑动距离太短
if (Math.abs(angx) < 70 && Math.abs(angy) < 70) {
return result;
}
var angle = getAngle(angx, angy);
if (angle >= -135 && angle <= -45) {
result = 1;
} else if (angle > 45 && angle < 135) {
result = 2;
} else if ((angle >= 135 && angle <= 180) || (angle >= -180 && angle < -135)) {
result = 3;
} else if (angle >= -45 && angle <= 45) {
result = 4;
}
return result;
}
//手指接触屏幕
document.addEventListener("touchstart", function(e) {
startx = e.touches[0].pageX;
starty = e.touches[0].pageY;
}, false);
//手指离开屏幕
document.addEventListener("touchend", function(e) {
var endx, endy;
endx = e.changedTouches[0].pageX;
endy = e.changedTouches[0].pageY;
var direction = getDirection(startx, starty, endx, endy);
switch (direction) {
case 1:
console.log("向上!");
players()
break;
case 3:
console.log("向左!");
players()
break;
case 4:
player.webkitExitFullscreen();
break;
case 2:
player.webkitExitFullscreen();
break;
}
}, false)
const progressBar = document.getElementById('progress-bar');
const timeDiv = document.getElementById('time-div');
const timeDivs = document.getElementById('time-divs');
player = document.getElementById("myVideo");
player.addEventListener('loadedmetadata', () => {
const duration = player.duration;
// 格式化总时长
let formattedDuration = formatTime(duration);
// 设置总时长
timeDiv.textContent = `${formattedDuration}`;
player.ontimeupdate = () => {
const currentTime = player.currentTime;
const duration = player.duration;
const progressWidth = (currentTime / duration) * 100;
progressBar.style.width = `${progressWidth}%`;
timeDiv.textContent =formattedDuration;
timeDivs.textContent = formatTime(currentTime)
};
});
document.addEventListener("touchstart", (e) => {
if (e.touches.length === 1) {
player.playbackRate = 2;
}
}, { passive: false });
document.addEventListener("touchend", (e) => {
if (e.touches.length === 0) {
player.playbackRate = 1;
}
}, { passive: false });//长按倍速
const intervalId = setInterval(() => {
if (player.ended) {
clearInterval(intervalId);
// 重置进度条
progressBar.style.width = '0%';
// 设置当前时间为总时长
timeDiv.textContent = `${formatTime(player.duration)}`;
} else {
const currentTime = player.currentTime;
const duration = player.duration;
const progressWidth = (currentTime / duration) * 100;
progressBar.style.width = `${progressWidth}%`;
timeDiv.textContent = formattedDuration;
}
}, 100);
function formatTime(time) {
const minutes = Math.floor(time / 60);
const seconds = Math.floor(time % 60);
return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;
}
</script>
<script>
eval(fy_bridge_app.getInternalJs());
window.request = window.request00 || window.request;
let time = new Date().getDate().toString();
//log(time)
function formatLocalDate(date) {
return (
date.getFullYear() + '-' +
(date.getMonth() + 1).toString().padStart(2, '0') + '-' +
date.getDate().toString().padStart(2, '0')
);
};
let xjjtime = localStorage.getItem('xjjtime');
if (xjjtime !== time || null === xjjtime) {
localStorage.setItem('xjjtime', time);
var 本地 = 'hiker://files/yuan/xjj.html';
var 远程 = 'https://gitlab.com/liuzaoyue/l/-/raw/main/xjj.html';
var newtime = formatLocalDate(new Date());
var gx = '优化,欢迎使用。__缘分';
if (request(远程) != request(本地)) {
fba.writeFile(本地, request(远程));
$$$().x5LazyRule((yc, newtime) => {
confirm({
title: '更新完成',
content: yc.match(/gx = '(.*)'/)[1] + '_' +newtime
})
}, request(远程), newtime)
}
}
</script>
</body>
</html>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。