Files
JHS-enhance/src/plugins/jav-trailers.js
T
lzyme.dev@gmail.com 3c582535c0 add missing file
2026-08-29 16:54:48 +08:00

89 lines
3.9 KiB
JavaScript

import { BasePlugin } from '../core/base-plugin.js';
import { __publicField } from '../core/constants.js';
import { HotkeyManager } from './preview-video.js';
class JavTrailersPlugin extends BasePlugin {
getName() {
return "JavTrailersPlugin";
}
constructor() {
super();
this.hasBand = !1;
}
handle() {
let href = window.location.href;
if (!href.includes("handle=1")) return;
if ($("h1:contains('Page not found')").length) {
console.log("番号无法匹配, 跳搜索");
let keyword = href.split("?")[0].split("video/")[1].toLowerCase().replace("00", "-");
window.location.href = "/search/" + encodeURIComponent(keyword) + window.location.search;
return;
}
let findList = $(".videos-list .video-link").toArray();
if (findList.length) {
const keyword = href.split("?")[0].split("search/")[1].toLowerCase(), matchedLink = findList.find((el => $(el).find(".vid-title").text().toLowerCase().includes(keyword)));
if (matchedLink) {
window.location.href = $(matchedLink).attr("href") + window.location.search;
return;
}
}
this.handlePlayJavTrailers();
$("#videoPlayerContainer").on("click", (() => {
this.handlePlayJavTrailers();
}));
window.addEventListener("message", (event => {
let videoEl = document.getElementById("vjs_video_3_html5_api");
videoEl && (videoEl.currentTime += 5);
}));
const urlParams = new URLSearchParams(window.location.search), filterHotKey = urlParams.get("filterHotKey"), favoriteHotKey = urlParams.get("favoriteHotKey"), speedVideoHotKey = urlParams.get("speedVideoHotKey");
filterHotKey && HotkeyManager.registerHotkey(filterHotKey, (() => window.parent.postMessage(filterHotKey, "*")));
favoriteHotKey && HotkeyManager.registerHotkey(favoriteHotKey, (() => window.parent.postMessage(favoriteHotKey, "*")));
speedVideoHotKey && HotkeyManager.registerHotkey(speedVideoHotKey, (() => {
const videoEl = document.getElementById("vjs_video_3_html5_api");
videoEl && (videoEl.currentTime += 5);
}));
}
handlePlayJavTrailers() {
if (!this.hasBand) {
utils.loopDetector((() => 0 !== $("#vjs_video_3_html5_api").length), (() => {
setTimeout((() => {
this.hasBand = !0;
let videoEl = document.getElementById("vjs_video_3_html5_api");
console.log(videoEl);
videoEl.play();
videoEl.currentTime = 5;
videoEl.addEventListener("timeupdate", (function() {
videoEl.currentTime >= 14 && videoEl.currentTime < 16 && (videoEl.currentTime += 2);
}));
$("#vjs_video_3_html5_api").css({
position: "fixed",
width: "100vw",
height: "100vh",
objectFit: "cover",
zIndex: "999999999"
});
$(".vjs-control-bar").css({
position: "fixed",
bottom: "20px",
zIndex: "999999999"
});
}), 100);
}));
utils.loopDetector((() => $("#vjs_video_3 canvas").length > 0), (() => {
0 !== $("#vjs_video_3 canvas").length && $("#vjs_video_3 canvas").css({
position: "fixed",
width: "100vw",
height: "100vh",
objectFit: "cover",
top: "0",
right: "0",
zIndex: "999999998"
});
}));
}
}
}
export { JavTrailersPlugin };