91Porn Video Address Extractor

Not only the addresses!

  1. // ==UserScript==
  2. // @name 91Porn Video Address Extractor
  3. // @namespace http://github.com/DuckSoft/
  4. // @version 1.0
  5. // @description Not only the addresses!
  6. // @author DuckSoft
  7. // @match *://*.91porn.com/view_video.php?*
  8. // @match *://*.91porn.com/view_video_hd.php?*
  9. // @match *://91porn.com/view_video.php?*
  10. // @match *://91porn.com/view_video_hd.php?*
  11. // @grant none
  12. // ==/UserScript==
  13.  
  14. (() => {
  15. 'use strict';
  16.  
  17. let getCookieItem = (key) => ('; ' + document.cookie).split('; ' + key + '=').pop().split(';').shift();
  18.  
  19. let isLoggedIn = () => document.querySelector("div#head>h3>a").href.endsWith("my_profile.php");
  20. let ui_isLoggedIn = `<span id="logged_in">登陆状态:${isLoggedIn() && "已登录" || "未登录"}</span>`;
  21. let inject_isLoggedIn = () => {
  22. };
  23.  
  24. let isVip = () => getCookieItem("level") !== '1';
  25. let setVip = () => {
  26. document.cookie = 'level=5; user_level=5; '
  27. };
  28. let ui_isVip = `<button id="setVip">VIP${isVip() && "已开启" || "未开启"}</button>`;
  29. let inject_isVip = () => {
  30. document.querySelector("#setVip").addEventListener("click", () => {
  31. if (!isVip()) {
  32. setVip();
  33. history.go(0);
  34. } else {
  35. alert("你已经是VIP了!");
  36. }
  37. })
  38. };
  39.  
  40. let getWatchTimes = () => parseInt(getCookieItem("watch_times"));
  41. let resetWatchTimes = () => {
  42. document.cookie = 'watch_times=0; '
  43. };
  44. let ui_watchTimes = `<button id="watch_time">观看次数:${getWatchTimes()}</button>`;
  45. let inject_watchTimes = () => {
  46. document.querySelector("#watch_time").addEventListener("click", () => {
  47. resetWatchTimes();
  48. history.go(0);
  49. })
  50. };
  51.  
  52. let getVideoAddress = () => {
  53. let source = document.querySelector("source");
  54. if (source) return source.src;
  55. };
  56. let ui_videoAddress = `<button id="get-video">直接下载</button>`;
  57. let inject_videoAddress = () => {
  58. document.querySelector("#get-video").addEventListener("click", () => {
  59. let address = getVideoAddress();
  60. if (address) {
  61. window.location.href = address;
  62. } else {
  63. alert("获取不到地址!");
  64. }
  65. })
  66. };
  67.  
  68. let detectHdVideo = () => {
  69. let img = document.querySelector("div.videoplayer>img");
  70. if (img) {
  71. return img.src.endsWith("hd.png");
  72. } else {
  73. return false;
  74. }
  75. };
  76.  
  77. let fetchHdVideoPageUrl = () => document.querySelector("div.videoplayer>a").href;
  78. let gotoHdVideo = () => {
  79. window.location.href = fetchHdVideoPageUrl()
  80. };
  81. let ui_hdVideo = (() => {
  82. if (detectHdVideo()) {
  83. return `<button id="gohd">转到高清</button>`
  84. } else {
  85. return `<span>暂无高清</span>`
  86. }
  87. })();
  88. let inject_hdVideo = () => {
  89. if (detectHdVideo()) {
  90. document.querySelector("#gohd").addEventListener("click", () => {
  91. if (detectHdVideo()) {
  92. gotoHdVideo();
  93. }
  94. })
  95. }
  96. };
  97.  
  98. let ui = (() => `<div class="i_love_91porn">${
  99. [ui_isLoggedIn, ui_isVip, ui_hdVideo, ui_videoAddress, ui_watchTimes].join(" | ")
  100. }</div>`)();
  101.  
  102. let registerUiEvents = () => {
  103. inject_isLoggedIn();
  104. inject_isVip();
  105. inject_hdVideo();
  106. inject_videoAddress();
  107. inject_watchTimes();
  108. };
  109.  
  110. let detectUi = () => !!document.querySelector(".i_love_91porn");
  111. let injectUi = () => {
  112. if (!detectUi()) {
  113. document.body.insertAdjacentHTML("afterbegin", ui);
  114. registerUiEvents();
  115. }
  116. };
  117.  
  118. let runAfterLoaded = (f) => {
  119. if (document.addEventListener) window.addEventListener("load", f, false);
  120. else if (window.attachEvent) window.attachEvent("onload", f);
  121. };
  122.  
  123. runAfterLoaded(injectUi());
  124. })();