Sleazy Fork is available in English.

Jablehk Onlyfans等平台资源下载

Jablehk,Onlyfans等平台资源下载。s7、s6、s5。

  1. // ==UserScript==
  2. // @name Jablehk Onlyfans等平台资源下载
  3. // @name:zh-TW Jablehk Onlyfans等平台资源下载
  4. // @namespace http://tampermonkey.net/
  5. // @version 1.2.1
  6. // @description Jablehk,Onlyfans等平台资源下载。s7、s6、s5。
  7. // @description:zh-TW Jablehk,Onlyfans等平台资源下载。s7、s6、s5。
  8. // @author FFFFFFeng
  9. // @match https://jablehk.com/*
  10. // @icon https://www.google.com/s2/favicons?domain=swag555.xyz
  11. // @grant none
  12. // @antifeature payment
  13. // ==/UserScript==
  14. (function () {
  15. let VipPageData = {
  16. tabIndex: 0
  17. }
  18. function vipPanelInit() {
  19. let vipPanel_ = document.getElementById("vipPanel")
  20. if (vipPanel_) {
  21. vipPanel_.remove()
  22. }
  23. let style = document.createElement("style")
  24. style.innerHTML = `
  25.  
  26. #vipPanel {
  27. width: 310px;
  28. height: 500px;
  29. box-shadow: 0 0 0 1px rgb(0 0 0 / 5%), 0 2px 4px 1px rgb(0 0 0 / 9%);
  30. border-left: 1px solid transparent;
  31. border-right: none;
  32. border-top: 1px solid transparent;
  33. border-bottom: 1px solid transparent;
  34. background-color: #FFFFFF;
  35. position: fixed;
  36. left: 6px;
  37. bottom: 6px;
  38. z-index: 99999;
  39. }
  40. .panelHead {
  41. display: flex;
  42. border-bottom: 1px solid #ececec;
  43. }
  44. .panelHead>div {
  45. color: #444;
  46. font-size: 14px;
  47. padding: 0 10px;
  48. height: 40px;
  49. line-height: 40px;
  50. box-sizing: border-box;
  51. user-select: none;
  52. text-align: center;
  53. width: 76px;
  54. }
  55. .panelHead>div:not(.headDivActive):hover {
  56. border-bottom: 3px solid #ccc;
  57. cursor: pointer;
  58. }
  59. .headDivActive {
  60. border-bottom: 3px solid #00809d;
  61. color: #444;
  62. font-weight: bold;
  63. }
  64. .searchInput {
  65. width: 80%;
  66. border-radius: 24px;
  67. box-shadow: 0 0 0 1px rgb(0 0 0 / 5%), 0 2px 4px 1px rgb(0 0 0 / 9%);
  68. height: 40px;
  69. border-left: 1px solid transparent;
  70. border-right: none;
  71. border-top: 1px solid transparent;
  72. border-bottom: 1px solid transparent;
  73. margin: 0 auto;
  74. overflow: hidden;
  75. margin-top: 40px;
  76. display: flex;
  77. padding-right: 10px;
  78. align-items: center;
  79. }
  80. .searchInput:hover {
  81. border-top-left-radius: 24px;
  82. box-shadow: 0 0 0 1px rgb(0 0 0 / 10%), 0 2px 4px 1px rgb(0 0 0 / 18%);
  83. border-left: 1px solid transparent;
  84. border-right: none;
  85. border-top: 1px solid transparent;
  86. border-bottom: 1px solid transparent;
  87. }
  88. .searchInput input {
  89. flex: 1;
  90. height: 100%;
  91. border: 0;
  92. outline: 0;
  93. font-size: 16px;
  94. padding-left: 10px;
  95. }
  96. .searchInput .userSearchI {
  97.  
  98. width: 30px;
  99. height: 30px;
  100. text-align: center;
  101. box-sizing: border-box;
  102. line-height: 26px;
  103.  
  104. }
  105. .tipContentBox {
  106. display:flex;
  107. color: #71777d;
  108. font-size: 14px;
  109. margin: 0 auto;
  110. margin-top: 20px;
  111. width: 280px;
  112. }
  113. #tipContent {
  114. width: 0;
  115. flex: 1;
  116. }
  117. .getVipA {
  118. color: #FFFFFF;
  119. font-weight: bold;
  120. background-color: black;
  121. height: 100px;
  122. width: 100px;
  123. border-radius: 50px;
  124. text-align: center;
  125. line-height: 100px;
  126. margin: 20px auto;
  127. box-shadow: 0 0 0 1px rgb(0 0 0 / 5%), 0 2px 4px 1px rgb(0 0 0 / 9%);
  128. user-select: none;
  129. }
  130. .getVipA:hover {
  131. cursor: pointer;
  132. box-shadow: 0 0 0 0 rgb(0 0 0 / 5%), 0 2px 4px 1px rgb(0 0 0 / 18%);
  133. -webkit-box-shadow: 0 0 0 0 rgb(0 0 0 / 5%), 0 2px 4px 1px rgb(0 0 0 / 18%);
  134. -moz-box-shadow: 0 0 0 0 rgba(0,0,0,.05),0 2px 4px 1px rgba(0,0,0,.18);
  135. }
  136.  
  137. @keyframes float {
  138. 0% {
  139. transform: translateY(0px);
  140. }
  141. 5% {
  142. transform: translateY(-10px);
  143. }
  144. 10%,100% {
  145. transform: translateY(0px);
  146. }
  147. }
  148.  
  149. .navy_ {
  150. position: relative;
  151. }
  152.  
  153. .navy_ span {
  154. position: relative;
  155. display: inline-block;
  156. color: white;
  157. font-size: 2em;
  158. animation: float 10s ease-in-out infinite;
  159. animation-delay: 5s;
  160. }
  161. .resolvePro {
  162. color: #71777d;
  163. font-size: 14px;
  164. position: absolute;
  165. bottom: 10px;
  166. left: 10px;
  167. }
  168. .hiddenPanel {
  169. left: -310px !important;
  170. }
  171. .hiddenBtn,.showBtn {
  172. position: absolute;
  173. left: 320px;
  174. bottom: 20px;
  175. width: 60px;
  176. height: 40px;
  177. line-height: 40px;
  178. color: black;
  179. user-select: none;
  180. background-color: #FFFFFF;
  181. position: absolute;
  182. left: 243px;
  183. bottom: 20px;
  184. }
  185. .showBtn {
  186. left: 320px;
  187. display: none;
  188. }
  189. .hiddenBtn:hover,.showBtn:hover {
  190. cursor: pointer;
  191. }
  192. .panelBody_1 {
  193. display: none;
  194. }
  195. .panelBody_1 p {
  196. padding: 0 10px;
  197. font-size: 14px;
  198. text-indent: 1em;
  199. }
  200. .lplogin {
  201. color: white;
  202. width: 100px;
  203. height: 30px;
  204. display:flex;
  205. align-items:center;
  206. justify-content: center;
  207. cursor: pointer;
  208. background-color: #00809d;
  209. margin: 20px auto;
  210. border-radius: 30px;
  211. }
  212. .newVersionLink {
  213. text-decoration: underline;
  214. }
  215. .sourceList {
  216. font-size: 14px;
  217. }
  218. `
  219. document.getElementsByTagName("head")[0].appendChild(style)
  220. let panel = document.createElement("div")
  221. panel.setAttribute("id", "vipPanel")
  222. panel.innerHTML = `
  223. <div class="hiddenBtn">&lt;&lt;隐藏</div>
  224. <div class="showBtn">&gt;&gt;显示</div>
  225. <div class="panelMain">
  226. <div class="panelHead">
  227. <div class="headDivActive">获取权限</div>
  228. <div>支付</div>
  229. <div>使用指南</div>
  230. </div>
  231. <div class="panelBody panelBody_0">
  232. <div class="searchInput">
  233. <input id="txm" type="text" placeholder="">
  234. <div class="userSearchI getVipBtn"><i class="fa fa-search"></i></div>
  235. </div>
  236. <div class="tipContentBox">
  237. <div style="width:50px;">提示: </div>
  238. <div id="tipContent">请输入您的卡密以获取资源下载链接</div>
  239. </div>
  240. <div class="getVipBtn getVipA navy_">
  241. <span>G</span>
  242. <span>O</span>
  243. <span>!</span>
  244. </div>
  245. <div class="sourceList">
  246. <div style="margin-left: 30px;">当前可获取资源:</div>
  247. <ul>
  248. <li>VIP Package (S7)</li>
  249. <li>VIP Package (S6)</li>
  250. <li>VIP Package (S5)</li>
  251. </ul>
  252. </div>
  253. <div class="resolvePro">
  254. <a class="newVersionLink" target="_blank" href="https://sleazyfork.org/zh-CN/scripts/475013-jablehk-onlyfans%E7%AD%89%E5%B9%B3%E5%8F%B0%E8%B5%84%E6%BA%90%E4%B8%8B%E8%BD%BD%E6%88%96%E5%9C%A8%E7%BA%BF%E8%A7%82%E7%9C%8B">点我去最新版本</a><br/>
  255. 有问题请骚扰邮箱: <br/>
  256. JamJamToday@protonmail.com
  257. </div>
  258. </div>
  259. <div class="panelBody panelBody_1">
  260. <div class="searchInput">
  261. <input id="lp" type="text" placeholder="请输入令牌">
  262. <div class="userSearchI"><i class="el-icon-search"></i></div>
  263. </div>
  264. <div style="margin-top:20px;text-align:center;" id="swag19"><a class="newVersionLink" target="_blank" style="color:#71777E;">点此获取令牌</a></div>
  265. <div class="lplogin">登录</div>
  266. </div>
  267. </div>
  268. `
  269. document.body.appendChild(panel)
  270.  
  271. let tabs = document.querySelectorAll(".panelHead>div")
  272. for (let i = 0; i < tabs.length; i++) {
  273. tabs[i].addEventListener("click", function() {
  274. if (tabs[i].innerHTML == "最新版本") {
  275. toNewVersionF()
  276. return
  277. }
  278. if (tabs[i].innerHTML == "使用指南") {
  279. useMethodF()
  280. return
  281. }
  282. if (tabs[i].innerHTML == "支付") {
  283. toPayPage()
  284. return
  285. }
  286. for (let ii = 0; ii < tabs.length; ii++) {
  287. tabs[ii].className = ""
  288. }
  289. tabs[i].className = "headDivActive"
  290. VipPageData.tabIndex = i
  291. changeTabF()
  292. })
  293. }
  294. document.querySelector(".hiddenBtn").addEventListener("click", function() {
  295. hiddenBtnF();
  296. window.localStorage.setItem("is_hidden", "true")
  297. })
  298. document.querySelector(".showBtn").addEventListener("click", function() {
  299. showBtnF()
  300. window.localStorage.setItem("is_hidden", "false")
  301. })
  302. if (localStorage.getItem("is_hidden")==="true") {
  303. hiddenBtnF();
  304. }
  305. let gets = document.querySelectorAll(".getVipBtn")
  306. for (let i = 0; i < gets.length; i++) {
  307. gets[i].addEventListener("click", function() {
  308. console.log("11")
  309. if (getTip() == "获取权限中..." || getTip() == "请先登录....") {
  310. return
  311. }
  312. if (getTxm()) {
  313. getPermissionF(getTxm())
  314. }
  315. })
  316. }
  317.  
  318. // 读取本地是否有通行码
  319. if (window.localStorage.getItem("txm") != null && window.localStorage.getItem("txm") != "") {
  320. document.getElementById("txm").value = window.localStorage.getItem("txm")
  321. }
  322.  
  323. if (isSuccess()) {
  324. setTip("已可观看VIP视频,请尝试观看")
  325. document.querySelector(".hiddenBtn").click()
  326. }
  327. document.querySelector(".logoload")
  328. let interval = setInterval(() => {
  329. if (document.querySelector(".logoload")) {
  330. document.querySelector(".logoload").style.display="none"
  331. clearInterval(interval)
  332. }
  333. }, 1000)
  334. }
  335. function hiddenBtnF() {
  336. document.querySelector(".hiddenBtn").style.display = "none"
  337. document.querySelector("#vipPanel").className = "hiddenPanel"
  338. document.querySelector(".showBtn").style.display = "block"
  339. }
  340. function showBtnF() {
  341. document.querySelector(".hiddenBtn").style.display = "block"
  342. document.querySelector("#vipPanel").className = ""
  343. document.querySelector(".showBtn").style.display = "none"
  344. }
  345. function isSuccess(){
  346. return false
  347. }
  348. function getTip() {
  349. return document.querySelector("#tipContent").innerHTML
  350. }
  351. function getTxm() {
  352. console.log("222")
  353. if (!document.getElementById("txm").value) {
  354. if (getTip().includes("输入您的卡密 ")) {
  355. setTip(getTip()+"!!! ")
  356. } else {
  357. setTip("输入您的卡密 ")
  358. }
  359. if(getTip().includes("!!! !!! !!! !!!")) {
  360. setTip("输入您的卡密 ")
  361. }
  362. return false
  363. } else {
  364. return document.getElementById("txm").value
  365. }
  366. }
  367. function setTip(str) {
  368. document.querySelector("#tipContent").innerHTML = str
  369. }
  370. function changeTabF() {
  371. let mains = document.querySelectorAll(".panelBody")
  372. for (let i = 0; i < mains.length; i ++) {
  373. mains[i].style.display = "none"
  374. }
  375. mains[VipPageData.tabIndex].style.display = "block"
  376. }
  377. function getPermissionF(txm) {
  378. localStorage.setItem("txm", txm)
  379. setTip("已跳转至资源列表")
  380. window.open(`https://www.kittymao.xyz/jabList/list.html?km=${txm}`)
  381. }
  382. function toPayPage() {
  383.  
  384. window.open(`https://shop.kittymao.xyz`);
  385. }
  386. function useMethodF() {
  387. window.open("https://docs.kittymao.xyz/posts/jablehk.html")
  388. }
  389. function toNewVersionF() {
  390. window.open("https://sleazyfork.org/zh-CN/scripts/475013-jablehk-onlyfans%E7%AD%89%E5%B9%B3%E5%8F%B0%E8%B5%84%E6%BA%90%E4%B8%8B%E8%BD%BD%E6%88%96%E5%9C%A8%E7%BA%BF%E8%A7%82%E7%9C%8B")
  391. }
  392. vipPanelInit()
  393. })();