Greasy Fork is available in English.

全网VIP视频解析, 去广告, 超清播放, 支持优酷、腾讯、爱奇艺、芒果、PPTV、咪咕视频等全网VIP视频 2020/10/24 更新

VIP视频解析集合;支持【爱奇艺,优酷视频,乐视TV,腾讯视频,土豆视频,搜狐视频,PPTV,M1905,暴风影音,哔哩哔哩,咪咕视频】等全网VIP视频

נכון ליום 24-10-2020. ראה הגרסה האחרונה.

  1. // ==UserScript==
  2. // @name 全网VIP视频解析, 去广告, 超清播放, 支持优酷、腾讯、爱奇艺、芒果、PPTV、咪咕视频等全网VIP视频 2020/10/24 更新
  3. // @namespace http://tv.oopw.top/
  4. // @version 1.7.1
  5. // @description VIP视频解析集合;支持【爱奇艺,优酷视频,乐视TV,腾讯视频,土豆视频,搜狐视频,PPTV,M1905,暴风影音,哔哩哔哩,咪咕视频】等全网VIP视频
  6. // @author liheng
  7. // @icon http://tv.13tv.top/favicon.ico
  8. // @match *://m.youku.com/v*
  9. // @match *://m.youku.com/a*
  10. // @match *://v.youku.com/v_*
  11. // @match *://*.iqiyi.com/v_*
  12. // @match *://*.iqiyi.com/w_*
  13. // @match *://*.iqiyi.com/a_*
  14. // @match *://*.iqiyi.com/adv*
  15. // @match *://*.le.com/ptv/vplay/*
  16. // @match *v.qq.com/x/cover/*
  17. // @match *v.qq.com/x/page/*
  18. // @match *v.qq.com/play*
  19. // @match *v.qq.com/cover*
  20. // @match *://*.tudou.com/listplay/*
  21. // @match *://*.tudou.com/albumplay/*
  22. // @match *://*.tudou.com/programs/view/*
  23. // @match *://*.tudou.com/v*
  24. // @match *://*.mgtv.com/b/*
  25. // @match *://*.mgtv.com/s/*
  26. // @match *://film.sohu.com/album/*
  27. // @match *://tv.sohu.com/v/*
  28. // @match *://m.tv.sohu.com/phone_*
  29. // @match *://*.acfun.cn/v/*
  30. // @match *://*.bilibili.com/video/*
  31. // @match *://*.bilibili.com/anime/*
  32. // @match *://*.bilibili.com/bangumi/play/*
  33. // @match *://*.pptv.com/show/*
  34. // @match *://vip.1905.com/play/*
  35. // @match *://*.wasu.cn/Play/show*
  36. // @match *://*.wasu.cn/wap/Play/show/*
  37. // @match *://*.miguvideo.com/wap/resource/pc/detail/*
  38. // @match *://*.miguvideo.com/mgs/website/prd/detail*
  39. // @exclude *://*.oopw.top/*
  40. // @require https://cdn.staticfile.org/jquery/1.12.4/jquery.min.js
  41. // @require https://greasyfork.org/scripts/373336-layer-wandhi/code/layer_wandhi.js?version=637587
  42. // @require https://cdn.bootcss.com/sweetalert/2.1.2/sweetalert.min.js
  43. // @license GPL License
  44. // @grant GM_setClipboard
  45. // @run-at document-end
  46. // @connect shangxueba365.com
  47. // @grant unsafeWindow
  48. // @grant GM_xmlhttpRequest
  49. // @grant GM_info
  50. // @grant GM.getValue
  51. // @grant GM.setValue
  52. // @grant GM_getValue
  53. // @grant GM_setValue
  54. // @grant GM_notification
  55. // @grant GM_openInTab
  56. // @grant GM_deleteValue
  57. // @grant GM_registerMenuCommand
  58. // @grant GM_unregisterMenuCommand
  59. // ==/UserScript==
  60.  
  61.  
  62. (function () {
  63. 'use strict';
  64.  
  65. /*! *****************************************************************************
  66. Copyright (c) Microsoft Corporation. All rights reserved.
  67. Licensed under the Apache License, Version 2.0 (the "License"); you may not use
  68. this file except in compliance with the License. You may obtain a copy of the
  69. License at http://www.apache.org/licenses/LICENSE-2.0
  70.  
  71. THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  72. KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
  73. WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
  74. MERCHANTABLITY OR NON-INFRINGEMENT.
  75.  
  76. See the Apache Version 2.0 License for specific language governing permissions
  77. and limitations under the License.
  78. ***************************************************************************** */
  79. /* global Reflect, Promise */
  80.  
  81. var extendStatics = function(d, b) {
  82. extendStatics = Object.setPrototypeOf ||
  83. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  84. function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
  85. return extendStatics(d, b);
  86. };
  87.  
  88. function __extends(d, b) {
  89. extendStatics(d, b);
  90. function __() { this.constructor = d; }
  91. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  92. }
  93.  
  94. var Http = (function () {
  95. function Http() {
  96. }
  97. Http.prototype.ajax = function (request) {
  98. GM_xmlhttpRequest(request);
  99. };
  100. return Http;
  101. }());
  102.  
  103. var Core = (function () {
  104. function Core() {
  105. this.head = document.getElementsByTagName('head')[0];
  106. this.topUrl = top.window.location.href;
  107. this.url = this.currentUrl();
  108. this.http = new Http();
  109. }
  110. Core.prototype.getPar = function (option, url) {
  111. if (url === void 0) { url = window.location.search; }
  112. var v = url.match(new RegExp("[\?\&]" + option + "=([^\&]+)", "i"));
  113. return v == null || v.length < 1 ? "" : v[1];
  114. };
  115. Core.prototype.appendCss = function (url) {
  116. var linkCSS = document.createElement("link");
  117. linkCSS.type = "text/css";
  118. linkCSS.rel = "stylesheet";
  119. linkCSS.href = url;
  120. this.head.appendChild(linkCSS);
  121. };
  122. Core.prototype.accpendCssContent = function (content) {
  123. var Style = document.createElement("style");
  124. Style.innerHTML = content;
  125. this.head.appendChild(Style);
  126. };
  127. Core.prototype.bodyAppendCss = function (url) {
  128. $('body').append($('<link rel="stylesheet" href="' + url + '">'));
  129. };
  130. Core.prototype.bodyAppend = function (html) {
  131. $("body").append(html);
  132. };
  133. Core.prototype.appendJs = function (url) {
  134. var linkScript = document.createElement("script");
  135. linkScript.type = "text/" + ("javascript");
  136. linkScript.src = url;
  137. this.head.appendChild(linkScript);
  138. };
  139. Core.prototype.bodyAppendJs = function (url) {
  140. $('body').append($('<script type="text/javascript" src="' + url + '"></script>'));
  141. };
  142. Core.prototype.currentUrl = function () {
  143. return window.location.href;
  144. };
  145. Core.prototype.Msg = function (msg) {
  146. return layer.msg(msg, { icon: 5 });
  147. };
  148. Core.prototype.showContent = function (title, content) {
  149. return layer.open({ type: 1, title: title, shade: 0, content: content });
  150. };
  151. Core.prototype.close = function (obj) {
  152. layer.close(obj);
  153. };
  154. Core.prototype.closeAll = function () {
  155. layer.closeAll();
  156. };
  157. return Core;
  158. }());
  159.  
  160. var PluginBase = (function () {
  161. function PluginBase() {
  162. this.core = new Core();
  163. this.apiRoot = "https://api.wandhi.com/api";
  164. }
  165. PluginBase.prototype.linkTest = function (url) {
  166. var _this = this;
  167. if (!url) {
  168. url = this.core.currentUrl();
  169. }
  170. var flag = false;
  171. this.rules.forEach(function (v, k) {
  172. if (v.test(url)) {
  173. flag = true;
  174. _this.site = k;
  175. return false;
  176. }
  177. return true;
  178. });
  179. return flag;
  180. };
  181. PluginBase.prototype.Process = function () {
  182. this.loader();
  183. this.run();
  184. };
  185. PluginBase.prototype.getData = function (url, callback) {
  186. $.getJSON(url, function (d) {
  187. callback(d);
  188. });
  189. };
  190. PluginBase.prototype.queryData = function (request) {
  191. this.core.http.ajax(request);
  192. };
  193. return PluginBase;
  194. }());
  195.  
  196. var SiteEnum;
  197. (function (SiteEnum) {
  198. SiteEnum[SiteEnum["TaoBao"] = 0] = "TaoBao";
  199. SiteEnum[SiteEnum["TMall"] = 1] = "TMall";
  200. SiteEnum[SiteEnum["JingDong"] = 2] = "JingDong";
  201. SiteEnum[SiteEnum["IQiYi"] = 3] = "IQiYi";
  202. SiteEnum[SiteEnum["YouKu"] = 4] = "YouKu";
  203. SiteEnum[SiteEnum["LeShi"] = 5] = "LeShi";
  204. SiteEnum[SiteEnum["TuDou"] = 6] = "TuDou";
  205. SiteEnum[SiteEnum["Tencent_V"] = 7] = "Tencent_V";
  206. SiteEnum[SiteEnum["MangGuo"] = 8] = "MangGuo";
  207. SiteEnum[SiteEnum["SoHu"] = 9] = "SoHu";
  208. SiteEnum[SiteEnum["Acfun"] = 10] = "Acfun";
  209. SiteEnum[SiteEnum["BiliBili"] = 11] = "BiliBili";
  210. SiteEnum[SiteEnum["M1905"] = 12] = "M1905";
  211. SiteEnum[SiteEnum["PPTV"] = 13] = "PPTV";
  212. SiteEnum[SiteEnum["YinYueTai"] = 14] = "YinYueTai";
  213. SiteEnum[SiteEnum["WangYi"] = 15] = "WangYi";
  214. SiteEnum[SiteEnum["Tencent_M"] = 16] = "Tencent_M";
  215. SiteEnum[SiteEnum["KuGou"] = 17] = "KuGou";
  216. SiteEnum[SiteEnum["KuWo"] = 18] = "KuWo";
  217. SiteEnum[SiteEnum["XiaMi"] = 19] = "XiaMi";
  218. SiteEnum[SiteEnum["TaiHe"] = 20] = "TaiHe";
  219. SiteEnum[SiteEnum["QingTing"] = 21] = "QingTing";
  220. SiteEnum[SiteEnum["LiZhi"] = 22] = "LiZhi";
  221. SiteEnum[SiteEnum["MiGuvideo"] = 23] = "MiGuvideo";
  222. SiteEnum[SiteEnum["XiMaLaYa"] = 24] = "XiMaLaYa";
  223. })(SiteEnum || (SiteEnum = {}));
  224.  
  225. var Common;
  226. (function (Common) {
  227. var Menu = (function () {
  228. function Menu() {
  229. this.core = new Core();
  230. this.site = /tv.oopw.top/i;
  231. this.userAgent = navigator.userAgent;
  232. this.menusClass = ['first', 'second'];
  233. this.menuSelecter = "#Wandhi-nav";
  234. }
  235. Menu.prototype.loader = function () {
  236. this.core.accpendCssContent("\n html {\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n -webkit-font-smoothing: antialiased;\n font-size: 62.5%\n }\n body .aside-nav {\n font-family: \"Helvetica Neue\", Helvetica, \"Microsoft YaHei\", Arial, sans-serif;\n margin: 0;\n font-size: 1.6rem;\n /*background-color: #f9f9f9;*/\n color: #4E546B\n }\n .aside-nav {\n position: fixed;\n /*right: -50px;*/\n top: 350px;\n width: 260px;\n height: 260px;\n -webkit-filter: url(#goo);\n filter: url(#goo);\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n opacity: .75;\n z-index: 20180817;\n }\n .aside-nav.no-filter {\n -webkit-filter: none;\n filter: none\n }\n .aside-nav .aside-menu {\n position: absolute;\n width: 70px;\n height: 70px;\n -webkit-border-radius: 50%;\n border-radius: 50%;\n background: #f34444;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n margin: auto;\n text-align: center;\n line-height: 70px;\n color: #fff;\n font-size: 20px;\n z-index: 1;\n cursor: move\n }\n .aside-nav .menu-item {\n position: absolute;\n width: 60px;\n height: 60px;\n background-color: #FF7676;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n margin: auto;\n line-height: 60px;\n text-align: center;\n -webkit-border-radius: 50%;\n border-radius: 50%;\n text-decoration: none;\n color: #fff;\n -webkit-transition: background .5s, -webkit-transform .6s;\n transition: background .5s, -webkit-transform .6s;\n -moz-transition: transform .6s, background .5s, -moz-transform .6s;\n transition: transform .6s, background .5s;\n transition: transform .6s, background .5s, -webkit-transform .6s, -moz-transform .6s;\n font-size: 14px;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box\n }\n .aside-nav .menu-item:hover {\n background: #A9C734;\n }\n .aside-nav .menu-line {\n line-height: 20px;\n padding-top: 10px;\n }\n .aside-nav:hover {\n opacity: 1;\n }\n .aside-nav:hover .aside-menu {\n -webkit-animation: jello 1s;\n -moz-animation: jello 1s;\n animation: jello 1s\n }\n .aside-nav:hover .menu-first {\n -webkit-transform: translate3d(0, -135%, 0);\n -moz-transform: translate3d(0, -135%, 0);\n transform: translate3d(0, -135%, 0)\n }\n .aside-nav:hover .menu-second {\n -webkit-transform: translate3d(120%, -70%, 0);\n -moz-transform: translate3d(120%, -70%, 0);\n transform: translate3d(120%, -70%, 0)\n }\n .aside-nav:hover .menu-third {\n -webkit-transform: translate3d(120%, 70%, 0);\n -moz-transform: translate3d(120%, 70%, 0);\n transform: translate3d(120%, 70%, 0)\n }\n .aside-nav:hover .menu-fourth {\n -webkit-transform: translate3d(0, 135%, 0);\n -moz-transform: translate3d(0, 135%, 0);\n transform: translate3d(0, 135%, 0)\n }\n @-webkit-keyframes jello {\n from, 11.1%, to {\n -webkit-transform:none;\n transform:none\n }\n 22.2% {\n -webkit-transform:skewX(-12.5deg) skewY(-12.5deg);\n transform:skewX(-12.5deg) skewY(-12.5deg)\n }\n 33.3% {\n -webkit-transform:skewX(6.25deg) skewY(6.25deg);\n transform:skewX(6.25deg) skewY(6.25deg)\n }\n 44.4% {\n -webkit-transform:skewX(-3.125deg) skewY(-3.125deg);\n transform:skewX(-3.125deg) skewY(-3.125deg)\n }\n 55.5% {\n -webkit-transform:skewX(1.5625deg) skewY(1.5625deg);\n transform:skewX(1.5625deg) skewY(1.5625deg)\n }\n 66.6% {\n -webkit-transform:skewX(-.78125deg) skewY(-.78125deg);\n transform:skewX(-.78125deg) skewY(-.78125deg)\n }\n 77.7% {\n -webkit-transform:skewX(0.390625deg) skewY(0.390625deg);\n transform:skewX(0.390625deg) skewY(0.390625deg)\n }\n 88.8% {\n -webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);\n transform:skewX(-.1953125deg) skewY(-.1953125deg)\n }\n }\n @-moz-keyframes jello {\n from, 11.1%, to {\n -moz-transform:none;\n transform:none\n }\n 22.2% {\n -moz-transform:skewX(-12.5deg) skewY(-12.5deg);\n transform:skewX(-12.5deg) skewY(-12.5deg)\n }\n 33.3% {\n -moz-transform:skewX(6.25deg) skewY(6.25deg);\n transform:skewX(6.25deg) skewY(6.25deg)\n }\n 44.4% {\n -moz-transform:skewX(-3.125deg) skewY(-3.125deg);\n transform:skewX(-3.125deg) skewY(-3.125deg)\n }\n 55.5% {\n -moz-transform:skewX(1.5625deg) skewY(1.5625deg);\n transform:skewX(1.5625deg) skewY(1.5625deg)\n }\n 66.6% {\n -moz-transform:skewX(-.78125deg) skewY(-.78125deg);\n transform:skewX(-.78125deg) skewY(-.78125deg)\n }\n 77.7% {\n -moz-transform:skewX(0.390625deg) skewY(0.390625deg);\n transform:skewX(0.390625deg) skewY(0.390625deg)\n }\n 88.8% {\n -moz-transform:skewX(-.1953125deg) skewY(-.1953125deg);\n transform:skewX(-.1953125deg) skewY(-.1953125deg)\n }\n }\n @keyframes jello {\n from, 11.1%, to {\n -webkit-transform:none;\n -moz-transform:none;\n transform:none\n }\n 22.2% {\n -webkit-transform:skewX(-12.5deg) skewY(-12.5deg);\n -moz-transform:skewX(-12.5deg) skewY(-12.5deg);\n transform:skewX(-12.5deg) skewY(-12.5deg)\n }\n 33.3% {\n -webkit-transform:skewX(6.25deg) skewY(6.25deg);\n -moz-transform:skewX(6.25deg) skewY(6.25deg);\n transform:skewX(6.25deg) skewY(6.25deg)\n }\n 44.4% {\n -webkit-transform:skewX(-3.125deg) skewY(-3.125deg);\n -moz-transform:skewX(-3.125deg) skewY(-3.125deg);\n transform:skewX(-3.125deg) skewY(-3.125deg)\n }\n 55.5% {\n -webkit-transform:skewX(1.5625deg) skewY(1.5625deg);\n -moz-transform:skewX(1.5625deg) skewY(1.5625deg);\n transform:skewX(1.5625deg) skewY(1.5625deg)\n }\n 66.6% {\n -webkit-transform:skewX(-.78125deg) skewY(-.78125deg);\n -moz-transform:skewX(-.78125deg) skewY(-.78125deg);\n transform:skewX(-.78125deg) skewY(-.78125deg)\n }\n 77.7% {\n -webkit-transform:skewX(0.390625deg) skewY(0.390625deg);\n -moz-transform:skewX(0.390625deg) skewY(0.390625deg);\n transform:skewX(0.390625deg) skewY(0.390625deg)\n }\n 88.8% {\n -webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);\n -moz-transform:skewX(-.1953125deg) skewY(-.1953125deg);\n transform:skewX(-.1953125deg) skewY(-.1953125deg)\n }\n }\n \n .animated {\n -webkit-animation-duration: 1s;\n -moz-animation-duration: 1s;\n animation-duration: 1s;\n -webkit-animation-fill-mode: both;\n -moz-animation-fill-mode: both;\n animation-fill-mode: both\n }\n \n @-webkit-keyframes bounceInUp {\n from, 60%, 75%, 90%, to {\n -webkit-animation-timing-function:cubic-bezier(0.215, .61, .355, 1);\n animation-timing-function:cubic-bezier(0.215, .61, .355, 1)\n }\n from {\n opacity: 0;\n -webkit-transform: translate3d(0, 800px, 0);\n transform: translate3d(0, 800px, 0)\n }\n 60% {\n opacity:1;\n -webkit-transform:translate3d(0, -20px, 0);\n transform:translate3d(0, -20px, 0)\n }\n 75% {\n -webkit-transform:translate3d(0, 10px, 0);\n transform:translate3d(0, 10px, 0)\n }\n 90% {\n -webkit-transform:translate3d(0, -5px, 0);\n transform:translate3d(0, -5px, 0)\n }\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0)\n }\n }\n @-moz-keyframes bounceInUp {\n from, 60%, 75%, 90%, to {\n -moz-animation-timing-function:cubic-bezier(0.215, .61, .355, 1);\n animation-timing-function:cubic-bezier(0.215, .61, .355, 1)\n }\n from {\n opacity: 0;\n -moz-transform: translate3d(0, 800px, 0);\n transform: translate3d(0, 800px, 0)\n }\n 60% {\n opacity:1;\n -moz-transform:translate3d(0, -20px, 0);\n transform:translate3d(0, -20px, 0)\n }\n 75% {\n -moz-transform:translate3d(0, 10px, 0);\n transform:translate3d(0, 10px, 0)\n }\n 90% {\n -moz-transform:translate3d(0, -5px, 0);\n transform:translate3d(0, -5px, 0)\n }\n to {\n -moz-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0)\n }\n }\n @keyframes bounceInUp {\n from, 60%, 75%, 90%, to {\n -webkit-animation-timing-function:cubic-bezier(0.215, .61, .355, 1);\n -moz-animation-timing-function:cubic-bezier(0.215, .61, .355, 1);\n animation-timing-function:cubic-bezier(0.215, .61, .355, 1)\n }\n from {\n opacity: 0;\n -webkit-transform: translate3d(0, 800px, 0);\n -moz-transform: translate3d(0, 800px, 0);\n transform: translate3d(0, 800px, 0)\n }\n 60% {\n opacity:1;\n -webkit-transform:translate3d(0, -20px, 0);\n -moz-transform:translate3d(0, -20px, 0);\n transform:translate3d(0, -20px, 0)\n }\n 75% {\n -webkit-transform:translate3d(0, 10px, 0);\n -moz-transform:translate3d(0, 10px, 0);\n transform:translate3d(0, 10px, 0)\n }\n 90% {\n -webkit-transform:translate3d(0, -5px, 0);\n -moz-transform:translate3d(0, -5px, 0);\n transform:translate3d(0, -5px, 0)\n }\n to {\n -webkit-transform: translate3d(0, 0, 0);\n -moz-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0)\n }\n }\n .bounceInUp {\n -webkit-animation-name: bounceInUp;\n -moz-animation-name: bounceInUp;\n animation-name: bounceInUp;\n -webkit-animation-delay: 1s;\n -moz-animation-delay: 1s;\n animation-delay: 1s\n }\n \n @media screen and (max-width:640px) {\n .aside-nav {/* display: none!important */}\n }\n @media screen and (min-width:641px) and (max-width:1367px) {\n .aside-nav {top: 50px}\n }\n ");
  237. };
  238. Menu.prototype.getBody = function (option) {
  239. return "<svg width=\"0\" height=\"0\"><defs><filter id=\"goo\"><feGaussianBlur in=\"SourceGraphic\" stdDeviation=\"10\" result=\"blur\"></feGaussianBlur><feColorMatrix in=\"blur\" mode=\"matrix\" values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 19 -9\" result=\"goo\"></feColorMatrix><feComposite in=\"SourceGraphic\" in2=\"goo\" operator=\"atop\"></feComposite></filter></defs></svg><div class=\"aside-nav bounceInUp animated\" id=\"Wandhi-nav\"><label for=\"\" class=\"aside-menu\" title=\"\u6309\u4F4F\u62D6\u52A8\">VIP</label>" + option + "</div>";
  240. };
  241. Menu.prototype.Init = function (menus, callback) {
  242. var _this = this;
  243. if (this.site.test(this.core.topUrl)) {
  244. return;
  245. }
  246. this.loader();
  247. var str = "";
  248. menus.forEach(function (element, index) {
  249. str += "<a href=\"javascript:void(0)\" title=\"" + element.title + "\" data-cat=\"" + element.type + "\" class=\"menu-item menu-line menu-" + _this.menusClass[index] + "\">" + element.show + "</a>";
  250. });
  251. this.core.bodyAppend(this.getBody(str));
  252. /Safari|iPhone/i.test(this.userAgent) && /chrome/i.test(this.userAgent) && $("#Wandhi-nav").addClass("no-filter");
  253. var drags = { down: !1, x: 0, y: 0, winWid: 0, winHei: 0, clientX: 0, clientY: 0 };
  254. var asideNav = $(this.menuSelecter)[0];
  255. $("body").on("mousedown", "#Wandhi-nav", function (a) {
  256. var getCss = function (a, e) {
  257. return a.currentStyle ? a.currentStyle[e] : document.defaultView.getComputedStyle(a, !1)[e];
  258. };
  259. drags.down = !0,
  260. drags.clientX = a.clientX,
  261. drags.clientY = a.clientY,
  262. drags.x = parseInt(getCss(this, "left")),
  263. drags.y = parseInt(getCss(this, "top")),
  264. drags.winHei = $(window).height(),
  265. drags.winWid = $(window).width(),
  266. $(document).on("mousemove", function (a) {
  267. var e = a.clientX - drags.clientX, t = a.clientY - drags.clientY;
  268. asideNav = asideNav || $("#Wandhi-nav")[0];
  269. asideNav.style.top = drags.y + t + "px";
  270. asideNav.style.left = drags.x + e + "px";
  271. });
  272. }).on("mouseup", "#Wandhi-nav", function () {
  273. drags.down = !1, $(document).off("mousemove");
  274. });
  275. callback.call(this);
  276. };
  277. return Menu;
  278. }());
  279. Common.Menu = Menu;
  280. })(Common || (Common = {}));
  281.  
  282.  
  283. var WandhiInjection = (function () {
  284. function WandhiInjection(plugins) {
  285. this.plugins = new Array();
  286. if (plugins) {
  287. this.plugins = plugins;
  288. }
  289. }
  290. WandhiInjection.prototype.Init = function () {
  291. this.plugins.every(function (element) {
  292. if (element.linkTest()) {
  293. element.Process();
  294. return false;
  295. }
  296. return true;
  297. });
  298. };
  299. return WandhiInjection;
  300. }());
  301.  
  302. var MovieService = (function (_super) {
  303. __extends(MovieService, _super);
  304. function MovieService() {
  305. var _this = _super.call(this) || this;
  306. _this.rules = new Map([
  307. [SiteEnum.YouKu, /youku/i],
  308. [SiteEnum.IQiYi, /iqiyi/i],
  309. [SiteEnum.LeShi, /le.com/i],
  310. [SiteEnum.Tencent_V, /v.qq/i],
  311. [SiteEnum.TuDou, /tudou/i],
  312. [SiteEnum.MangGuo, /mgtv/i],
  313. [SiteEnum.SoHu, /sohu/i],
  314. [SiteEnum.Acfun, /acfun/i],
  315. [SiteEnum.BiliBili, /bilibili/i],
  316. [SiteEnum.M1905, /1905/i],
  317. [SiteEnum.PPTV, /pptv/i],
  318. [SiteEnum.MiGuvideo, /miguvideo/i],
  319. ]);
  320. _this.menu = new Common.Menu();
  321. return _this;
  322. }
  323. MovieService.prototype.loader = function () {
  324. if (typeof ($) === 'undefined') {
  325. this.core.appendJs("//lib.baomitu.com/jquery/1.12.4/jquery.min.js");
  326. }
  327. };
  328. MovieService.prototype.run = function () {
  329. this.menu.Init([
  330. { title: "\u7535\u5F71\u641C\u7D22", show: "\u7535\u5F71<br>\u641C\u7D22", type: "search" },
  331. { title: "\u89C6\u9891\u89E3\u6790", show: "\u89C6\u9891<br>\u89E3\u6790", type: "process" },
  332. { title: "\u7EDD\u4E16\u597D\u5238", show: "\u7EDD\u4E16<br>\u597D\u5238", type: "tb" },
  333. { title: "\u4EAC\u4E1C\u597D\u5238", show: "\u4EAC\u4E1C<br>\u597D\u5238", type: "jd" }
  334. ], this._onClick);
  335. };
  336. MovieService.prototype._onClick = function () {
  337. $('body').on('click', '[data-cat=process]', function () {
  338. window.open('http://tv.13tv.top/v.php?url=' + encodeURIComponent(window.location.href) + '&title=' + document.title);
  339. });
  340. $('body').on('click', '[data-cat=search]', function () {
  341. window.open('http://tv.13tv.top/');
  342. });
  343. $('body').on('click', '[data-cat=tb]', function () {
  344. window.open('http://sign.wandhi.com/jump.php?target=https://api.wandhi.com/goto/DUVAFQgZTEEVFAQcDhYKSFkDDh9XCl8=');
  345. });
  346. $('body').on('click', '[data-cat=jd]', function () {
  347. window.open('http://sign.wandhi.com/jump.php?target=https://api.wandhi.com/goto/DUVAFQgZTFwGTVhHDxkLV1pIBl5Z');
  348. });
  349. };
  350. return MovieService;
  351. }(PluginBase));
  352.  
  353.  
  354. var app = new WandhiInjection([
  355. new MovieService()
  356. ]);
  357. app.Init();
  358.  
  359. }());