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

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

As of 19.04.2023. See ბოლო ვერსია.

  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.1.2
  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.  
  24. let style = document.createElement("style")
  25. style.innerHTML = `
  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: #00809d;
  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: #00809d;
  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. `
  201. document.getElementsByTagName("head")[0].appendChild(style)
  202. let panel = document.createElement("div")
  203. panel.setAttribute("id", "vipPanel")
  204. panel.innerHTML = `
  205. <div class="hiddenBtn">&lt;&lt;隐藏</div>
  206. <div class="showBtn">&gt;&gt;显示</div>
  207. <div class="panelMain">
  208. <div class="panelHead">
  209. <div class="headDivActive">获取权限</div>
  210. <div>支付</div>
  211. <div>使用指南</div>
  212. <div>最新版本</div>
  213. </div>
  214. <div class="panelBody panelBody_0">
  215. <div class="searchInput">
  216. <input id="txm" type="text" placeholder="">
  217. <div class="userSearchI getVipBtn"><i class="fa fa-search"></i></div>
  218. </div>
  219. <div class="tipContentBox">
  220. <div style="width:50px;">提示: </div>
  221. <div id="tipContent">未获取权限,请输入您的支付宝昵称以获取vip权限</div>
  222. </div>
  223. <div class="getVipBtn getVipA navy_">
  224. <span>G</span>
  225. <span>O</span>
  226. <span>!</span>
  227. </div>
  228. <div class="resolvePro">
  229. 有问题请骚扰邮箱: <br/>
  230. JamJamToday@protonmail.com
  231. </div>
  232. </div>
  233. <div class="panelBody panelBody_1">
  234. <p>0.双网站vip,价格:39.99,脚本使用期为永久,一定要付款前设置好支付宝昵称。</p>
  235. <p>1.提前设置好支付宝昵称,如果你支付宝App头像旁边显示的是你的真实姓名,那就是你没设置昵称。</p>
  236. <p>2.昵称设置规则:三位字符或以上,不要使用如:123、啊啊啊之类简单的,后台已经做了过滤,大概率会失效。</p>
  237. <p>3.有任何问题联系我的邮箱。</p>
  238. <div style="text-align: center;margin-top: 20px;">
  239. <img style="width:150px;height:150px;border: 1px solid;" src="https://124.223.114.203:3004/swag_.png" alt="">
  240. </div>
  241. </div>
  242. </div>
  243. `
  244. document.body.appendChild(panel)
  245. let nodes = document.querySelectorAll(".f-red")
  246. for (let i = 0; i<nodes.length; i++) {
  247. // return
  248. if (nodes[i].innerHTML.includes("联合登录")) {
  249. if (nodes[i].nextElementSibling) {
  250. let href = nodes[i].nextElementSibling.href
  251. nodes[i].nextElementSibling.href = href.replace("jijiji", "19j20")
  252. }
  253. }
  254. }
  255. let tabs = document.querySelectorAll(".panelHead>div")
  256. for (let i = 0; i < tabs.length; i++) {
  257. tabs[i].addEventListener("click", function() {
  258. if (tabs[i].innerHTML == "最新版本") {
  259. toNewVersionF()
  260. return
  261. }
  262. if (tabs[i].innerHTML == "使用指南") {
  263. useMethodF()
  264. return
  265. }
  266. for (let ii = 0; ii < tabs.length; ii++) {
  267. tabs[ii].className = ""
  268. }
  269. tabs[i].className = "headDivActive"
  270. VipPageData.tabIndex = i
  271. changeTabF()
  272. })
  273. }
  274. document.querySelector(".hiddenBtn").addEventListener("click", function() {
  275. hiddenBtnF()
  276. })
  277. document.querySelector(".showBtn").addEventListener("click", function() {
  278. showBtnF()
  279. })
  280. let gets = document.querySelectorAll(".getVipBtn")
  281. for (let i = 0; i < gets.length; i++) {
  282. gets[i].addEventListener("click", function() {
  283. console.log("11")
  284. if (getTip() == "获取权限中..." || getTip() == "请先登录....") {
  285. return
  286. }
  287. if (getTxm()) {
  288. getPermissionF(getTxm())
  289. }
  290. })
  291. }
  292.  
  293. // 读取本地是否有通行码
  294. if (window.localStorage.getItem("txm") != null && window.localStorage.getItem("txm") != "") {
  295. document.getElementById("txm").value = window.localStorage.getItem("txm")
  296. }
  297.  
  298. if (isSuccess()) {
  299. setTip("已可观看VIP视频,请尝试观看")
  300. document.querySelector(".hiddenBtn").click()
  301. }
  302. }
  303. function getTxm() {
  304. console.log("222")
  305. if (!document.getElementById("txm").value) {
  306. if (getTip().includes("输入您的支付宝昵称 ")) {
  307. setTip(getTip()+"!!! ")
  308. } else {
  309. setTip("输入您的支付宝昵称 ")
  310. }
  311. if(getTip().includes("!!! !!! !!! !!!")) {
  312. setTip("输入您的支付宝昵称 ")
  313. }
  314. return false
  315. } else {
  316. return document.getElementById("txm").value
  317. }
  318. }
  319. function changeTabF() {
  320. let mains = document.querySelectorAll(".panelBody")
  321. for (let i = 0; i < mains.length; i ++) {
  322. mains[i].style.display = "none"
  323. }
  324. mains[VipPageData.tabIndex].style.display = "block"
  325. }
  326. function setTip(str) {
  327. document.querySelector("#tipContent").innerHTML = str
  328. }
  329. function toNewVersionF() {
  330. 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")
  331. }
  332. function useMethodF() {
  333. 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")
  334. }
  335. function getCookie(cname) {
  336. var name = cname + "=";
  337. var ca = document.cookie.split(';');
  338. for (var i = 0; i < ca.length; i++) {
  339. var c = ca[i].trim();
  340. if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
  341. }
  342. return "";
  343. }
  344. function getPermissionF(t) {
  345. setTip("获取权限中...")
  346. window.localStorage.setItem("txm", t)
  347. let url = ""
  348. let href = location.href
  349. if (href.includes("https")) {
  350. if (href.includes("19j")) {
  351. url = "https://124.223.114.203:3001/getHanguoToken/"+t+"/123"
  352. } else {
  353. url = "https://124.223.114.203:3001/getPermission/"+t+"/154"
  354. }
  355. } else {
  356. if (href.includes("19j")) {
  357. url = "http://124.223.114.203:3001/getHanguoToken/"+t+"/123"
  358. } else {
  359. url = "http://124.223.114.203:3000/getPermission/"+t+"/154"
  360. }
  361. }
  362. fetch(url).then(async function(result) {
  363. let res = await result.json()
  364. if (res.code == 300) {
  365. setTip(res.msg)
  366. return
  367. }
  368. let href = window.location.href
  369. if (href.includes("19j")) {
  370. let token = res.data
  371. let url = `${location.protocol}//${location.hostname}/user/login?ruser=fengfeng&rtoken=${token}`
  372. console.log(url, "url")
  373. location.href=url
  374. //setTip("请先至姐妹站:ri102.xyz (即swag站),获取权限后点击右上角会员中心,里面有个登录联合会员的链接,点一下即可。")
  375. } else {
  376. let cookieArr = res.data.cookieHeader
  377. cookieArr.forEach((item) => {
  378. let temp = item.split(";")[0]
  379. let tempArr = temp.split("=")
  380. if (tempArr[0] == 'user') {
  381. setCookie('user', tempArr[1], 1)
  382. } else {
  383. setCookie(tempArr[0], tempArr[1])
  384. }
  385. })
  386. location.reload()
  387. }
  388. }).catch(function(e) {
  389. console.log(e)
  390. setTip("请求异常,请联系开发者。")
  391. })
  392. }
  393. function hasGetPermissionF() {
  394.  
  395. }
  396. function hiddenBtnF() {
  397. document.querySelector(".hiddenBtn").style.display = "none"
  398. document.querySelector("#vipPanel").className = "hiddenPanel"
  399. document.querySelector(".showBtn").style.display = "block"
  400. }
  401. function showBtnF() {
  402. document.querySelector(".hiddenBtn").style.display = "block"
  403. document.querySelector("#vipPanel").className = ""
  404. document.querySelector(".showBtn").style.display = "none"
  405. }
  406. function isSuccess() {
  407. console.log(getCookie('PHPSESSID'))
  408. if(location.href.includes('ri')) {
  409. return getCookie('PHPSESSID')
  410. } else {
  411. let dom = document.getElementById("vip1")
  412. let dom_ = document.querySelector("a.tx-flex-hc")
  413. let b = false
  414. if (dom_) {
  415. b = dom_.innerHTML.includes("会员中心")
  416. }
  417. if (dom||b) {
  418. return true
  419. } else {
  420. return false
  421. }
  422. }
  423. }
  424. function getTip() {
  425. return document.querySelector("#tipContent").innerHTML
  426. }
  427. function setCookie(cname, cvalue, exdays) {
  428. var d = new Date();
  429. d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
  430. var expires = "expires=" + d.toGMTString();
  431. document.cookie = cname + "=" + cvalue + "; " + expires+";path=/";
  432. }
  433. })();