您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
可以免费观看海角社区钻石和金币付费帖子、vip帖子,包括视频、图片、音频。
// ==UserScript== // @name 海角社区免费版 // @namespace http://tampermonkey.net/ // @version 0.1.2 // @description 可以免费观看海角社区钻石和金币付费帖子、vip帖子,包括视频、图片、音频。 // @author JamToday // @match https://*.haijiao.com/* // @include *://hj*.*/* // @include *://*.hj*.*/* // @include *://*.hai*.*/* // @include *://hai*.*/* // @include *://hj*/* // @include *://*.hj*/* // @include */post/details/* // @match *://*/post/details* // @exclude *://hjai*/* // @exclude *://haijiao.ai/* // @exclude *://haijiao.pro/* // @exclude *://*.kittymao.xyz/* // @exclude https://hjfb.org/* // @exclude *://tool.liumingye.cn/* // @icon https://www.hjadbf.top/images/common/project/favicon.ico // @grant none // @run-at document-start // ==/UserScript== (function () { let kitty_StatusColor = { success: "#67C23A", warning: "#E6A23C", info: "#909399", danger: "#F56C6C", 200: "#67C23A", 300: "#E6A23C", 400: "#909399", 500: "#F56C6C", }; let kitty_config = { name: "海角社区免费版", id: "hjfree", version: "0.1.2", homePageName: "kitty猫", homePageUrl: "www.kittymao.xyz", update: 3, logListMaxLength: 19, logItemLength: 20, updateUrl: "https://sleazyfork.org/zh-CN/scripts/440819-cao", requestHostList: ["https://baixiaodu.uk/api"], }; let kitty_isrun = { getNewVersion: false, }; let kitty_tabIndex = 0; let kitty_logListTarget = []; let kitty_logList = new Proxy(kitty_logListTarget, { set: function (target, property, value) { if (property === "length") { console.log("Cannot change the length of the array."); return true; } else { target[property] = value; let appendDiv = document.createElement("div"); appendDiv.innerHTML = value; let kitty_logListDiv = document.getElementsByClassName("kitty_logList")[0]; kitty_logListDiv.appendChild(appendDiv); return true; } }, }); function kitty_setCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000); var expires = "expires=" + d.toGMTString(); document.cookie = cname + "=" + cvalue + "; " + expires; } function kitty_insertStyle() { let style = document.createElement("style"); style.innerHTML = ` /* 整体-start */ #kitty_vipPanel { width: 310px; height: 500px; box-shadow: 0 0 0 1px rgb(0 0 0 / 5%), 0 2px 4px 1px rgb(0 0 0 / 9%); border-left: 1px solid transparent; border-right: none; border-top: 1px solid transparent; border-bottom: 1px solid transparent; background-color: #FFFFFF; position: fixed; left: 6px; bottom: 6px; z-index: 99999; font-size: 16px; --script-panel-main-color: #4178b0; } #kitty_vipPanel a { text-decoration: underline; } .kitty_panelMain { font-size: 0.85em; } .kitty_hiddenPanel { left: -310px !important; } /* 整体-end */ /* panelHead-start */ .kitty_panelHead { display: flex; border-bottom: 1px solid #ececec; } .kitty_panelHead>div { color: #444; padding: 0 10px; height: 40px; line-height: 40px; box-sizing: border-box; user-select: none; text-align: center; width: 76px; font-size: 1em; } .kitty_panelHead>div:not(.kitty_headDivActive):hover { border-bottom: 3px solid #ccc; cursor: pointer; } .kitty_headDivActive { border-bottom: 3px solid var(--script-panel-main-color); color: #444; font-weight: bold; } /* panelHead-end */ /* 界面显示按钮 */ .kitty_showPanelBtn, .kitty_jiexiBtn { position: absolute; left: 320px; top: 150px; width: 50px; height: 50px; line-height: 50px; color: var(--script-panel-main-color); user-select: none; background-color: #FFFFFF; position: absolute; bottom: 20px; display: none; cursor: pointer; border-radius: 50px; text-align: center; box-shadow:0 0 0 1px rgb(0 0 0 / 5%), 0 2px 4px 1px rgb(0 0 0 / 9%); } .kitty_jiexiBtn { top: 85px; } /* 身体 */ .kitty_panelBody { padding: 0 10px; } .kitty_panelBody p { margin: 10px 0; } /* 输入框-start */ .kitty_searchInput { width: 98%; border-radius: 24px; box-shadow: 0 0 0 1px rgb(0 0 0 / 5%), 0 2px 4px 1px rgb(0 0 0 / 9%); height: 40px; border-left: 1px solid transparent; border-right: none; border-top: 1px solid transparent; border-bottom: 1px solid transparent; overflow: hidden; margin: 0 auto; margin-top: 40px; margin-bottom: 50px; display: flex; } .kitty_searchInput:hover { border-top-left-radius: 24px; box-shadow: 0 0 0 1px rgb(0 0 0 / 10%), 0 2px 4px 1px rgb(0 0 0 / 18%); border-left: 1px solid transparent; border-right: none; border-top: 1px solid transparent; border-bottom: 1px solid transparent; } .kitty_searchInput input { height: 100%; border: 0; outline: 0; padding: 0 10px; color: black; width: 100%; } /* 输入框-end */ /* go按钮-start */ .kitty_goToVipBtn { color: #FFFFFF; font-weight: bold; background-color: var(--script-panel-main-color); height: 100px; width: 100px; border-radius: 50px; text-align: center; line-height: 100px; margin: 20px auto; box-shadow: 0 0 0 1px rgb(0 0 0 / 5%), 0 2px 4px 1px rgb(0 0 0 / 9%); user-select: none; } .kitty_goToVipBtn:hover { cursor: pointer; box-shadow: 0 0 0 0 rgb(0 0 0 / 5%), 0 2px 4px 1px rgb(0 0 0 / 18%); -webkit-box-shadow: 0 0 0 0 rgb(0 0 0 / 5%), 0 2px 4px 1px rgb(0 0 0 / 18%); -moz-box-shadow: 0 0 0 0 rgba(0,0,0,.05),0 2px 4px 1px rgba(0,0,0,.18); } /* 动画 */ @keyframes kitty_float { 0% { transform: translateY(0px); } 5% { transform: translateY(-10px); } 10%,100% { transform: translateY(0px); } } .kitty_navy { position: relative; } .kitty_navy span { position: relative; display: inline-block; color: white; animation: kitty_float 9s ease-in-out infinite; animation-delay: 2s; font-size: 1.5em; } /* go按钮-end */ .kitty_logOutput { color: #71777d; font-size: 0.9em; margin-top: 10px; } .kitty_logOutput div { margin: 0; padding: 0; line-height: 1.5; } .kitty_downloadText { font-size: 20px; font-weight: bold; } .kitty_downloadText a { cursor:pointer; } `; document.querySelector("head").appendChild(style); } function kitty_createPanel() { let panel = document.createElement("div"); panel.setAttribute("id", "kitty_vipPanel"); panel.innerHTML = ` <div class="kitty_showPanelBtn">显示</div> <div class="kitty_jiexiBtn">解析</div> <div class="kitty_panelMain"> <div class="kitty_panelHead"> <div class="kitty_headDivActive">运行日志</div> <div>重要说明</div> <div>使用指南</div> </div> <div class="kitty_panelBody kitty_panelBody_0"> <div class="kitty_logOutput"> <div>脚本--><span class="kitty_scriptName"></span>-<span class="kitty_version"></span>-<span class="kitty_update"></span></div> <div>主页--><a class="kitty_homepage" target="_blank" href="">主页地址</a></div> <div>邮箱-->[email protected]</div> <div>操作--><span style="color: red;cursor:pointer;" class="kitty_hiddenPanelBtn">点此隐藏此脚本操作界面<<</span></div> <div class="kitty_logList"> </div> </div> </div> <div class="kitty_panelBody kitty_panelBody_1" style="display:none;"> <p>+ 本脚本完全免费</p> <p>+ 本脚本无恶意代码放心使用</p> <p>+ 更多脚本可看 <a target="_blank" href="https://docs.kittymao.xyz">www.kittymao.xyz</a></p> <p>+ 脚本仅支持正版海角</p> <p>+ 如果脚本在非正版海角网站运行, 请关闭即可</p> </div> <div class="kitty_panelBody kitty_panelBody_2" style="display:none;"> <p>+ 使用方法线路1: <a target="_blank" href="https://www.kittymao.xyz">www.kittymao.xyz</a></p> </div> </div> `; document.body.appendChild(panel); let ishidden = localStorage.getItem("kitty_isHiddenPanel"); if (ishidden) { ishidden = JSON.parse(ishidden); if (ishidden) { kitty_hiddenPanel(); } else { kitty_showPanel(); } } } function kitty_eventBind() { let tabs = document.querySelectorAll(".kitty_panelHead>div"); for (let i = 0; i < tabs.length; i++) { tabs[i].addEventListener("click", function () { for (let ii = 0; ii < tabs.length; ii++) { tabs[ii].className = ""; } tabs[i].className = "kitty_headDivActive"; kitty_changeTab(i); }); } document .querySelector(".kitty_hiddenPanelBtn") .addEventListener("click", function () { kitty_hiddenPanel(); }); document .querySelector(".kitty_showPanelBtn") .addEventListener("click", function () { kitty_showPanel(); }); document .querySelector(".kitty_jiexiBtn") .addEventListener("click", function () { if (location.href.includes("post/details?pid")) { if (kitty_isLogin()) { document.querySelector(".kitty_jiexiBtn").innerHTML = "稍等"; } else { document.querySelector(".kitty_jiexiBtn").innerHTML = "暂无"; kitty_checkLogin(); kitty_showPanel(); } } else { document.querySelector(".kitty_jiexiBtn").innerHTML = "暂无"; } }); } function kitty_changeTab(index) { kitty_tabIndex = index; let panelBodys = document.querySelectorAll(".kitty_panelBody"); if (!panelBodys[kitty_tabIndex]) { return; } for (let i = 0; i < panelBodys.length; i++) { panelBodys[i].style.display = "none"; } panelBodys[kitty_tabIndex].style.display = "block"; } function kitty_hiddenPanel() { document.querySelector("#kitty_vipPanel").className = "kitty_hiddenPanel"; document.querySelector(".kitty_showPanelBtn").style.display = "block"; document.querySelector(".kitty_jiexiBtn").style.display = "block"; localStorage.setItem("kitty_isHiddenPanel", JSON.stringify(true)); } function kitty_showPanel() { document.querySelector("#kitty_vipPanel").className = ""; document.querySelector(".kitty_showPanelBtn").style.display = "none"; document.querySelector(".kitty_jiexiBtn").style.display = "none"; localStorage.setItem("kitty_isHiddenPanel", JSON.stringify(false)); } function kitty_getSuccessHost() { let successHost = localStorage.getItem("kitty_requestSuccessHost"); if (successHost) { let findIndex = kitty_config.requestHostList.indexOf(successHost); if (findIndex != -1) { kitty_config.requestHostList.splice(findIndex, 1); kitty_config.requestHostList.unshift(successHost); } } } function kitty_getHost(index) { return kitty_config.requestHostList[index]; } function kitty_getStatusTypeText(type) { let typeText = "提示"; switch (type) { case "success": typeText = "成功"; break; case "warning": typeText = "警告"; break; case "info": typeText = "信息"; break; case "danger": typeText = "失败"; break; case "200": typeText = "成功"; break; case "300": typeText = "警告"; break; case "400": typeText = "信息"; break; case "500": typeText = "失败"; break; } return typeText; } function kitty_logListPush(item, type, isDom) { if (kitty_logList.length >= kitty_config.logListMaxLength) { kitty_logListShift(); } let stringLength = item.length; let start = 0; let end = kitty_config.logItemLength - 1; let headLine = true; let typeText = `${kitty_getStatusTypeText(type)}-->`; let styleColor = ""; if (type) { styleColor = type ? `color: ${kitty_StatusColor[type]}` : ""; } if (isDom) { let pushStr = `<span style="${styleColor}">${typeText}${item}</span>`; kitty_logList.push(pushStr); } else { while (stringLength >= 0) { let pushStr = `<span style="${styleColor}">${ headLine ? typeText : '<span style="opacity: 0;">续行--</span>>' }${item.substring(start, end)}</span>`; kitty_logList.push(pushStr); start = end; end += end; stringLength = stringLength - kitty_config.logItemLength; headLine = false; } } // kitty_showLogList(); } function kitty_logListShift() { kitty_logListTarget.shift(); let kitty_logListChild0 = document.querySelectorAll(".kitty_logList div")[0]; kitty_logListChild0.remove(); // kitty_showLogList(); } function kitty_setConfig() { document.getElementsByClassName("kitty_scriptName")[0].innerHTML = kitty_config.name; document.getElementsByClassName( "kitty_version" )[0].innerHTML = `v${kitty_config.version}`; let homepage = document.getElementsByClassName("kitty_homepage")[0]; homepage.innerHTML = kitty_config.homePageName + `(${kitty_config.homePageUrl})`; homepage.href = "https://" + kitty_config.homePageUrl; if (kitty_config.update === 1) { let versionSpan = document.getElementsByClassName("kitty_update")[0]; versionSpan.innerHTML = `已最新`; versionSpan.style = `color: ${kitty_StatusColor.success};`; } else if (kitty_config.update === 2) { let versionSpan = document.getElementsByClassName("kitty_update")[0]; versionSpan.innerHTML = `<span class="kitty_toNewVersion" style="user-select: none;cursor: pointer;">点此更新</span>`; versionSpan.style = `color: ${kitty_StatusColor.warning};`; document .querySelector(".kitty_toNewVersion") .addEventListener("click", function () { window.open(kitty_config.updateUrl); }); } else { let versionSpan = document.getElementsByClassName("kitty_update")[0]; versionSpan.innerHTML = `<span class="kitty_checkVersion" style="user-select: none;cursor: pointer;">检查更新</span>`; versionSpan.style = `color: ${kitty_StatusColor.warning};`; document .querySelector(".kitty_checkVersion") .addEventListener("click", function () { kitty_getNewVersion(0, false); }); } } function kitty_getNewVersion(index, change) { if (kitty_isrun.getNewVersion && !change) { return; } let host = kitty_getHost(index); if (!change) { kitty_logListPush("检查版本号中请耐心等待...", "info"); } kitty_isrun.getNewVersion = true; let url = `${host}/getVersion`; fetch(url, { method: "post", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ nickname: "hjfree", }), }) .then((res) => res.json()) .then((res) => { localStorage.setItem("kitty_requestSuccessHost", host); try { let data = res.data; if (data.version === kitty_config.version) { kitty_config.update = 1; kitty_logListPush("已是最新版", "success"); } else { kitty_config.update = 2; kitty_config.updateUrl = data.updateUrl; kitty_logListPush("不是最新版,可能无法使用", "warning"); } kitty_setConfig(); } catch (e) { kitty_logListPush("失败,返回值处理有问题", "danger"); console.log(e); } kitty_isrun.getNewVersion = false; }) .catch((e) => { if (e.toString().includes("JSON")) { kitty_logListPush("JSON解析失败,请联系作者", "danger"); kitty_isrun.getNewVersion = false; } else { console.log(e); index++; let getHost = kitty_getHost(index); if (getHost) { kitty_logListPush("请求失败,切换线路中请耐心等待...", "warning"); kitty_getNewVersion(index, true); } else { kitty_logListPush("请求失败,请联系作者", "danger"); kitty_isrun.getPermission = false; } } }); } function kitty_vipPanelInit() { kitty_insertStyle(); kitty_createPanel(); kitty_getSuccessHost(); kitty_eventBind(); kitty_setConfig(); } // ------------------------------------------ // ------------------------------------------ // ------------------------------------------ let kitty_icons = { toTop: "data:image/png;base64,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", close: "data:image/png;base64,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", }; let kitty_utils = { getCookie: function (name) { const cookies = document.cookie.split(";"); // 将 document.cookie 拆分为多个 Cookie 字符串 for (const cookie of cookies) { const [cookieName, cookieValue] = cookie.split("="); const trimmedCookieName = cookieName.trim(); // 去除空格 if (trimmedCookieName === name) { return decodeURIComponent(cookieValue); // 解码 Cookie 值 } } return null; // 没有找到匹配的 Cookie }, hjApiDecode: function (data) { let res; try { res = JSON.parse(atob(atob(atob(data)))); } catch (e) { console.log("ab error"); return ""; } return res; }, hjApiEecode: function (data) { return btoa(btoa(btoa(JSON.stringify(data)))); }, getElement: function (selector) { return new Promise((success, reject) => { let ele; function querySelectorAll_() { ele = document.querySelectorAll(selector); if (ele.length != 0) { success(ele); return true; } else { return false; } } if (!querySelectorAll_()) { let count = 1; let interval = setInterval(() => { if (count > 75) { reject("未获取元素: ", selector); clearInterval(interval); } if (!querySelectorAll_()) { count++; } else { success(ele); clearInterval(interval); } }, 50); } }); }, isMobileDevice: function () { return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test( navigator.userAgent ); }, }; let isMobileDevice = kitty_utils.isMobileDevice(); function kitty_hjPicEdcoder() { var e = "ABCD*EFGHIJKLMNOPQRSTUVWX#YZabcdefghijklmnopqrstuvwxyz1234567890", t = ((this.encode = function (i) { var a, n, o, r, s, c, l = "", d = 0; for (i = t(i); d < i.length; ) (o = (a = i.charCodeAt(d++)) >> 2), (r = ((3 & a) << 4) | ((a = i.charCodeAt(d++)) >> 4)), (s = ((15 & a) << 2) | ((n = i.charCodeAt(d++)) >> 6)), (c = 63 & n), isNaN(a) ? (s = c = 64) : isNaN(n) && (c = 64), (l = l + e.charAt(o) + e.charAt(r) + e.charAt(s) + e.charAt(c)); return l; }), (this.decode = function (t) { var a, n, o, r, s, c, l = "", d = 0; for (t = t.replace(/[^A-Za-z0-9\*\#]/g, ""); d < t.length; ) (o = e.indexOf(t.charAt(d++))), (a = ((15 & (r = e.indexOf(t.charAt(d++)))) << 4) | ((s = e.indexOf(t.charAt(d++))) >> 2)), (n = ((3 & s) << 6) | (c = e.indexOf(t.charAt(d++)))), (l += String.fromCharCode((o << 2) | (r >> 4))), 64 != s && (l += String.fromCharCode(a)), 64 != c && (l += String.fromCharCode(n)); return i(l); }), function (e) { e = e.replace(/\r\n/g, "\n"); for (var t = "", i = 0; i < e.length; i++) { var a = e.charCodeAt(i); a < 128 ? (t += String.fromCharCode(a)) : (t = 127 < a && a < 2048 ? (t += String.fromCharCode((a >> 6) | 192)) + String.fromCharCode((63 & a) | 128) : (t = (t += String.fromCharCode((a >> 12) | 224)) + String.fromCharCode(((a >> 6) & 63) | 128)) + String.fromCharCode((63 & a) | 128)); } return t; }), i = function (e) { for (var t, i, a = "", n = 0, o = 0; n < e.length; ) (t = e.charCodeAt(n)) < 128 ? ((a += String.fromCharCode(t)), n++) : 191 < t && t < 224 ? ((o = e.charCodeAt(n + 1)), (a += String.fromCharCode(((31 & t) << 6) | (63 & o))), (n += 2)) : ((o = e.charCodeAt(n + 1)), (i = e.charCodeAt(n + 2)), (a += String.fromCharCode( ((15 & t) << 12) | ((63 & o) << 6) | (63 & i) )), (n += 3)); return a; }; } let kitty_topicData = null function kitty_coverAddContent(innerhtml) { kitty_utils.getElement(".kitty_coverInnerBox").then((ele) => { let element = ele[0]; let p = document.createElement("p"); p.innerHTML = innerhtml; element.append(p); }); } // 请求拦截 function kitty_xhrIntercept() { let xhrOpen = XMLHttpRequest.prototype.open; XMLHttpRequest.prototype.open = function (method, url, async) { if (location.href.includes("post/details?pid")) { if (url.includes("hjstore/images")) { kitty_cacheImgs(method, url, this); } const locationParams = new URLSearchParams(location.search); const pid = locationParams.get("pid"); if (url.includes("api/topic/" + pid)) { let kitty_topicDataTarget = { hasVideo: false, hasAudio: false, hasPic: false, saleType: 0, // 0:不出售 1:金币 2:钻石 vipLimit: 0, // 0:不需要vip 1:需要vip1级 2:需要vip2级 3:... picsList: [], audsList: [], videoData: null, isFree: false, topicId: 0, imageInserted: [], catchedImgs: null, wholeM3u8Url: null, wholeM3u8UrlType: "", picDomList: [], topicDataSetOver: false, createTime: "", isH5: isMobileDevice, runHref: "", codeList: null, }; kitty_topicData = new Proxy(kitty_topicDataTarget, { get: (target, key, proxy) => { return target[key]; }, set: (target, key, value, proxy) => { if (target[key] !== value) { target[key] = value; if (key == "topicDataSetOver") { kitty_topicDataSetOver(); } if (key == "wholeM3u8Url") { kitty_insertVideoDom(); } } return true; }, }); } let onreadystatechange_ = this.onreadystatechange; this.onreadystatechange = function () { if (this.readyState == 4 && this.status == 200) { kitty_xhrResponseProcess(method, url, this); } if (onreadystatechange_) { onreadystatechange_(); } }; if (isMobileDevice) { // 手机端 let onload_ = this.onload; this.onload = function () { kitty_xhrResponseProcess(method, url, this); if (onload_) { onload_(); } }; } } return xhrOpen.call(this, method, url, async); }; } // 请求前处理 function kitty_cacheImgs(method, url, xhr) { if (url.includes("hjstore/images")) { if (kitty_topicData.hasPic) { if (!kitty_topicData.catchedImgs) { kitty_topicData.catchedImgs = []; } let find = kitty_topicData.catchedImgs.find((item) => { return item.url == url; }); if (!find) { kitty_topicData.catchedImgs.push({ url: url, data: null, }); } } } } // 请求后返回值处理 function kitty_xhrResponseProcess(method, url, xhr) { const locationParams = new URLSearchParams(location.search); const pid = locationParams.get("pid"); if (url.includes("api/topic/" + pid)) { let responseText = JSON.parse(xhr.responseText); let decodeData = kitty_utils.hjApiDecode(responseText.data); let newData = kitty_utils.hjApiEecode(kitty_setTopicData(decodeData)); responseText.data = newData; let jsonRes = JSON.stringify(responseText); Object.defineProperty(xhr, "responseText", { get: () => { return jsonRes; }, }); Object.defineProperty(xhr, "response", { get: () => { return jsonRes; }, }); } if (url.includes("hjstore/images")) { let findCatchedImg = kitty_topicData.catchedImgs.find((item) => { return item.url == url; }); if (findCatchedImg) { if (!findCatchedImg.data) { findCatchedImg.data = new kitty_hjPicEdcoder().decode( xhr.responseText ); let findImgDom = kitty_topicData.picDomList.find((item) => { return item.dataset.imgUrl == url; }); if (findImgDom) { findImgDom.src = findCatchedImg.data; } } } } } // /api/topic/id 接口返回值处理 function kitty_setTopicData(data) { const locationParams = new URLSearchParams(location.search); const pid = locationParams.get("pid"); kitty_topicData.topicId = pid; if (data.sale) { // 付费类型 kitty_topicData.saleType = data.sale.money_type; } let hasAudio = false; let hasVideo = false; let hasPic = false; // 附件处理 data.attachments.forEach((item) => { if (item.category == "images") { hasPic = true; kitty_topicData.picsList.push(item.remoteUrl); } else if (item.category == "video") { hasVideo = true; kitty_topicData.videoData = item; } else if (item.category == "audio") { hasAudio = true; kitty_topicData.audsList.push(item.remoteUrl); } }); if (hasPic) { kitty_topicData.hasPic = true; } if (hasVideo) { kitty_topicData.hasVideo = true; } if (hasAudio) { kitty_topicData.hasAudio = true; } if (data.node) { kitty_topicData.vipLimit = data.node.vipLimit; // 去除viplimit弹框 data.node.vipLimit = 0; } // 是否是免费 if (!data.sale && kitty_topicData.vipLimit == 0) { kitty_topicData.isFree = true; } kitty_topicData.createTime = data.createTime; kitty_topicData.topicDataSetOver = true; //delete data.content return data; } // 如果是vip内容 function kitty_topicViplimit() { if (kitty_topicData.vipLimit > 0) { if (kitty_topicData.hasPic) { let count = 0; let interval = setInterval(() => { if (count >= kitty_topicData.picsList.length) { return clearInterval(interval); } let item = kitty_topicData.picsList[count]; let x = new XMLHttpRequest(); x.open("get", item); x.send(); count++; }, 500); } } } // 插入图片 function kitty_insertPayImgsDom(url) { kitty_utils.getElement(".kitty_coverInnerBox").then((ele) => { let element = ele[0]; kitty_topicData.picsList.forEach((url, index) => { if (!kitty_topicData.imageInserted.includes(url)) { let p = document.createElement("p"); let img = document.createElement("img"); img.className = "kitty_topicImg"; img.src = "/images/common/project/loading.gif"; img.title = "点击查看大图"; img.dataset.imgUrl = url; img.addEventListener("click", function () { img.classList.toggle("imgwidth100"); }); p.appendChild(img); element.appendChild(p); kitty_topicData.imageInserted.push(url); kitty_topicData.picDomList.push(img); } }); }); } function kitty_getVideoUrl() { if (kitty_topicData.isFree) { return; } if (kitty_topicData.hasVideo) { kitty_coverAddContent("正在获取视频信息,请稍后..."); fetch("https://baixiaodu.uk/api/hj/findu8", { method: "post", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ pid: parseInt(kitty_topicData.topicId), }), }) .then((res) => res.json()) .then((res) => { if (res.success) { kitty_topicData.wholeM3u8UrlType = res.data.type; kitty_topicData.wholeM3u8Url = res.data.url; } else { kitty_logListPush(res.message, "warning"); kitty_coverAddContent(res.message); kitty_showPanel(); } }); } } // 插入视频 function kitty_insertVideoDom() { if (kitty_topicData.wholeM3u8UrlType == "page") { kitty_coverAddContent( `视频需至haijiao.ai观看: <a target='_blank' href="${kitty_topicData.wholeM3u8Url}">点此观看</a>` ); return; } kitty_coverAddContent( `请点击观看视频: <a target='_blank' href="https://file.kittymao.xyz/file/other/m3u8Player.html?url=${kitty_topicData.wholeM3u8Url}">点此播放</a>` ); } // 插入音频 function kitty_insertAudioDom() { kitty_topicData.audsList.forEach((item) => { let audio = document.createElement("audio"); audio.controls = true; let source = document.createElement("source"); source.type = "audio/mpeg"; source.src = item; audio.append(source); kitty_utils.getElement(".kitty_coverInnerBox").then((res) => { res[0].append(audio); }); }); } function KittyCover() { this.createCover = function () { let topicType = `${kitty_topicData.isFree ? "免费" : ""}${ kitty_topicData.vipLimit > 0 ? "vip" : "" }${kitty_topicData.saleType == 1 ? "金币" : ""}${ kitty_topicData.saleType == 2 ? "钻石" : "" }`; let coverDiv = document.querySelector(".kitty_coverBox") let cover = coverDiv?coverDiv:document.createElement("div"); cover.className = "kitty_coverBox kitty_coverBoxHidden"; cover.innerHTML = `<div class="kitty_coverInnerBox"> <div class="kitty_operateCover"> <img class="kitty_closeCover" src="${kitty_icons.close}"></img> <img class="kitty_toTop" src="${kitty_icons.toTop}"></img> <img class="kitty_toBottom" src="${kitty_icons.toTop}"></img> </div> <h2>海角社区脚本</h2> <p>这个帖是${topicType}帖,脚本已经获取${topicType}内容,包含${ kitty_topicData.hasAudio ? "音频 " : "" }${kitty_topicData.hasPic ? "图片 " : ""}${ kitty_topicData.hasVideo ? "视频 " : "" }</p> <p>点击图片可放大, 再次点击可缩小</p> </div>`; if (!coverDiv) { document.body.append(cover); } kitty_utils.getElement(".kitty_closeCover").then((res) => { res[0].addEventListener("click", this.hiddenCover); }); kitty_utils.getElement(".kitty_toTop").then((res) => { res[0].addEventListener("click", function () { kitty_utils.getElement(".kitty_coverInnerBox").then((box) => { box[0].scrollTop = 0; }); }); }); kitty_utils.getElement(".kitty_toBottom").then((res) => { res[0].addEventListener("click", function () { kitty_utils.getElement(".kitty_coverInnerBox").then((box) => { box[0].scrollTop = box[0].scrollHeight; }); }); }); kitty_utils.getElement("head").then((res) => { let style = document.createElement("style"); style.innerHTML = ` .kitty_coverInnerBox img.imgwidth100 { width: 100%; } .kitty_coverBoxHidden { display:none; }.kitty_coverBoxShow { display:block; } .kitty_coverBox { width: 100vw; height: 100vh; position: fixed; left: 0; top: 0; background: rgba(0,0,0, 0.5); z-index: 99999; } .kitty_coverInnerBox { position: relative; margin: 0 auto; width: ${isMobileDevice ? "100%" : "50%"}; min-width: 300px; height: 100vh; overflow-y: scroll; text-align:center; background-color: white; padding-bottom: 100px; } .kitty_coverInnerBox p { padding: 10px; margin: 10px; font-size: 16px; } .kitty_closeCover { margin-bottom: 100px; } .kitty_operateCover { position: sticky; left: 100%; width: 50px; top: 20px; height: 30px; } .kitty_coverInnerBox img { cursor: pointer; width: 250px; } .kitty_coverInnerBox .kitty_operateCover img { width: 30px; display: block; } .kitty_toBottom { transform: rotate(180deg); margin-top: 20px; } `; res[0].append(style); }); }; this.hiddenCover = function () { kitty_utils.getElement(".kitty_coverBox").then((kitty_coverBox) => { kitty_coverBox[0].classList.add("kitty_coverBoxHidden"); let audios = kitty_coverBox[0].querySelectorAll("audio"); audios.forEach((audio) => { audio.pause(); }); let videos = kitty_coverBox[0].querySelectorAll("video"); videos.forEach((video) => { video.pause(); }); }); }; this.showCover = function () { kitty_utils.getElement(".kitty_coverBox").then((kitty_coverBox) => { kitty_coverBox[0].classList.remove("kitty_coverBoxHidden"); }); }; } function kitty_topicDataSetOver() { let cover = new KittyCover(); cover.createCover(); kitty_logListPush( `${ kitty_topicData.isFree ? "<span class='kitty_contentGetOver'>这个帖子是免费的</span>" : "<span class='kitty_contentGetOver' style='cursor:pointer;'>帖子内容获取完毕, 请点此查看</span>" }`, "success", true ); if (kitty_topicData.isFree) { document.querySelector(".kitty_jiexiBtn").innerHTML = "免费"; } else { document.querySelector(".kitty_jiexiBtn").innerHTML = "解析"; } document .querySelector(".kitty_jiexiBtn") .addEventListener("click", function () { if (!location.href.includes("post/details?pid")) { document.querySelector(".kitty_jiexiBtn").innerHTML = "暂无"; return; } if (kitty_topicData.isFree) { document.querySelector(".kitty_jiexiBtn").innerHTML = "免费"; } else { document.querySelector(".kitty_jiexiBtn").innerHTML = "解析"; cover.showCover(); } }); kitty_utils.getElement(".kitty_contentGetOver").then((ele) => { ele[0].addEventListener("click", function () { if (!location.href.includes("post/details?pid")) { kitty_logListPush("没有帖子...", "warning"); return; } cover.showCover(); kitty_hiddenPanel(); }); }); if (kitty_topicData.vipLimit) { kitty_topicViplimit(); } if (kitty_topicData.hasPic) { kitty_insertPayImgsDom(); } if (kitty_topicData.hasAudio) { kitty_insertAudioDom(); } if (kitty_topicData.hasVideo) { // 发送请求到kittymao kitty_getVideoUrl(); } else { kitty_coverAddContent(`<span style='color:red;'>这个帖子没有视频</span>`); } //cover.showCover(); } function kitty_main() { kitty_xhrIntercept(); } function kitty_checkLogin() { if (!kitty_isLogin()) { let interval = setInterval(() => { kitty_logListPush("没有登录海角账号,可能无法解析", "warning"); if (kitty_isLogin()) { clearInterval(interval); location.reload(); } }, 1000); return false; } else { kitty_logListPush("脚本运行成功,请尝试观看帖子", "success"); return true; } } function kitty_isLogin() { if (kitty_utils.getCookie("uid") && kitty_utils.getCookie("token")) { return true; } else { return false; } } function kitty_copyTextToClipboard(text) { const textArea = document.createElement("textarea"); textArea.value = text; document.body.appendChild(textArea); textArea.select(); document.execCommand("copy"); document.body.removeChild(textArea); console.log("文本已复制到剪贴板"); } function kitty_isRun() { let run = false; if ( document.querySelector("#kitty_vipPanel") || document.querySelector("#vipPanel") ) { run = true; } if (!run) { console.log("panelInit"); kitty_vipPanelInit(); if (kitty_checkLogin()) { console.log("login"); kitty_main(); } else { kitty_showPanel(); } } } kitty_isRun(); })();