import { BasePlugin } from '../core/base-plugin.js';
import { __publicField, currentHref, Status_FILTER, Status_FAVORITE, Status_HAS_DOWN, Status_HAS_WATCH } from '../core/constants.js';
import { javDbApi } from '../api/javdb.js';
class Fc2Plugin extends BasePlugin {
getName() {
return "Fc2Plugin";
}
async initCss() {
return "\n \n ";
}
handle() {
let fc2Url = "/advanced_search?type=3&score_min=0&d=1";
$('.navbar-item:contains("FC2")').attr("href", fc2Url);
$('.tabs a:contains("FC2")').attr("href", fc2Url);
if (currentHref.includes("advanced_search?type=3")) {
$("h2.section-title").contents().first().replaceWith("Fc2PPV");
$(".section .container > .box").remove();
}
if (currentHref.includes("collection_codes?movieId")) {
$("section").html("");
const urlParams = new URLSearchParams(window.location.search);
let movieId = urlParams.get("movieId"), carNum2 = urlParams.get("carNum"), url = urlParams.get("url");
movieId && carNum2 && url && this.openFc2Dialog(movieId, carNum2, url);
}
}
openFc2Dialog(movieId, carNum2, href) {
let tempCarNum = carNum2.replace("FC2-", "");
if (href.includes("123av")) {
this.getBean("Fc2By123AvPlugin").open123AvFc2Dialog(carNum2, href);
return;
}
layer.open({
type: 1,
title: carNum2,
content: '\n
\n \x3c!--
\n \n
--\x3e\n \x3c!--
--\x3e\n
\n \n
第三方资源:
\n \n
\n \n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n
\n \x3c!--
--\x3e\n
\n ',
area: utils.getResponsiveArea([ "70%", "90%" ]),
skin: "movie-detail-layer",
scrollbar: !1,
success: (layero, index) => {
this.loadData(movieId, carNum2);
$("#favoriteBtn").on("click", (async event => {
const actress = $("#data-actress").text(), publishTime = $("#data-releaseDate").text();
await storageManager.saveCar({
carNum: carNum2,
url: href,
names: actress,
actionType: Status_FAVORITE,
publishTime: publishTime
});
window.refresh();
layer.closeAll();
}));
$("#filterBtn").on("click", (event => {
utils.q(event, `是否屏蔽${carNum2}?`, (async () => {
const actress = $("#data-actress").text(), publishTime = $("#data-releaseDate").text();
await storageManager.saveCar({
carNum: carNum2,
url: href,
names: actress,
actionType: Status_FILTER,
publishTime: publishTime
});
window.refresh();
layer.closeAll();
window.location.href.includes("collection_codes?movieId") && utils.closePage();
}));
}));
$("#hasDownBtn").on("click", (async event => {
const actress = $("#data-actress").text(), publishTime = $("#data-releaseDate").text();
await storageManager.saveCar({
carNum: carNum2,
url: href,
names: actress,
actionType: Status_HAS_DOWN,
publishTime: publishTime
});
window.refresh();
layer.closeAll();
}));
$("#hasWatchBtn").on("click", (async event => {
const actress = $("#data-actress").text(), publishTime = $("#data-releaseDate").text();
await storageManager.saveCar({
carNum: carNum2,
url: href,
names: actress,
actionType: Status_HAS_WATCH,
publishTime: publishTime
});
window.refresh();
layer.closeAll();
}));
$("#subtitleSearchBtn").on("click", (() => {
window.JavPackSubtitle.openSearchModal({details: {code: carNum2}});
}));
window.JavPackSubtitle.preload115Matches(carNum2);
// $("#search-subtitle-btn").on("click", (event => utils.openPage(`https://subtitlecat.com/index.php?search=${carNum2}`, carNum2, !1, event)));
// $("#xunLeiSubtitleBtn").on("click", (() => this.getBean("DetailPageButtonPlugin").searchXunLeiSubtitle(carNum2)));
$("#magnetSearchBtn").on("click", (() => {
let magnetHub = this.getBean("MagnetHubPlugin").createMagnetHub(carNum2);
layer.open({
type: 1,
title: "磁力搜索",
content: '',
area: utils.getResponsiveArea([ "60%", "80%" ]),
scrollbar: !1,
success: () => {
$("#magnetHubBox").append(magnetHub);
}
});
}));
this.getBean("OtherSitePlugin").loadOtherSite(tempCarNum, carNum2).then();
utils.setupEscClose(index);
},
end() {
window.location.href.includes("collection_codes?movieId") && utils.closePage();
}
});
}
loadData(movieId, carNum2) {
let tempCarNum = carNum2.replace("FC2-", "");
this.handleMovieDetail(movieId);
this.handleLongImg(tempCarNum);
this.handleMagnets(movieId);
this.getBean("ReviewPlugin").showReview(movieId, $("#reviews-content")).then();
this.getBean("RelatedPlugin").showRelated($("#related-content"), movieId).then();
}
handleMovieDetail(movieId) {
javDbApi.getMovieDetail(movieId).then((res => {
const actors = res.actors || [], imgList = res.imgList || [];
let actorsHtml = "";
if (actors.length > 0) {
let actress = "";
for (let i = 0; i < actors.length; i++) {
let actor = actors[i];
actorsHtml += `${actor.name}`;
0 === actor.gender && (actress += actor.name + " ");
}
$("#data-actress").text(actress);
} else actorsHtml = '暂无演员信息';
let imagesHtml = "";
imagesHtml = Array.isArray(imgList) && imgList.length > 0 ? imgList.map(((img, index) => `\n \n
\n \n `)).join("") : '暂无剧照
';
$(".movie-info-container").html(`\n ${res.title || "无标题"}
\n \n 番号: ${res.carNum || "未知"}\n 年份: ${res.releaseDate || "未知"}\n 评分: ${res.score || "无"}\n 时长: ${res.duration + " m" || "无"}\n
\n \n \n \n
剧照: \n
${imagesHtml}
\n
\n ${res.releaseDate || ""}
\n `);
this.getBean("TranslatePlugin").translate(res.carNum, !1).then();
})).catch((err => {
console.error(err);
$(".movie-info-container").html(`\n 加载失败: ${err.message}
\n `);
}));
}
handleLongImg(carNum2) {
utils.loopDetector((() => $(".movie-gallery .image-list").length > 0), (async () => {
$(".movie-gallery .image-list").prepend(' 正在加载缩略图
');
const screenShotPlugin = this.getBean("ScreenShotPlugin"), imgUrl = await screenShotPlugin.getScreenshot(carNum2);
imgUrl && await screenShotPlugin.addImg("缩略图", imgUrl, carNum2);
}));
}
handleMagnets(movieId) {
javDbApi.getMagnets(movieId).then((magnetList => {
let magnetsHtml = "";
if (magnetList.length > 0) for (let i = 0; i < magnetList.length; i++) {
let magnet = magnetList[i], oddClass = "";
i % 2 == 0 && (oddClass = "odd");
magnetsHtml += `\n \n
\n
\n \n
\n
${magnet.created_at}
\n
\n `;
} else magnetsHtml = '暂无磁力信息';
$("#magnets-content").html(magnetsHtml);
$(".buttons button[data-clipboard-text*='magnet:']").each(((i, el) => {
$(el).parent().append($("