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
\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 fc2ppvdb\n fc2电子市场\n \n
\n
\n
主演: ${actorsHtml}
\n
\n \n \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 ${magnet.name}\n
\n \n ${(magnet.size / 1024).toFixed(2)}GB, ${magnet.files_count}個文件 \n \n
\n
\n ${magnet.hd ? '高清' : ""}\n ${magnet.cnsub ? '字幕' : ""}\n
\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($("