vipHelper

也许是全网最好用的vipHelper脚本

  1. // ==UserScript==
  2. // @name vipHelper
  3. // @namespace TianmuTNT
  4. // @version 1.0.5
  5. // @description 也许是全网最好用的vipHelper脚本
  6. // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAY1JREFUWEfdV0tywyAMRV64PYXbZXKKOidLcrI4p0iWbU7RZoE6MOABIpBVyrhTVvZYlp6evoBa+cDK9hUL4PL6PCqtRwMUAN44wIh4DmW2t/uh9A8JwBgFxL1CtIZrDyp1VF03bd8/p1TXA4DL0B9AqX2tUep/AyRlJAJgPdf61MK414ldtwuZiAE09H52CmDafHzt/HsE4Dr02NJ7r3tzu89254di7AEmBDga6qycqYaKBA3DwAKgEsd4UsNWqJMHkCSNJEQ5VkUAwnhJjHtZkqkgEWcGri9PJyquadl4xbZDMifbzCQAVFI2xmZ1vxABcF7adurnQUUFWHU/AcDRLfr+fwGYhuXGcXGgtWCAqpZcZclywLVhLsbUrM9Wi4SBFo1I1Alzs4BjpNQJRQAWGSKalW1Ymf2CBlC7DbkKMCuXX2RzlUACqB2xi5hyQuRCYgFkBpJEOSeb5tTfWkpLicN5tuQ7u5ZHs17r8dfuB8FOmQLlr2ZDH12tRNezzG0oBMECWEJtjczqAL4BysQhMPukapkAAAAASUVORK5CYII=
  7. // @author TianmuTNT
  8. // @include *://*.youku.com/v_*
  9. // @include *://www.iqiyi.com/*
  10. // @include *://www.iqiyi.com
  11. // @include *://*.iqiyi.com/v_*
  12. // @include *://*.iqiyi.com/w_*
  13. // @include *://*.iqiyi.com/a_*
  14. // @include *://*.le.com/ptv/vplay/*
  15. // @include *://v.qq.com/x/cover/*
  16. // @include *://v.qq.com/x/page/*
  17. // @include *://*.tudou.com/listplay/*
  18. // @include *://*.tudou.com/albumplay/*
  19. // @include *://*.tudou.com/programs/view/*
  20. // @include *://*.mgtv.com/b/*
  21. // @include *://film.sohu.com/album/*
  22. // @include *://tv.sohu.com/v/*
  23. // @include *://*.acfun.cn/v/*
  24. // @include *://*.bilibili.com/video/*
  25. // @include *://*.bilibili.com/anime/*
  26. // @include *://*.bilibili.com/bangumi/play/*
  27. // @include *://*.baofeng.com/play/*
  28. // @include *://vip.pptv.com/show/*
  29. // @include *://v.pptv.com/show/*
  30. // @grant GM_info
  31. // @grant GM_download
  32. // @grant GM_openInTab
  33. // @grant GM_getValue
  34. // @grant GM_setValue
  35. // @grant GM_xmlhttpRequest
  36. // @grant GM_addStyle
  37. // @run-at document-idle
  38. // @charset UTF-8
  39. // @license Apache-2.0
  40. // ==/UserScript==
  41.  
  42. (function() {
  43. 'use strict';
  44.  
  45. const vipHelper={};
  46. vipHelper.lastSelectedSourceUrl = null;
  47. vipHelper.currentHref = window.location.href;
  48.  
  49. vipHelper.playerNodes = [
  50. { url:"v.qq.com", node:"#player"},
  51. { url:"www.iqiyi.com", node:"#video"},
  52. { url:"v.youku.com", node:"#player"},
  53. { url:"w.mgtv.com", node:".kernel-video-element"},
  54. { url:"www.mgtv.com", node:".kernel-video-element"},
  55. { url:"tv.sohu.com", node:"#player"},
  56. { url:"film.sohu.com", node:"#playerWrap"},
  57. { url:"www.le.com", node:"#le_playbox"},
  58. { url:"video.tudou.com", node:".td-playbox"},
  59. { url:"v.pptv.com", node:"#pptv_playpage_box"},
  60. { url:"vip.pptv.com", node:".w-video"},
  61. { url:"www.wasu.cn", node:"#flashContent"},
  62. { url:"www.acfun.cn", node:"#ACPlayer"},
  63. { url:"vip.1905.com", node:"#player"},
  64. {url:"play.tudou.com",node:"#player"},
  65. {url:"www.bilibili.com/video",node:"#bilibiliPlayer"},
  66. {url:"www.bilibili.com/bangumi",node:"#player_module"},
  67. ];
  68.  
  69. vipHelper.defaultSourceArray=[
  70. {"name":"JY","url":"https://jx.playerjy.com/?url=","mobile":0},
  71. {"name":"七哥","url":"https://jx.nnxv.cn/tv.php?url=","mobile":0},
  72. {"name":"虾米","url":"https://jx.xmflv.com/?url=","mobile":0},
  73. {"name":"虾米2","url":"https://jx.xmflv.cc/?url=","mobile":0},
  74. {"name":"七七云","url":"https://jx.77flv.cc/?url=","mobile":0},
  75. {"name":"咸鱼云","url":"https://jx.xymp4.cc/?url=","mobile":0},
  76. {"name":"大米云","url":"https://jx.dmflv.cc/?url=","mobile":0}
  77. ];
  78. vipHelper.getServerSource=function(){
  79. vipHelper.addStyle();
  80. vipHelper.generateHtml();
  81. vipHelper.operation();
  82. };
  83. vipHelper.eleId = Math.ceil(Math.random()*100000000);
  84. vipHelper.isRun = function(){
  85. var isVip = false;
  86. var host = window.location.host;
  87. var href = window.location.href;
  88. var vipWebsites = ["iqiyi.com","v.qq.com","youku.com", "le.com","tudou.com","mgtv.com","sohu.com","acfun.cn","bilibili.com","baofeng.com","pptv.com"];
  89. for(var b=0; b<vipWebsites.length; b++){
  90. if(host.indexOf(vipWebsites[b]) != -1){
  91. if("iqiyi.com"===vipWebsites[b]){
  92. if(href.indexOf("iqiyi.com/a_")!=-1 || href.indexOf("iqiyi.com/w_")!=-1 || href.indexOf("iqiyi.com/v_")!=-1){
  93. isVip = true;
  94. break;
  95. }
  96. }else{
  97. isVip = true;
  98. break;
  99. }
  100. }
  101. }
  102. return isVip;
  103. };
  104. vipHelper.addStyle=function(){
  105. var themeColor = "#2F4F4F";
  106. var innnerCss =
  107. "#plugin_analysis_vip_movie_box_"+vipHelper.eleId+" {position:fixed;top:200px; left:0px; padding:5px 0px; width:38px;}"+
  108. "#plugin_analysis_vip_movie_box_"+vipHelper.eleId+" >.plugin_item{cursor:pointer; width:100%; text-align:center;}"+
  109. "#plugin_analysis_vip_movie_box_"+vipHelper.eleId+" >.jump_analysis_website{padding:10px 0px;background-color:"+themeColor+";}"+
  110. "#plugin_analysis_vip_movie_box_"+vipHelper.eleId+" >.open_page_inner_source{margin-top:6px; padding:5px 0px;background-color:"+themeColor+";}"+
  111. "#plugin_analysis_vip_movie_box_"+vipHelper.eleId+" >.plugin_item >img{width:60%; display:inline-block; vertical-align:middle;}"+
  112. "#plugin_analysis_vip_movie_box_"+vipHelper.eleId+" >.plugin_item>.play_source_box{display:none;width:310px;height:400px;position:absolute;left:25px;overflow:hidden;}"+
  113. "#plugin_analysis_vip_movie_box_"+vipHelper.eleId+" >.plugin_item>.play_source_box> .inner_table_box{width:330px;height:100%;padding-left:10px;overflow-y:scroll;overflow-x:hidden;}"+
  114. "#plugin_analysis_vip_movie_box_"+vipHelper.eleId+" >.plugin_item>.play_source_box> .inner_table_box> table{width:300px;border-spacing:5px;border-collapse:separate;line-height:20px;}"+
  115. "#plugin_analysis_vip_movie_box_"+vipHelper.eleId+" >.plugin_item>.play_source_box> .inner_table_box> table td{border-bottom:3px solid "+themeColor+";border-top:3px solid "+themeColor+";width:33%;color:#FFF;font-size:11px;text-align:center;cursor:pointer;background-color:"+themeColor+";box-shadow:0px 0px 5px #fff;border-radius:3px;}"+
  116. "#plugin_analysis_vip_movie_box_"+vipHelper.eleId+" >.plugin_item>.play_source_box> .inner_table_box> table td:hover{border-bottom:3px solid #FEF2A6;border-top:3px solid #FEF2A6;}"+
  117. "#plugin_analysis_vip_movie_box_"+vipHelper.eleId+" >.plugin_item>.play_source_box> .inner_table_box> table .td_hover{border-bottom:3px solid #FEF2A6;border-top:3px solid #FEF2A6;}";
  118. GM_addStyle(innnerCss);
  119. };
  120. vipHelper.generateHtml=function(){
  121. var html="";
  122. var vipImgBase64 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEEAAABACAYAAABFqxrgAAADBklEQVR4Xu2cz6tNURTHP7tI5iRlID9CJFMlkYGSRPGklBRKiCSSxJMBkYGSgWQq/gBT/gMDUzMzf8RX6959nuO9e+75sff54d69B+/W23evvdbnrLX32j/OdfgiaStwGzgBvHfOPc7qln9KsrpHRfU9/n+xgt6ngW/AK+fcT9PV2R9JZ4A3wHpvQBVh/yuETO/fwDXn3GfnAXxa9vTmAUJm8oJBMADmCfkyTxC+GAT1GMOD6DpBsIExeUKCMArH5AkJwnhcTp4wBcI85QmFnpAgAAlCgjAeMJMnJAjJE5YWdSkcIq5vvwP7IsprRVSrGaNzzuSfAz4Aa1qxIILQ1iHkNnKfAA8j6BxdRGcQ/IbuOuAtYDu+gymdQsh5xX7gHbB7CCR6gZCDccGPF6Ot/75KrxB8iKwCngL35hZCzit2Ac/8CVinPIo8YRH4OkWTQ1WO4WyKrGuNJDsGfAlsr9vW0v0mehdCqHCmV3oM1wRCzjPuAC9qgmiU6Q4Wgh8vNgJ2+HulIozZg5DzioMexuESGLMLIQfjkh+LNhXAmH0IPkTueq9YOwHEbEOQdMobv3dKSMwmBEl7fAhUWW/EhTCBdnaEn839bU+RtvS2PmyqXF11dmiid+9p8yTjJF0ELPZ3VjQ+6GuDgiDpAHAfOBZkVc3Gg4AgaQPwALieXSaraUfQ13uHIOmmN35bkCUBjXuDIOm4N/5ogP5RmnYOQdIOwJ7+1SgWRBDSGQRJNrXajVmL+80RdI8mYtp+QlknlfMESSe98UfKhAbW235CWVmhd6tLacBS3BvA5TLNItXHzRhjbKoAv4CiFV8ku/8RM0gIbRg6TWaC0PRKQdtjQvKErgkkTxgTjzsmNNm/7+HJL+8y6rnDAOzpToVW0+buzAjrKUFIF7zHHpQ8IUFInrA0mqZw8OHwY8IFqkaZV9hEFaV1E71HL4c+9wcdeS2aCItiRaCQJnovZC+MfwTO5hRoIixQ/yjN6+j994XxrGtJt4DzwBbgdaSdpSiW1RBSBcKKnw74AzEYpoku7zbwAAAAAElFTkSuQmCC";
  123. html+= "<div id='plugin_analysis_vip_movie_box_"+vipHelper.eleId+"' style='z-index:1145141919810;'>";
  124. html+= "<div class='plugin_item open_page_inner_source'><img src='"+vipImgBase64+"'>";
  125. html+= "<div class='play_source_box'>";
  126. html+= "<div class='inner_table_box'>";
  127. html+= "<table style=''><tr>";
  128. for(var playLineIndex=0; playLineIndex<this.defaultSourceArray.length; playLineIndex++){
  129. if(playLineIndex%3==0){
  130. html +="<tr>";
  131. html += "<td data-url='"+this.defaultSourceArray[playLineIndex].url+"'>"+this.defaultSourceArray[playLineIndex]['name']+"</td>";
  132. continue;
  133. }
  134. html += "<td data-url='"+this.defaultSourceArray[playLineIndex].url+"'>"+this.defaultSourceArray[playLineIndex]['name']+"</td>";
  135. if((playLineIndex+1)%3==0){
  136. html +="</tr>";
  137. }
  138. }
  139. html+= "</tr></table>";
  140. html+= "</div></div>";
  141. html+= "</div>";
  142. html+= "</div>";
  143. $("body").append(html);
  144. var $vipMovieBox = $("#plugin_analysis_vip_movie_box_"+vipHelper.eleId+"");
  145. var $playSourceBox = $("#plugin_analysis_vip_movie_box_"+vipHelper.eleId+">.plugin_item>.play_source_box");
  146. var btnHeight = $vipMovieBox.height();
  147. var playSourceBoxHeight = $playSourceBox.height();
  148. var playSourceBoxTop = (playSourceBoxHeight-btnHeight)*0.3;
  149. $playSourceBox.css("top","-"+playSourceBoxTop+"px");
  150. };
  151. vipHelper.comprehensiveAnalysis=function(videoUrl, newWindow){
  152. var jumpWebsite = "https://tv.wandhi.com/go.html?url="+videoUrl;
  153. if(newWindow && (typeof GM_openInTab==="function")){
  154. GM_openInTab(jumpWebsite, {active: true});
  155. }else{
  156. location.href = jumpWebsite;
  157. }
  158. };
  159.  
  160. vipHelper.applyParse = function(sourceUrl, videoUrl) {
  161. var node = "";
  162. var playerNodes = vipHelper.playerNodes;
  163. for(var m in playerNodes) {
  164. if(videoUrl.indexOf(playerNodes[m].url)!= -1){
  165. node = playerNodes[m].node;
  166. break;
  167. }
  168. }
  169.  
  170. if (node && $(node).length > 0) {
  171. $("#play-iframe-outer-7788op").remove();
  172. var playHtml = "<div id='play-iframe-outer-7788op' style='width:100%;height:100%;'><iframe allowtransparency=true frameborder='0' scrolling='no' allowfullscreen=true allowtransparency=true name='jx_play' style='height:100%;width:100%' id='play-iframe-6677i-7788'></iframe></div>";
  173. $(node).html(playHtml);
  174. var iframeSrc = sourceUrl + videoUrl;
  175. $("#play-iframe-6677i-7788").attr("src", iframeSrc);
  176.  
  177. $("#plugin_analysis_vip_movie_box_"+vipHelper.eleId+" >.plugin_item>.play_source_box>.inner_table_box> table td").removeClass("td_hover");
  178. $("#plugin_analysis_vip_movie_box_"+vipHelper.eleId+" >.plugin_item>.play_source_box>.inner_table_box> table td[data-url='"+sourceUrl+"']").addClass("td_hover");
  179. }
  180. };
  181.  
  182. vipHelper.operation=function(){
  183. $("body").on("click", "#plugin_analysis_vip_movie_box_"+vipHelper.eleId+" .jump_analysis_website", function(){
  184. vipHelper.comprehensiveAnalysis(window.location.href, true);
  185. });
  186. var $vipMovieBox = $("#plugin_analysis_vip_movie_box_"+vipHelper.eleId+">.open_page_inner_source");
  187. var $playSourceBox = $("#plugin_analysis_vip_movie_box_"+vipHelper.eleId+">.plugin_item>.play_source_box");
  188. $vipMovieBox.on("mouseover", () => {
  189. $playSourceBox.show();
  190. });
  191. $vipMovieBox.on("mouseout", () => {
  192. $playSourceBox.hide();
  193. });
  194. $("#plugin_analysis_vip_movie_box_"+vipHelper.eleId+" >.plugin_item>.play_source_box>.inner_table_box> table td").on("click", function(){
  195. var playUrl = window.location.href;
  196. var selectedSourceUrl = $(this).attr("data-url");
  197. vipHelper.lastSelectedSourceUrl = selectedSourceUrl;
  198. GM_setValue("lastSelectedSourceUrl_bestvip", selectedSourceUrl);
  199. vipHelper.applyParse(selectedSourceUrl, playUrl);
  200. })
  201. };
  202.  
  203. vipHelper.listenForUrlChanges = function() {
  204. var lastHref = window.location.href;
  205.  
  206. var handleUrlChange = function() {
  207. if (window.location.href !== lastHref) {
  208. lastHref = window.location.href;
  209. vipHelper.currentHref = window.location.href;
  210.  
  211. if (vipHelper.isRun() && vipHelper.lastSelectedSourceUrl) {
  212. setTimeout(function() {
  213. vipHelper.applyParse(vipHelper.lastSelectedSourceUrl, window.location.href);
  214. }, 1000);
  215. }
  216. }
  217. };
  218.  
  219. window.addEventListener('popstate', handleUrlChange);
  220.  
  221. setInterval(handleUrlChange, 500);
  222. };
  223.  
  224. vipHelper.start=function(){
  225. if(vipHelper.isRun() && window.top==window.self){
  226. vipHelper.getServerSource();
  227.  
  228. var savedSourceUrl = GM_getValue("lastSelectedSourceUrl_bestvip", null);
  229. if (savedSourceUrl) {
  230. vipHelper.lastSelectedSourceUrl = savedSourceUrl;
  231. setTimeout(function() {
  232. vipHelper.applyParse(savedSourceUrl, window.location.href);
  233. }, 1000);
  234. }
  235. vipHelper.listenForUrlChanges();
  236. }
  237. };
  238. vipHelper.start();
  239.  
  240. })();