swag(R站)vip视频随意观看&19J.TV韩国女主播vip视频任意看 永久vip

用于观看swag(R站)vip视频&19J.TV韩国女主播vip视频

Tính đến 11-02-2023. Xem phiên bản mới nhất.

  1. // ==UserScript==
  2. // @name swag(R站)vip视频随意观看&19J.TV韩国女主播vip视频任意看 永久vip
  3. // @name:zh-TW swag(R站)vip視頻隨意觀看&19J.TV韓國女主播vip視頻任意看 永久vip
  4. // @namespace http://tampermonkey.net/
  5. // @version 2.0.7
  6. // @description 用于观看swag(R站)vip视频&19J.TV韩国女主播vip视频
  7. // @description:zh-TW 用于观看swag(R站)vip視頻&19J.TV韓國女主播vip視頻
  8. // @author FFFFFFeng
  9. // @include /^http.*://ri.+\.xyz.*$/
  10. // @include /^http.*://ri333\.xyz.*$/
  11. // @include /^http.*://ri111\.xyz.*$/
  12. // @include /^http.*://swag555\.xyz.*$/
  13. // @include /^https://19j.+\.xyz.*$/
  14. // @icon https://www.google.com/s2/favicons?domain=swag555.xyz
  15. // @grant none
  16. // @antifeature payment
  17. // ==/UserScript==
  18. (function () {
  19. let VipPageData = {
  20. tabIndex: 0
  21. }
  22. if (document.title.includes('韩国主播国产主播原创网') || document.title.includes('SWAG资源合集下载')) {
  23. vipPanelInit()
  24. }
  25. function vipPanelInit() {
  26. let style = document.createElement("style")
  27. style.innerHTML = `
  28. #vipPanel {
  29. width: 310px;
  30. height: 500px;
  31. box-shadow: 0 0 0 1px rgb(0 0 0 / 5%), 0 2px 4px 1px rgb(0 0 0 / 9%);
  32. border-left: 1px solid transparent;
  33. border-right: none;
  34. border-top: 1px solid transparent;
  35. border-bottom: 1px solid transparent;
  36. background-color: #FFFFFF;
  37. position: fixed;
  38. left: 6px;
  39. bottom: 6px;
  40. z-index: 99999;
  41. }
  42. .panelHead {
  43. display: flex;
  44. border-bottom: 1px solid #ececec;
  45. }
  46. .panelHead>div {
  47. color: #444;
  48. font-size: 14px;
  49. padding: 0 10px;
  50. height: 40px;
  51. line-height: 40px;
  52. box-sizing: border-box;
  53. user-select: none;
  54. text-align: center;
  55. width: 76px;
  56. }
  57. .panelHead>div:not(.headDivActive):hover {
  58. border-bottom: 3px solid #ccc;
  59. cursor: pointer;
  60. }
  61. .headDivActive {
  62. border-bottom: 3px solid #00809d;
  63. color: #444;
  64. font-weight: bold;
  65. }
  66. .searchInput {
  67. width: 80%;
  68. border-radius: 24px;
  69. box-shadow: 0 0 0 1px rgb(0 0 0 / 5%), 0 2px 4px 1px rgb(0 0 0 / 9%);
  70. height: 40px;
  71. border-left: 1px solid transparent;
  72. border-right: none;
  73. border-top: 1px solid transparent;
  74. border-bottom: 1px solid transparent;
  75. margin: 0 auto;
  76. overflow: hidden;
  77. margin-top: 40px;
  78. display: flex;
  79. padding-right: 10px;
  80. align-items: center;
  81. }
  82. .searchInput:hover {
  83. border-top-left-radius: 24px;
  84. box-shadow: 0 0 0 1px rgb(0 0 0 / 10%), 0 2px 4px 1px rgb(0 0 0 / 18%);
  85. border-left: 1px solid transparent;
  86. border-right: none;
  87. border-top: 1px solid transparent;
  88. border-bottom: 1px solid transparent;
  89. }
  90. .searchInput input {
  91. flex: 1;
  92. height: 100%;
  93. border: 0;
  94. outline: 0;
  95. font-size: 16px;
  96. padding-left: 10px;
  97. }
  98. .searchInput .userSearchI {
  99.  
  100. width: 30px;
  101. height: 30px;
  102. text-align: center;
  103. box-sizing: border-box;
  104. line-height: 26px;
  105.  
  106. }
  107. .tipContentBox {
  108. display:flex;
  109. color: #71777d;
  110. font-size: 14px;
  111. margin: 0 auto;
  112. margin-top: 20px;
  113. width: 280px;
  114. }
  115. #tipContent {
  116. width: 0;
  117. flex: 1;
  118. }
  119. .getVipA {
  120. color: #FFFFFF;
  121. font-weight: bold;
  122. background-color: #00809d;
  123. height: 100px;
  124. width: 100px;
  125. border-radius: 50px;
  126. text-align: center;
  127. line-height: 100px;
  128. margin: 20px auto;
  129. box-shadow: 0 0 0 1px rgb(0 0 0 / 5%), 0 2px 4px 1px rgb(0 0 0 / 9%);
  130. user-select: none;
  131. }
  132. .getVipA:hover {
  133. cursor: pointer;
  134. box-shadow: 0 0 0 0 rgb(0 0 0 / 5%), 0 2px 4px 1px rgb(0 0 0 / 18%);
  135. -webkit-box-shadow: 0 0 0 0 rgb(0 0 0 / 5%), 0 2px 4px 1px rgb(0 0 0 / 18%);
  136. -moz-box-shadow: 0 0 0 0 rgba(0,0,0,.05),0 2px 4px 1px rgba(0,0,0,.18);
  137. }
  138.  
  139. @keyframes float {
  140. 0% {
  141. transform: translateY(0px);
  142. }
  143. 5% {
  144. transform: translateY(-10px);
  145. }
  146. 10%,100% {
  147. transform: translateY(0px);
  148. }
  149. }
  150.  
  151. .navy_ {
  152. position: relative;
  153. }
  154.  
  155. .navy_ span {
  156. position: relative;
  157. display: inline-block;
  158. color: white;
  159. font-size: 2em;
  160. animation: float 10s ease-in-out infinite;
  161. animation-delay: 5s;
  162. }
  163. .resolvePro {
  164. color: #71777d;
  165. font-size: 14px;
  166. position: absolute;
  167. bottom: 10px;
  168. left: 10px;
  169. }
  170. .hiddenPanel {
  171. left: -310px !important;
  172. }
  173. .hiddenBtn,.showBtn {
  174. position: absolute;
  175. left: 320px;
  176. bottom: 20px;
  177. width: 60px;
  178. height: 40px;
  179. line-height: 40px;
  180. color: #00809d;
  181. user-select: none;
  182. background-color: #FFFFFF;
  183. position: absolute;
  184. left: 243px;
  185. bottom: 20px;
  186. }
  187. .showBtn {
  188. left: 320px;
  189. display: none;
  190. }
  191. .hiddenBtn:hover,.showBtn:hover {
  192. cursor: pointer;
  193. }
  194. .panelBody_1 {
  195. display: none;
  196. }
  197. .panelBody_1 p {
  198. padding: 0 10px;
  199. font-size: 14px;
  200. text-indent: 1em;
  201. }
  202. `
  203. document.getElementsByTagName("head")[0].appendChild(style)
  204. let panel = document.createElement("div")
  205. panel.setAttribute("id", "vipPanel")
  206. panel.innerHTML = `
  207. <div class="hiddenBtn">&lt;&lt;隐藏</div>
  208. <div class="showBtn">&gt;&gt;显示</div>
  209. <div class="panelMain">
  210. <div class="panelHead">
  211. <div class="headDivActive">获取权限</div>
  212. <div>支付</div>
  213. <div>使用指南</div>
  214. <div>最新版本</div>
  215. </div>
  216. <div class="panelBody panelBody_0">
  217. <div class="searchInput">
  218. <input id="txm" type="text" placeholder="">
  219. <div class="userSearchI getVipBtn"><i class="fa fa-search"></i></div>
  220. </div>
  221. <div class="tipContentBox">
  222. <div style="width:50px;">提示: </div>
  223. <div id="tipContent">未获取权限,请输入您的支付宝昵称以获取vip权限</div>
  224. </div>
  225. <div class="getVipBtn getVipA navy_">
  226. <span>G</span>
  227. <span>O</span>
  228. <span>!</span>
  229. </div>
  230. <div class="resolvePro">
  231. 有问题请骚扰邮箱: <br/>
  232. JamJamToday@protonmail.com
  233. </div>
  234. </div>
  235. <div class="panelBody panelBody_1">
  236. <p>0.双网站vip,价格:39.99,脚本使用期为永久,一定要付款前设置好支付宝昵称。</p>
  237. <p>1.提前设置好支付宝昵称,如果你支付宝App头像旁边显示的是你的真实姓名,那就是你没设置昵称。</p>
  238. <p>2.昵称设置规则:三位字符或以上,不要使用如:123、啊啊啊之类简单的,后台已经做了过滤,大概率会失效。</p>
  239. <p>3.有任何问题联系我的邮箱。</p>
  240. <div style="text-align: center;margin-top: 20px;">
  241. <img style="width:150px;height:150px;border: 1px solid;" src="https://124.223.114.203:3004/swag_.png" alt="">
  242. </div>
  243. </div>
  244. </div>
  245. `
  246. document.body.appendChild(panel)
  247. let nodes = document.querySelectorAll(".f-red")
  248. for (let i = 0; i<nodes.length; i++) {
  249. //return
  250. if (nodes[i].innerHTML.includes("联合登录")) {
  251. if (nodes[i].nextElementSibling) {
  252. let href = nodes[i].nextElementSibling.href
  253. nodes[i].nextElementSibling.href = href.replace("jijiji", "19j10")
  254. }
  255. }
  256. }
  257. let tabs = document.querySelectorAll(".panelHead>div")
  258. for (let i = 0; i < tabs.length; i++) {
  259. tabs[i].addEventListener("click", function() {
  260. if (tabs[i].innerHTML == "最新版本") {
  261. toNewVersionF()
  262. return
  263. }
  264. if (tabs[i].innerHTML == "使用指南") {
  265. useMethodF()
  266. return
  267. }
  268. for (let ii = 0; ii < tabs.length; ii++) {
  269. tabs[ii].className = ""
  270. }
  271. tabs[i].className = "headDivActive"
  272. VipPageData.tabIndex = i
  273. changeTabF()
  274. })
  275. }
  276. document.querySelector(".hiddenBtn").addEventListener("click", function() {
  277. hiddenBtnF()
  278. })
  279. document.querySelector(".showBtn").addEventListener("click", function() {
  280. showBtnF()
  281. })
  282. let gets = document.querySelectorAll(".getVipBtn")
  283. for (let i = 0; i < gets.length; i++) {
  284. gets[i].addEventListener("click", function() {
  285. console.log("11")
  286. if (getTip() == "获取权限中..." || getTip() == "请先登录....") {
  287. return
  288. }
  289. if (getTxm()) {
  290. getPermissionF(getTxm())
  291. }
  292. })
  293. }
  294.  
  295. // 读取本地是否有通行码
  296. if (window.localStorage.getItem("txm") != null && window.localStorage.getItem("txm") != "") {
  297. document.getElementById("txm").value = window.localStorage.getItem("txm")
  298. }
  299.  
  300. if (isSuccess()) {
  301. setTip("已获取权限,不行就刷新页面")
  302. document.querySelector(".hiddenBtn").click()
  303. }
  304. }
  305. function getTxm() {
  306. console.log("222")
  307. if (!document.getElementById("txm").value) {
  308. if (getTip().includes("输入您的支付宝昵称 ")) {
  309. setTip(getTip()+"!!! ")
  310. } else {
  311. setTip("输入您的支付宝昵称 ")
  312. }
  313. if(getTip().includes("!!! !!! !!! !!!")) {
  314. setTip("输入您的支付宝昵称 ")
  315. }
  316. return false
  317. } else {
  318. return document.getElementById("txm").value
  319. }
  320. }
  321. function changeTabF() {
  322. let mains = document.querySelectorAll(".panelBody")
  323. for (let i = 0; i < mains.length; i ++) {
  324. mains[i].style.display = "none"
  325. }
  326. mains[VipPageData.tabIndex].style.display = "block"
  327. }
  328. function setTip(str) {
  329. document.querySelector("#tipContent").innerHTML = str
  330. }
  331. function toNewVersionF() {
  332. window.open("https://sleazyfork.org/zh-CN/scripts/440139-swag-r%E7%AB%99-vip%E8%A7%86%E9%A2%91%E9%9A%8F%E6%84%8F%E8%A7%82%E7%9C%8B-19j-tv%E9%9F%A9%E5%9B%BD%E5%A5%B3%E4%B8%BB%E6%92%ADvip%E8%A7%86%E9%A2%91%E4%BB%BB%E6%84%8F%E7%9C%8B-%E6%B0%B8%E4%B9%85vip")
  333. }
  334. function useMethodF() {
  335. window.open("http://66.42.117.77/jbs.html#_19j%E9%9F%A9%E5%9B%BD%E5%A5%B3%E4%B8%BB%E6%92%AD-swag%E7%AB%99%E8%84%9A%E6%9C%AC")
  336. }
  337. function getPermissionF(t) {
  338. setTip("获取权限中...")
  339. window.localStorage.setItem("txm", t)
  340. let url = ""
  341. let href = location.href
  342. if (href.includes("https")) {
  343. url = "https://124.223.114.203:3001/getPermission/"
  344. } else {
  345. url = "http://124.223.114.203:3000/getPermission/"
  346. }
  347. fetch(url+""+t+"/154").then(async function(result) {
  348. let res = await result.json()
  349. if (res.code == 300) {
  350. setTip(res.msg)
  351. return
  352. }
  353. let href = window.location.href
  354. if (href.includes("19j")) {
  355. setTip("请先至姐妹站:ri101.xyz (即swag站),获取权限后点击右上角会员中心,里面有个登录联合会员的链接,点一下即可。")
  356. } else {
  357. let cookieArr = res.data.cookieHeader
  358. cookieArr.forEach((item) => {
  359. let temp = item.split(";")[0]
  360. let tempArr = temp.split("=")
  361. if (tempArr[0] == 'user') {
  362. setCookie('user', tempArr[1], 1)
  363. } else {
  364. setCookie(tempArr[0], tempArr[1])
  365. }
  366. })
  367. location.reload()
  368. }
  369. }).catch(function(e) {
  370. console.log(e)
  371. setTip("请求异常,请联系开发者。")
  372. })
  373. }
  374. function hasGetPermissionF() {
  375.  
  376. }
  377. function hiddenBtnF() {
  378. document.querySelector(".hiddenBtn").style.display = "none"
  379. document.querySelector("#vipPanel").className = "hiddenPanel"
  380. document.querySelector(".showBtn").style.display = "block"
  381. }
  382. function showBtnF() {
  383. document.querySelector(".hiddenBtn").style.display = "block"
  384. document.querySelector("#vipPanel").className = ""
  385. document.querySelector(".showBtn").style.display = "none"
  386. }
  387. function isSuccess() {
  388. let dom = document.getElementById("vip1")
  389. let dom_ = document.querySelector("a.tx-flex-hc")
  390. let b = false
  391. if (dom_) {
  392. b = dom_.innerHTML.includes("会员中心")
  393. }
  394. if (dom||b) {
  395. return true
  396. } else {
  397. return false
  398. }
  399. }
  400. function getTip() {
  401. return document.querySelector("#tipContent").innerHTML
  402. }
  403. function setCookie(cname, cvalue, exdays) {
  404. var d = new Date();
  405. d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
  406. var expires = "expires=" + d.toGMTString();
  407. document.cookie = cname + "=" + cvalue + "; " + expires;
  408. }
  409. })();