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

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

Ajankohdalta 28.2.2023. Katso uusin versio.

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