在您安装前,Sleazy Fork 希望您知道本脚本包含“可能不受欢迎的功能”,可能帮助脚本作者获利,而不能给你带来任何收益。
脚本只有在使用者 支付后才能使用完整功能。 Sleazy Fork 未参与到支付的流程,因此不保证该支付的有效性,亦无法对退款行为进行帮助。
Sleazy Fork is available in English.
含羞草研究所,可观看含羞草vip視頻 除钻石和付费视频。
// ==UserScript== // @name 含羞草研究所|fi11.com 永久vip vip视频随意观看- // @name:zh-TW 含羞草研究所|fi11.com 永久vip vip視頻隨意觀看- // @namespace http://tampermonkey.net/ // @version 2.4.0 // @description 含羞草研究所,可观看含羞草vip視頻 除钻石和付费视频。 // @description:zh-tw 含羞草研究所,可观看含羞草vip視頻,除钻石和付费视频。 // @author FFFFFFeng // @include * // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== // @grant none // @antifeature payment // ==/UserScript== (function () { let startnumber = 0; let startInterval = setInterval(()=>{ startnumber ++ if (localStorage.getItem('preInfo')||localStorage.getItem('search_list')) { vipPanelInit() clearInterval(startInterval) } if (startnumber>=40) { clearInterval(startInterval) } },1000) let VipPageData = { tabIndex: 0, localStorageName: "token" } function vipPanelInit() { let vipPanel_ = document.getElementById("vipPanel") if (vipPanel_) { vipPanel_.remove() } let style = document.createElement("style") style.innerHTML = ` #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; } .panelHead { display: flex; border-bottom: 1px solid #ececec; } .panelHead>div { color: #444; font-size: 14px; padding: 0 10px; height: 40px; line-height: 40px; box-sizing: border-box; user-select: none; text-align: center; width: 76px; } .panelHead>div:not(.headDivActive):hover { border-bottom: 3px solid #ccc; cursor: pointer; } .headDivActive { border-bottom: 3px solid #fc6767; color: #444; font-weight: bold; } .searchInput { width: 80%; 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; margin: 0 auto; overflow: hidden; margin-top: 40px; display: flex; padding-right: 10px; align-items: center; } .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; } .searchInput input { flex: 1; height: 100%; border: 0; outline: 0; font-size: 16px; padding-left: 10px; color: black; background-color: #FFFFFF; } .searchInput .userSearchI { width: 30px; height: 30px; text-align: center; box-sizing: border-box; line-height: 26px; } .tipContentBox { display:flex; color: #71777d; font-size: 14px; margin: 0 auto; margin-top: 20px; width: 280px; } #tipContent { width: 0; flex: 1; } .getVipA { color: #FFFFFF; font-weight: bold; background-color: #fc6767; 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; } .getVipA: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 float { 0% { transform: translateY(0px); } 5% { transform: translateY(-10px); } 10%,100% { transform: translateY(0px); } } .navy_ { position: relative; } .navy_ span { position: relative; display: inline-block; color: white; font-size: 2em; animation: float 10s ease-in-out infinite; animation-delay: 5s; } .resolvePro { color: #71777d; font-size: 14px; position: absolute; bottom: 10px; left: 10px; } .hiddenPanel { left: -310px !important; } .hiddenBtn,.showBtn { position: absolute; left: 320px; bottom: 20px; width: 60px; height: 40px; line-height: 40px; color: #fc6767; user-select: none; background-color: #FFFFFF; position: absolute; left: 243px; bottom: 20px; } .showBtn { left: 320px; display: none; } .hiddenBtn:hover,.showBtn:hover { cursor: pointer; } .panelBody_1 { display: none; } .panelBody_1 p { padding: 0 10px; font-size: 14px; text-indent: 1em; } .lplogin { color: white; width: 100px; height: 30px; display:flex; align-items:center; justify-content: center; cursor: pointer; background-color: #fc6767; margin: 20px auto; border-radius: 30px; } .newVersionLink { text-decoration: underline; } ` document.getElementsByTagName("head")[0].appendChild(style) let panel = document.createElement("div") panel.setAttribute("id", "vipPanel") panel.innerHTML = ` <div class="hiddenBtn"><<隐藏</div> <div class="showBtn">>>显示</div> <div class="panelMain"> <div class="panelHead"> <div class="headDivActive">获取权限</div> <div>令牌登录</div> <div>使用指南</div> <div>支付</div> </div> <div class="panelBody panelBody_0"> <div class="searchInput"> <input id="txm" type="text" placeholder=""> <div class="userSearchI getVipBtn"><i class="el-icon-search"></i></div> </div> <div class="tipContentBox"> <span>提示: </span> <span id="tipContent">输入您的卡密以获取vip权限</span> </div> <div class="getVipBtn getVipA navy_"> <span>G</span> <span>O</span> <span>!</span> </div> <div class="resolvePro"> <a class="newVersionLink" target="_blank" href="https://sleazyfork.org/zh-CN/scripts/441824-%E5%90%AB%E7%BE%9E%E8%8D%89%E7%A0%94%E7%A9%B6%E6%89%80-fi11-com-%E6%B0%B8%E4%B9%85vip-vip%E8%A7%86%E9%A2%91%E9%9A%8F%E6%84%8F%E8%A7%82%E7%9C%8B">点我去最新版本</a><br/> 有问题请骚扰邮箱: <br/> JamJamToday@protonmail.com </div> </div> <div class="panelBody panelBody_1"> <div class="searchInput"> <input id="lp" type="text" placeholder="请输入令牌"> <div class="userSearchI"><i class="el-icon-search"></i></div> </div> <div style="margin-top:20px;text-align:center;"><a class="newVersionLink" href="https://124.223.114.203:3004/hxc.html" target="_blank" style="color:#71777E;">点此获取令牌</a></div> <div class="lplogin">登录</div> </div> </div> ` document.body.appendChild(panel) let hrefArr = window.location.href.split(".") let hrefHeadLength = hrefArr[0].length let isH5 = hrefArr[0].substring(hrefHeadLength-2) if (isH5 === 'h5') { VipPageData.localStorageName = "hxc_A_token" } let tabs = document.querySelectorAll(".panelHead>div") for (let i = 0; i < tabs.length; i++) { tabs[i].addEventListener("click", function() { if (tabs[i].innerHTML == "最新版本") { toNewVersionF() return } if (tabs[i].innerHTML == "使用指南") { useMethodF() return } if (tabs[i].innerHTML == "支付") { toPayPage() return } for (let ii = 0; ii < tabs.length; ii++) { tabs[ii].className = "" } tabs[i].className = "headDivActive" VipPageData.tabIndex = i changeTabF() }) } document.querySelector(".hiddenBtn").addEventListener("click", function() { hiddenBtnF() }) document.querySelector(".showBtn").addEventListener("click", function() { showBtnF() }) document.querySelector(".lplogin").addEventListener("click",function(){ let lpvalue = document.getElementById("lp").value if (lpvalue) { saveToken(lpvalue,Date.now()) } }) if (window.localStorage.getItem("txm") != null && window.localStorage.getItem("txm") != "") { document.getElementById("txm").value = window.localStorage.getItem("txm") } let gets = document.querySelectorAll(".getVipBtn") for (let i = 0; i < gets.length; i++) { gets[i].addEventListener("click", function() { console.log("11") if (getTip() == "获取权限中..." || getTip() == "请先登录自己的含羞草账号....") { return } if (getTxm()) { getPermissionF(getTxm()) } }) } if (isGetPremission()) { hiddenBtnF() setTip(13) } else { isLogin() } initXMLHttpRequest() } function toPayPage() { window.open("http://158.247.243.65:5123?code=YT0yJmI9Mg%3D%3D"); } function changeTabF() { let mains = document.querySelectorAll(".panelBody") for (let i = 0; i < mains.length; i ++) { mains[i].style.display = "none" } mains[VipPageData.tabIndex].style.display = "block" } function setTip(str) { if (typeof str === "string") { document.querySelector("#tipContent").innerHTML = str return } else { if (str == 11) { str = "输入您的卡密以获取vip权限" } else if (str == 12) { str = "请先登录自己的含羞草账号...." } else if (str == 13) { str = "获取权限成功,不行就重试一次" } document.querySelector("#tipContent").innerHTML = str } } function getTip() { return document.querySelector("#tipContent").innerHTML } function toNewVersionF() { window.open("https://sleazyfork.org/zh-CN/scripts/441824-%E5%90%AB%E7%BE%9E%E8%8D%89%E7%A0%94%E7%A9%B6%E6%89%80-fi11-com-%E6%B0%B8%E4%B9%85vip-vip%E8%A7%86%E9%A2%91%E9%9A%8F%E6%84%8F%E8%A7%82%E7%9C%8B") } function useMethodF() { window.open("http://158.247.243.65:3000/jbs.html#%E5%90%AB%E7%BE%9E%E8%8D%89%E8%84%9A%E6%9C%AC") } function getPermissionF(t) { window.localStorage.setItem("txm", t) setTip("获取权限中...") let xmlhttp = new XMLHttpRequest() xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { let res = JSON.parse(xmlhttp.response) if (res.code == 300) { setTip(res.msg) return } if (res.isGetToken) { saveToken(res.token,res.getTokenTime) } else { setTip("获取权限失败,请重试") } } else if (xmlhttp.readyState == 4 && xmlhttp.status != 200) { setTip("请求异常,请尝试令牌登录或联系开发者。") } } var url = "https://124.223.114.203:3004/getPermission/" + t + "/190" xmlhttp.open("GET", url, true) xmlhttp.send() } function hasGetPermissionF() { } function saveToken (token,getTokenTime) { let local = JSON.parse( window.localStorage.getItem(VipPageData.localStorageName) ) local = token setTimeout(function () { setTip(13) window.localStorage.setItem("isGetPermission", true) window.localStorage.setItem("getTokenTime", getTokenTime) window.localStorage.setItem( VipPageData.localStorageName, JSON.stringify(local) ) location.reload() }, 500) } function isLogin() { let isLoginInterval = setInterval(function(){ let local = JSON.parse(window.localStorage.getItem(VipPageData.localStorageName)) if (local) { if (isGetPremission()) { setTip(13) } else { setTip(11) } console.log("islogin") clearInterval(isLoginInterval) } else { setTip(12) window.localStorage.setItem("isGetPermission", false) } },500) } function isGetPremission() { let get = window.localStorage.getItem("isGetPermission") if (get === "true" || get === true) { get = true } else { get = false } console.log(get, "get") let local = window.localStorage.getItem(VipPageData.localStorageName) let localb = false if (local) { localb = true } else { localb = false } console.log(localb, "localb") if (!(localb && get)) { window.localStorage.setItem("isGetPermission", false) } return localb && get } function getTxm() { console.log("222") if (!document.getElementById("txm").value) { if (getTip().includes("输入您的卡密 ")) { setTip(getTip()+"!!! ") } else { setTip("输入您的卡密 ") } if(getTip().includes("!!! !!! !!! !!!")) { setTip("输入您的卡密 ") } return false } else { return document.getElementById("txm").value } } function hiddenBtnF() { document.querySelector(".hiddenBtn").style.display = "none" document.querySelector("#vipPanel").className = "hiddenPanel" document.querySelector(".showBtn").style.display = "block" } function showBtnF() { document.querySelector(".hiddenBtn").style.display = "block" document.querySelector("#vipPanel").className = "" document.querySelector(".showBtn").style.display = "none" } class XMLHttp { request = function (param) {}; response = function (param) {}; } let http = new XMLHttp(); function initXMLHttpRequest() { let open = XMLHttpRequest.prototype.open; XMLHttpRequest.prototype.open = function(...args){ let send = this.send; let _this = this let post_data = [] this.send = function (...data) { post_data = data; return send.apply(_this, data) } http.request(args) this.addEventListener('readystatechange', function () { if (this.readyState === 4) { let config = { url: args[1], status: this.status, method: args[0], data: post_data } // 请求后拦截 http.response({config, response: this.response}) } }, false) return open.apply(this, args); } } http.request = function (param) { if (/.*\.m3u8.*/g.test(param[1])) { if (/.*hls.*/g.test(param[1])) { console.log(param, "---request"); let name = document.querySelectorAll("div.space-y-3")[0] let appName = document.querySelectorAll("div.g-m-t-8[more]")[0] let dom if (name) { dom = name } else { dom = appName } console.log("dom",dom) if (dom) { let div = document.createElement("div") div.innerHTML = "<div id='getLink' style='height:30px;font-size:20px;line-height:30px;padding:5px 10px;border-radius:20px;background-color:#990033;color:white;text-align:center;cursor:pointer;'>检测到m3u8链接点击复制</div>" dom.parentNode.insertBefore(div,dom) div.addEventListener("click", function() { let input = document.createElement("input") input.setAttribute("type","text") input.setAttribute("value",param[1]) input.setAttribute("style","position:absolute;left:0;top:0;z-Index:-1;") document.querySelectorAll("#app")[0].appendChild(input) input.select(); document.execCommand("copy"); document.getElementById("getLink").innerHTML = "复制成功,即将跳转至下载页面。" setTimeout(function(){ window.open("http://blog.luckly-mjw.cn/tool-show/m3u8-downloader/index.html") document.getElementById("getLink").innerHTML = "检测到m3u8链接点击复制" },800) }) } else { console.log("没有找到元素") } } } }; http.response = function (res) { //console.log(res, "---response"); } })();