- // ==UserScript==
- // @name 视频实时下载解析,支持抖音、快手
- // @name:zh 视频实时下载解析,支持抖音、快手
- // @name:zh-TW 视频实时下载解析,支持抖音、快手
- // @namespace shipin_downspace_20240121
- // @version 1.1.1
- // @description 功能短视频去水印下载:支持抖音、快手【脚本长期维护更新,完全免费,无广告,仅限学习交流!!QQ:2394856795】
- // @description:zh 功能短视频去水印下载:支持抖音、快手【脚本长期维护更新,完全免费,无广告,仅限学习交流!!QQ:2394856795】
- // @description:zh-TW 功能短視頻去水印下載:支援抖音、快手【指令碼或直譯式程式長期維護更新,完全免費,無廣告,僅限學習交流!!QQ:2394856795】
- // @author ahonker
- // @icon data:image/png;base64,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
- // @include *://*.youku.com/v_*
- // @include *://*.iqiyi.com/v_*
- // @include *://*.iqiyi.com/w_*
- // @include *://*.iqiyi.com/a_*
- // @include *://*.iqiyi.com/resource/pcw/play/*
- // @include *://*.le.com/ptv/vplay/*
- // @include *://v.qq.com/x/cover/*
- // @include *://v.qq.com/x/page/*
- // @include *://v.qq.com/tv/*
- // @include *://*.tudou.com/listplay/*
- // @include *://*.tudou.com/albumplay/*
- // @include *://*.tudou.com/programs/view/*
- // @include *://*.mgtv.com/b/*
- // @include *://film.sohu.com/album/*
- // @include *://tv.sohu.com/v/*
- // @include *://*.baofeng.com/play/*
- // @include *://vip.pptv.com/show/*
- // @include *://v.pptv.com/show/*
- // @include *://www.le.com/ptv/vplay/*
- // @include *://www.wasu.cn/Play/show/*
- // @include *://*.1905.com/video/*
- // @include *://*.1905.com/play/*
- // @include *://*.1905.com/*/play/*
- // @include *://www.miguvideo.com/mgs/*
- // @include *://m.v.qq.com/x/cover/*
- // @include *://m.v.qq.com/x/page/*
- // @include *://m.v.qq.com/*
- // @include *://m.iqiyi.com/v_*
- // @include *://m.iqiyi.com/w_*
- // @include *://m.iqiyi.com/a_*
- // @include *://m.youku.com/alipay_video/*
- // @include *://m.youku.com/video/id_*
- // @include *://m.mgtv.com/b/*
- // @include *://m.tv.sohu.com/v/*
- // @include *://m.film.sohu.com/album/*
- // @include *://m.le.com/ptv/vplay/*
- // @include *://m.pptv.com/show/*
- // @include *://m.acfun.cn/v/*
- // @include *://m.wasu.cn/Play/show/*
- // @include *://www.baidu.com/*
- // @include *://www.so.com/s*
- // @include *://www.sogou.com/web*
- // @include *://www.sogou.com/sogou*
- // @include *://cn.bing.com/search*
- // @include *://www.bing.com/search*
- // @include *://www4.bing.com/search*
- // @include *://so.toutiao.com/search*
- // @include *://www.google.com/search*
- // @include *://www.google.com.hk/search*
- // @include *://duckduckgo.com*
- // @include *://www.bilibili.com/**
- // @include *://search.bilibili.com/**
- // @include *://space.bilibili.com/**
- // @include *://www.bilibili.com/read/**
- // @include *://*.zhihu.com/*
- // @include *://www.douyin.com/*
- // @include *://www.kuaishou.com/*
- // @include *://www.youtube.com
- // @include *://www.youtube.com/
- // @include *://www.youtube.com/watch*
- // @include *://www.facebook.com/*
- // @include *://yt1s.com/facebook-downloader
- // @include *://*.douyinvod.com/*
- // @require https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery/3.2.1/jquery.min.js
- // @require https://gf.qytechs.cn/scripts/454236-findandreplacedomtext-huahuacat/code/findAndReplaceDOMText-huahuacat.js?version=1112990
- // @connect bilibili.com
- // @connect sct.staticj.top
- // @grant unsafeWindow
- // @grant GM_openInTab
- // @grant GM.openInTab
- // @grant GM_getValue
- // @grant GM.getValue
- // @grant GM_setValue
- // @grant GM.setValue
- // @grant GM_download
- // @grant GM_xmlhttpRequest
- // @grant GM.xmlHttpRequest
- // @grant GM_registerMenuCommand
- // @license AGPL License
- // @charset UTF-8
- // @run-at document-idle
- // ==/UserScript==
- (function () {
- 'use strict';
- /**
- * 脚本遵循AGPL License开源协议;在协议允许的范围类,可以自由修改
- * 开完万岁!!
- */
- //共有方法,全局共享
- function CommonFunction(){
- this.GMgetValue = function (name, value=null) {
- let storageValue = value;
- if (typeof GM_getValue === "function") {
- storageValue = GM_getValue(name, value);
- } else if(typeof GM.setValue === "function"){
- storageValue = GM.getValue(name, value);
- }else{
- var arr = window.localStorage.getItem(name);
- if(arr != null){
- storageValue = arr
- }
- }
- return storageValue;
- };
- this.GMsetValue = function(name, value){
- if (typeof GM_setValue === "function") {
- GM_setValue(name, value);
- } else if(typeof GM.setValue === "function"){
- GM.setValue(name, value);
- }else{
- window.localStorage.setItem(name, value)
- }
- };
- this.GMaddStyle = function(css){
- var myStyle = document.createElement('style');
- myStyle.textContent = css;
- var doc = document.head || document.documentElement;
- doc.appendChild(myStyle);
- };
- this.GMopenInTab = function(url, options={"active":true, "insert":true, "setParent":true}){
- if (typeof GM_openInTab === "function") {
- GM_openInTab(url, options);
- } else {
- GM.openInTab(url, options);
- }
- };
- this.addScript = function(url){
- var s = document.createElement('script');
- s.setAttribute('src',url);
- document.body.appendChild(s);
- };
- this.randomNumber = function(){
- return Math.ceil(Math.random()*100000000);
- };
- this.request = function(mothed, url, param){ //网络请求
- return new Promise(function(resolve, reject){
- GM_xmlhttpRequest({
- url: url,
- method: mothed,
- data:param,
- onload: function(response) {
- var status = response.status;
- var playurl = "";
- if(status==200||status=='200'){
- var responseText = response.responseText;
- resolve({"result":"success", "data":responseText});
- }else{
- reject({"result":"error", "data":null});
- }
- }
- });
- })
- };
- this.addCommonHtmlCss = function(){
- var cssText =
- `
- @keyframes fadeIn {
- 0% {opacity: 0}
- 100% {opacity: 1}
- }
- @-webkit-keyframes fadeIn {
- 0% {opacity: 0}
- 100% {opacity: 1}
- }
- @-moz-keyframes fadeIn {
- 0% {opacity: 0}
- 100% {opacity: 1}
- }
- @-o-keyframes fadeIn {
- 0% {opacity: 0}
- 100% {opacity: 1}
- }
- @-ms-keyframes fadeIn {
- 0% {opacity: 0}
- 100% {opacity: 1}
- }
- @keyframes fadeOut {
- 0% {opacity: 1}
- 100% {opacity: 0}
- }
- @-webkit-keyframes fadeOut {
- 0% {opacity: 1}
- 100% {opacity: 0}
- }
- @-moz-keyframes fadeOut {
- 0% {opacity: 1}
- 100% {opacity: 0}
- }
- @-o-keyframes fadeOut {
- 0% {opacity: 1}
- 100% {opacity: 0}
- }
- @-ms-keyframes fadeOut {
- 0% {opacity: 1}
- 100% {opacity: 0}
- }
- .web-toast-kkli9{
- position: fixed;
- background: rgba(0, 0, 0, 0.7);
- color: #fff;
- font-size: 14px;
- line-height: 1;
- padding:10px;
- border-radius: 3px;
- left: 50%;
- transform: translateX(-50%);
- -webkit-transform: translateX(-50%);
- -moz-transform: translateX(-50%);
- -o-transform: translateX(-50%);
- -ms-transform: translateX(-50%);
- z-index: 999999999999999999999999999;
- white-space: nowrap;
- }
- .fadeOut{
- animation: fadeOut .5s;
- }
- .fadeIn{
- animation:fadeIn .5s;
- }
- `;
- this.GMaddStyle(cssText);
- };
- this.webToast = function(params) { //小提示框
- var time = params.time;
- var background = params.background;
- var color = params.color;
- var position = params.position; //center-top, center-bottom
- var defaultMarginValue = 50;
-
- if(time == undefined || time == ''){
- time = 1500;
- }
-
- var el = document.createElement("div");
- el.setAttribute("class", "web-toast-kkli9");
- el.innerHTML = params.message;
- //背景颜色
- if(background!=undefined && background!=''){
- el.style.backgroundColor=background;
- }
- //字体颜色
- if(color!=undefined && color!=''){
- el.style.color=color;
- }
-
- //显示位置
- if(position==undefined || position==''){
- position = "center-bottom";
- }
-
- //设置显示位置,当前有种两种形式
- if(position==="center-bottom"){
- el.style.bottom = defaultMarginValue+"px";
- }else{
- el.style.top = defaultMarginValue+"px";
- }
- el.style.zIndex=999999;
-
- document.body.appendChild(el);
- el.classList.add("fadeIn");
- setTimeout(function () {
- el.classList.remove("fadeIn");
- el.classList.add("fadeOut");
- /*监听动画结束,移除提示信息元素*/
- el.addEventListener("animationend", function () {
- document.body.removeChild(el);
- });
- el.addEventListener("webkitAnimationEnd", function () {
- document.body.removeChild(el);
- });
- }, time);
- };
- this.filterStr = function(str){
- if(!str) return "";
- str = str.replace(/\t/g,"");
- str = str.replace(/\r/g,"");
- return encodeURIComponent(str)
- };
- this.getParamterQueryUrl = function(text, tag) { //查询GET请求url中的参数
- if(text.indexOf("?")!=-1){ //选取?后面的字符串,兼容window.location.search,前面的?不能去掉
- var textArray = text.split("?");
- text = "?"+textArray[textArray.length-1];
- }
- var t = new RegExp("(^|&)" + tag + "=([^&]*)(&|$)");
- var a = text.substr(1).match(t);
- if (a != null){
- return a[2];
- }
- return "";
- };
- this.getEndHtmlIdByUrl = function(url) { //获得以html结束的ID
- if(url.indexOf("?")!=-1){
- url = url.split("?")[0]
- }
- if(url.indexOf("#")!=-1){
- url = url.split("#")[0]
- }
- var splitText = url.split("/");
- var idText = splitText[splitText.length-1];
- idText = idText.replace(".html","");
- return idText;
- };
- this.getEcommercePlatform=function(url = window.location.href){
- let platform = "";
- if(url.indexOf("detail.tmall")!=-1 || url.indexOf("tmall.hk")!=-1 || url.indexOf("pages.tmall.com")!=-1){
- platform = "tmall";
- }else if(url.indexOf("taobao.com")!=-1 || url.indexOf("maiyao.liangxinyao.com")!=-1){
- platform = "taobao";
- }else if(url.indexOf("jd.com")!=-1 || url.indexOf("npcitem.jd.hk")!=-1 || url.indexOf("yiyaojd.com")!=-1){
- platform = "jd";
- }else if(url.indexOf("detail.vip.com")!=-1 || url.indexOf("www.vipglobal.hk")!=-1){
- platform = "vpinhui";
- }
- return platform;
- }
- this.isPC = function(){
- var userAgentInfo = navigator.userAgent;
- var Agents = ["Android", "iPhone","SymbianOS", "Windows Phone", "iPad", "iPod"];
- var flag = true;
- for (var v = 0; v < Agents.length; v++) {
- if (userAgentInfo.indexOf(Agents[v]) > 0) {
- flag = false;
- break;
- }
- }
- return flag;
- };
- this.getBilibiliBV=function(){
- var pathname = window.location.pathname;
- var bv = pathname.replace("/video/","").replace("/","");
- return bv;
- };
- this.getSystemOS=function(){
- var u = navigator.userAgent;
- if (!!u.match(/compatible/i) || u.match(/Windows/i)) {
- return 'windows';
- } else if (!!u.match(/Macintosh/i) || u.match(/MacIntel/i)) {
- return 'macOS';
- } else if (!!u.match(/iphone/i) || u.match(/Ipad/i)) {
- return 'ios';
- } else if (!!u.match(/android/i)) {
- return 'android';
- } else {
- return 'other';
- }
- };
- this.RPCDownloadFile = function(fileName, url, savePath="D:/", RPCURL="ws://localhost:16800/jsonrpc", RPCToken="") {
- const self = this;
- if(!savePath){
- savePath = "D:/";
- }
- if(!RPCURL){
- RPCURL = "ws://localhost:16800/jsonrpc";
- }
- let options = { //下载配置文件
- "dir":savePath,
- "max-connection-per-server": "16",
- "header":["User-Agent:"+navigator.userAgent+"", "Cookie:"+document.cookie+"", "Referer:"+window.location.href+""]
- }
- if(!!fileName) {
- options.out = fileName;
- }
- let jsonRPC = {
- "jsonrpc": "2.0",
- "id": "huahuacat",
- "method": "aria2.addUri",
- "params": [[url], options],
- }
- if (!!RPCToken) {
- jsonRPC.params.unshift("token:" + RPCToken); // 必须要加在第一个
- }
- return new Promise(function(resolve, reject) {
- var webSocket = new WebSocket(RPCURL);
- webSocket.onerror = function(event) {
- console.log("webSocket.onerror", event);
- reject("Aria2连接错误,请打开Aria2和检查RPC设置!");
- }
- webSocket.onopen = function(){
- webSocket.send(JSON.stringify(jsonRPC));
- }
- webSocket.onmessage = function(event){
- let result = JSON.parse(event.data);
- switch (result.method) {
- case "aria2.onDownloadStart":
- resolve("Aria2 开始下载【"+fileName+"】");
- webSocket.close();
- break;
- case "aria2.onDownloadComplete":
- break;
- default:
- break;
- }
- }
- });
- };
- this.getElementObject = function(selector, allowEmpty = true, delay=10, maxDelay=2000){
- return new Promise((resolve,reject) =>{
- let totalDelay = 0;
- let element = document.querySelector(selector);
- let result = allowEmpty ? !!element : (!!element && !!element.innerHTML);
- if(result){
- resolve(element);
- }
- let elementInterval = setInterval(()=>{
- if(totalDelay >= maxDelay){ //总共检查2s,如果还是没找到,则返回
- clearInterval(elementInterval);
- resolve(null);
- }
- element = document.querySelector(selector);
- result = allowEmpty ? !!element : (!!element && !!element.innerHTML);
- if(result){
- clearInterval(elementInterval);
- resolve(element);
- }else{
- totalDelay += delay;
- }
- }, delay);
- });
- };
- /**
- * @param {Object} time
- * @param {Object} format
- * 时间格式化
- * DateFormat(new Date(dateCreated), "yyyy-MM-dd hh:mm:ss")
- */
- this.DateFormat = function(time, format) {
- var o = {
- "M+": time.getMonth() + 1, //月份
- "d+": time.getDate(), //日
- "h+": time.getHours(), //小时
- "m+": time.getMinutes(), //分
- "s+": time.getSeconds(), //秒
- "q+": Math.floor((time.getMonth() + 3) / 3), //季度
- "S": time.getMilliseconds() //毫秒
- };
- if(/(y+)/.test(format)){
- format = format.replace(RegExp.$1, (time.getFullYear() + "").substr(4 - RegExp.$1.length));
- }
- for(var k in o){
- if(new RegExp("(" + k + ")").test(format)){
- format = format.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
- }
- }
- return format;
- }
- }
- //全局弹窗对象
- const popup = (function(){
- class Popup {
- constructor() {
- this.mask = document.createElement('div')
- this.setStyle(this.mask, {
- "width": '100%',
- "height": '100%',
- "backgroundColor": 'rgba(0, 0, 0, .6)',
- "position": 'fixed',
- "left": "0px",
- "top": "0px",
- "bottom":"0px",
- "right":"0px",
- "z-index":"99999"
- })
- // 创建中间显示内容的水平并垂直居中的div
- this.content = document.createElement('div')
- this.setStyle(this.content, {
- "max-width": '450px',
- "width":"100%",
- "max-height": '600px',
- "backgroundColor": '#fff',
- "boxShadow": '0 0 2px #999',
- "position": 'absolute',
- "left": '50%',
- "top": '50%',
- "transform": 'translate(-50%,-50%)',
- "borderRadius": '3px'
- })
- // 将这个小div放在遮罩中
- this.mask.appendChild(this.content)
- }
- middleBox(param) {
- // 先清空中间小div的内容 - 防止调用多次,出现混乱
- this.content.innerHTML = ''
- let title = '默认标题内容';
- // 检测参数类型
- if({}.toString.call(param) === '[object String]') {
- title = param
- } else if({}.toString.call(param) === '[object Object]') {
- title = param.title
- }
- // 将遮罩放在body中显示
- document.body.appendChild(this.mask)
- // 给中间的小div设置默认的排版
- // 上面标题部分
- this.title = document.createElement('div')
- // 设置样式
- this.setStyle(this.title, {
- "width": '100%',
- "height": '40px',
- "lineHeight": '40px',
- "boxSizing": 'border-box',
- "background-color":"#FF4D40",
- "color": '#FFF',
- "text-align": 'center',
- "font-weight":"700",
- "font-size":"16px"
-
- })
- // 设置默认标题内容
- this.title.innerText = title
- // 将标题部分放在中间div中
- this.content.appendChild(this.title)
- // 关闭按钮
- this.closeBtn = document.createElement('div')
- // 设置内容
- this.closeBtn.innerText = '×'
- // 设置样式
- this.setStyle(this.closeBtn, {
- "textDecoration": 'none',
- "color": '#666',
- "position": 'absolute',
- "right": '10px',
- "top": '0px',
- "fontSize": '25px',
- "color": '#FFF',
- "display":"inline-block",
- "cursor":"pointer"
- })
- // 将关闭按钮放在中间小div中
- this.title.appendChild(this.closeBtn)
- this.closeBtn.onclick = () => this.close()
- }
- // 弹出提示框
- dialog(param) {
- this.middleBox(param);
- this.dialogContent = document.createElement('div')
- this.setStyle(this.dialogContent,{
- "padding":"15px",
- "max-height":"400px"
- })
- this.dialogContent.innerHTML = param.content;
- this.content.appendChild(this.dialogContent)
- param.onContentReady(this);
- }
- close() {
- document.body.removeChild(this.mask)
- window.location.reload();
- }
- setStyle(ele, styleObj) { // 设置样式的函数
- for(let attr in styleObj){
- ele.style[attr] = styleObj[attr]
- }
- }
- }
- let popup = null;
- return (function() {
- if(!popup) {
- popup = new Popup()
- }
- return popup;
- })()
- })();
- //全局统一方法对象
- const commonFunctionObject = new CommonFunction();
- commonFunctionObject.addCommonHtmlCss(); //统一html、css元素添加
- let functionController = null;
- //相关功能关闭控制
- functionController = commonFunctionObject.GMgetValue("setingData");
- if(!functionController){
- functionController={
- "bilibiliHelper":true,"superVideoHelper":true,
- "abroadVideoHelper":true,
- "searchEnginesNavigation":true,"zhihuHelper":true,
- "shortVideoDownload":true
- }
- }
- //用户功能设置函数
- function usersSeting(){
- var bilibiliHelper=true, superVideoHelper=true, abroadVideoHelper=true,
- searchEnginesNavigation=true, zhihuHelper=true, shortVideoDownload=true;
- var isUpdateStorage = false;
- if(!functionController.hasOwnProperty("bilibiliHelper")){
- functionController.bilibiliHelper = true;
- isUpdateStorage = true;
- }else{
- bilibiliHelper = functionController.bilibiliHelper;
- }
- if(!functionController.hasOwnProperty("superVideoHelper")){
- functionController.superVideoHelper = true;
- isUpdateStorage = true;
- }else{
- superVideoHelper = functionController.superVideoHelper;
- }
- if(!functionController.hasOwnProperty("abroadVideoHelper")){
- functionController.abroadVideoHelper = true;
- isUpdateStorage = true;
- }else{
- abroadVideoHelper = functionController.abroadVideoHelper;
- }
- if(!functionController.hasOwnProperty("searchEnginesNavigation")){
- functionController.searchEnginesNavigation = true;
- isUpdateStorage = true;
- }else{
- searchEnginesNavigation = functionController.searchEnginesNavigation;
- }
- if(!functionController.hasOwnProperty("zhihuHelper")){
- functionController.zhihuHelper = true;
- isUpdateStorage = true;
- }else{
- zhihuHelper = functionController.zhihuHelper;
- }
- if(!functionController.hasOwnProperty("shortVideoDownload")){
- functionController.shortVideoDownload = true;
- isUpdateStorage = true;
- }else{
- shortVideoDownload = functionController.shortVideoDownload;
- }
- if(isUpdateStorage){
- commonFunctionObject.GMsetValue("setingData",functionController);
- }
- var setingData=[
- {"tag":"bilibiliHelper", "name":"B站使用加强(视频下载支持批量、浏览记录、一键三连)", "checked":bilibiliHelper},
- {"tag":"zhihuHelper", "name":"知乎使用加强(内容标识、问答显示优化、视频下载等)", "checked":zhihuHelper},
- {"tag":"superVideoHelper", "name":"全网VIP视频解析(支持爱奇艺、腾讯视频、B站番剧等)", "checked":superVideoHelper},
- {"tag":"searchEnginesNavigation", "name":"搜索引擎使用加强(适配百度、360、搜狗、必应、Google等)", "checked":searchEnginesNavigation},
- {"tag":"shortVideoDownload", "name":"短视频去水印下载(支持抖音、快手等)", "checked":shortVideoDownload},
- {"tag":"abroadVideoHelper", "name":"国外视频解析下载(支持油管、Facebook等)", "checked":abroadVideoHelper}
- ]
- var content = "";
- for(var i=0; i<setingData.length;i++){
- var one = setingData[i];
- content += `
- <div style="padding: 5px 0px;">
- <input style="display:inline-block;width: 15px;height: 15px;display: inline-block;vertical-align: middle; -webkit-appearance:checkbox;margin-bottom: 3px;cursor: pointer;" name="Checkbox" type="checkbox" data-tag="`+one.tag+`" `+(one.checked ? "checked" : "")+`>
- <label style="display:inline-block;font-size: 14px;margin:3px 0;vertical-align: middle;font-weight:500;color:#000;">`+one.name+`</label>
- </div>
- `
- }
- popup.dialog({
- "title":"功能开关",
- "content":content,
- "onContentReady":function($that){
- $that.dialogContent.querySelectorAll("input[type='checkbox']").forEach(function(checkbox){
- checkbox.addEventListener("click", function(e){
- var tag = e.target.getAttribute("data-tag");
- var checked = e.target.checked;
- functionController[tag] = checked;
- commonFunctionObject.GMsetValue("setingData",functionController);
- commonFunctionObject.webToast({"message":"操作成功", "background":"#FF4D40"});
- });
- })
- }
- });
- }
-
- // 菜单按钮弹框
- if(commonFunctionObject.isPC()){
- GM_registerMenuCommand("功能开关",()=>usersSeting());
- }else{
- functionController.bilibiliHelper = false;
- functionController.abroadVideoHelper = false;
- functionController.searchEnginesNavigation = false;
- functionController.zhihuHelper = false;
- }
-
- /**
- * 超级解析助手功能
- */
-
- //VIP视频解析接口可自定义;请严格按照格式添加
- //showType=1(仅PC), showType=2(仅mobile), showType=3(同时显示)
- const originalInterfaceList = [
-
- ];
- function SuperVideoHelper(originalInterfaceList){
- this.originalInterfaceList = originalInterfaceList;
- this.elementId = Math.ceil(Math.random()*100000000)+"mmx";
- this.customInterfaceKey = "custom_interface_key_dddsdxxa";
- this.quicklyInterfaceKey = "custom_quickly_interface_key_dddsdxxa";
- this.defaultQuicklyInterfaceIndex = 1;
- this.isRun = function(){ //判断是否运行
- const host = window.location.host;
- const urls = ["www.iqiyi.com","v.qq.com","youku.com", "www.le.com","mgtv.com","sohu.com", "acfun.cn","bilibili.com",
- "baofeng.com","pptv.com","1905.com","miguvideo.com","sports.iqiyi.com"];
- var result = false;
- if(!host.startsWith("m.")){ //不是移动端执行
- for(var i=0; i<urls.length;i++){ //不是B站直接判断
- if(window.location.host.indexOf("bilibili.com")==-1){
- if(window.location.host.indexOf(urls[i])!=-1){
- result = true;
- break;
- }
- }else{
- if(window.location.href.indexOf("www.bilibili.com/bangumi/play")!=-1){ //是B站只有番剧才开启VIP解析
- result = true;
- break;
- }
- }
- }
- }
- return result;
- };
- this.showPlayerWindow = function(playObject){ //显示播放窗口
- var url = playObject.url + window.location.href;
- commonFunctionObject.GMopenInTab(url);
- };
- this.analysisCustomInterface = function(){ //自定义接口解析
- var customInterface = commonFunctionObject.GMgetValue(this.customInterfaceKey,"");
- if(!!customInterface){
- try{
- var customizeInterfaceList = new Array();
- var analysisArray = customInterface.split("\n");
- for(var i=0;i<analysisArray.length;i++){
- var onePiece = analysisArray[i];
- if(!!onePiece && onePiece.indexOf(",")!=-1){
- var onePieceArray = onePiece.split(",");
-
- if(onePieceArray.length==2 && !!onePieceArray[0] && /(http|https):\/\/\S*/.test(onePieceArray[1])){
- customizeInterfaceList.push({"name":""+onePieceArray[0]+"","url":""+onePieceArray[1]+"", "showType":1});
- }
- }
- }
- this.originalInterfaceList = customizeInterfaceList.concat(this.originalInterfaceList);
- }catch(e){}
- }
- };
- this.getQuicklyInterfaceIndex = function(){
- var quicklyInterfaceIndexString = commonFunctionObject.GMgetValue(this.quicklyInterfaceKey,"")+"";
- var quicklyInterfaceIndex = this.defaultQuicklyInterfaceIndex;
- if(!!quicklyInterfaceIndexString){
- quicklyInterfaceIndex = parseInt(quicklyInterfaceIndexString);
- }
- if(this.originalInterfaceList.length-1<quicklyInterfaceIndex){
- quicklyInterfaceIndex = this.defaultQuicklyInterfaceIndex;
- }
- return quicklyInterfaceIndex;
- };
- this.addHtmlElements = function(){ //添加HTML
- const vipVideoImageBase64 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAC9klEQVRoQ+2ZPWgVQRDH/7/CWqOIYOFHFbRSjJhGMGDpByoIago70cqvUtQgdipWFqawMWghGIidhcHKQAJqEURBRfED1CCCjc3IPu4em31775J7d3m8cAtX3O7szP7nPzszx6EeH/T4+VUD6DaDTQbMbE+3D7MY+8Ckkw8BPFuMki7KDtUAuuh9Z3oZMtBljxY2X9eBwq4raWPNQEmOLKxm+TBgZqsknQ1dAVzNco+ZhWsm6ZakHZLC1mQyrZ5OX2RvzMxnSa8lzQJ/YwLzGDCze5JOeoI/gbVtAMxJ6vPW7wKnkr4qbEuaxccDcGWBsfNV0mjMmSGAg5LGA6XbgFehITPbLel5MN84ZAUAUjMPgWO+zZY7YGbvJW0OvRoB8EjSEW9+BhhIvOvCp0wGfPPbgZfpRAzATUnn56GEmJyLd39cBNxeF99FADTa42BskuQef4wDh9oB2CXpRbDpMPA4nTOz05LuBDLrgW+dAACGIkxfkHTDm/8DrMwEkBxgOskkqdwEcMAD4GLf3YF0PACOe+uFGMgA4Bj4EAAbAGbcXLQOmNklSdeCTRuBT2bWL+lNsLYfeFIRgH2SJgJ7GwCXYjMBrJb0K9jUiHEzG5F02VubA9b4skXvQMiAmW2VdFSSn24/As0kk1mJzeyppL3ewaaBnWY2K2mLNz8S5ueCAMLwz3q/DZxreweSe3BC0v1Ai7tkYXrsB96WwMBCAfQBv3MBJCD+SVrhaXaZ54z3PgUMhpYrZKCF7bbNnJk5BhwT6fghyW8thoGxigE4my6tXwemQlt5AGI1oamDSIFLmCuURiW5BOGPL8C7drGV206b2XdJ6yJKxoDhmPKCIeS61ZZClncxFgLAtcyxrnEwRmknDFQFIFYTWnJ/CVmoGgYSj7Z81OR86Lg7sOgPmnY6s0IpN4TyYrDb6zWAmoEOPVCHUIcO7Hh7/YemYxcWU7AMf3BkNGDF/FP9rkwGqjddkoWWv5Ql6V1yNXUdWHKXBwZ7noH/dP+HQNqheToAAAAASUVORK5CYII=";
- const quicklyBase64 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAv1JREFUWEfFl02IVWUYx39/EDdKoCiCGYquxNw404QL+wA/wIUfA5luMotk0jGoiDQFv1oMqCCOFkYQtopczKxMGsUUF2bNKsWFKBroJtLI2qjwl+dy7uV47jnnnntnygcOF97nfd7/777nfZ7nPeIZm8Zb3/ZsYBEwE5gFzAGmAX8lz9/AA0l7QnvcAGwvBd4E1gOTK/yxvQExZgDbbwHvAq9UEE1POSzpwzEB2D4KbG1TuD79G0nvdAxg+2egp0PxCBuS1NsRgG2PQbgeelbS0rYBbJ8DXisAuAdcB2Ykp7+M8ztJGyoD2H4J+AxYU7DqoKQP6j7b24AjJQQDknaUAtieDvQmz/KSxUYkNfltx07FjuVZv6RjhQC21wIHgHkV3vc2SZERTWb7d+CFHFevpKFcANvvA19UEK5PWSnphwKAS8DLGd8/wIuSbjcB2I4SubsN8Zj6iaSDBQB/AlMzvq8lvRdjTwEk5XSkTfHadEl5fyYOYRzGrC2TdOYpANvdwC+diKditgNXkxRcBSzLWe+CpFfr4w1q21eABZmAx8DFkrzvhHejpG/zAPqSbhaCtUfSv7YHgE87UcqJOSapPz1eqRDZ/h54Y4wQlyVls6H6fcD2r0BXpxB5h7QpC1otbjtq/ZRW8zL+nyS9XhTTqhR3SRpNB9u+k1y3qnAMS4qKWmhFlXAlsC/Z8lvAifodLlayPQysrkDQI6k0tfOKx0TgGjA3I7BO0sn6mO1DwEclED9KWtEKMg/gOLA5J/CupOczryN2aUlBneiTFGuVWrYUR6pFyhVZd86ZeARMyATcABZL+qMygO043eeBhQVBo5KiXDfM9iQgOlvWaq22lXj406X4c2BnQdDNaCqSTmUA4h2fzsRskfRlFfEGgO35QPTt53ICv0rEH2Z9tvcDu1LjtY+NquJpgLh8xCUkbb8B+9MnPwcgfUFttNhOANILxbfbIHBI0v2yxWx/DGwC3pYUpbptq52B5BYUPTryP2638fu/WKVu+F+SPAG7l/wh4NsJOQAAAABJRU5ErkJggg==";
- const currentHost = window.location.host;
-
- const quicklyInterfaceIndex = this.getQuicklyInterfaceIndex();
- var currentQuicklyInterfaceObject = null;
-
- var category_1_html = "";
- this.originalInterfaceList.forEach((item, index) => {
- if(item.showType != 2){
- var selected = ""
- if(index==quicklyInterfaceIndex){
- selected = "selected";
- currentQuicklyInterfaceObject = item;
- }
- category_1_html += "<span title='"+item.name+"' data-index='"+index+"' class='"+selected+"'>" + item.name + "</span>";
- }
- });
-
- //获得自定义位置
- var left = 0;
- var top = 120;
- var Position = commonFunctionObject.GMgetValue("Position_" + currentHost);
- if(!!Position){
- left = Position.left;
- top = Position.top;
- }
- var color = "#FF4D40";
- var hoverColor = "#000000";
- if(currentHost.indexOf("bilibili.com")!=-1){ //自定义主题
- color = "#fb7299";
- hoverColor = "#00B0E1";
- }
- var cssMould = `#vip_movie_box`+this.elementId+`{cursor:pointer; position:fixed; top:` + top + `px; left:` + left + `px; width:0px; z-index:99999999; font-size:16px; text-align:left;}
- #vip_movie_box`+this.elementId+` .img_box`+this.elementId+`{width:24px; height:32px;line-height:32px;text-align:center;background-color:`+color+`;}
- #vip_movie_box`+this.elementId+` .img_box`+this.elementId+`:hover{
- background: linear-gradient(30deg, #2a66ff 40%, `+color+`);
- }
- #vip_movie_box`+this.elementId+` .img_box`+this.elementId+`>img {width:20px; display:inline-block; vertical-align:middle;}
-
- #vip_movie_box`+this.elementId+` .showhide_box`+this.elementId+`{display:none;padding-left:5px;position: absolute;left: 24px;top: 0;}
- #vip_movie_box`+this.elementId+` .vip_mod_box_action_687ii{width:380px; max-height:400px; overflow-y:auto;background-color:rgba(241,241,241);}
- #vip_movie_box`+this.elementId+` .default-scrollbar-55678::-webkit-scrollbar{width:5px; height:1px;}
- #vip_movie_box`+this.elementId+` .default-scrollbar-55678::-webkit-scrollbar-thumb{box-shadow:inset 0 0 5px rgba(0, 0, 0, 0.2); background:#A8A8A8;}
- #vip_movie_box`+this.elementId+` .default-scrollbar-55678::-webkit-scrollbar-track{box-shadow:inset 0 0 5px rgba(0, 0, 0, 0.2); background:#F1F1F1;}
-
- #vip_movie_box`+this.elementId+` .vip_mod_box_action_687ii> .item_box`+this.elementId+`{margin-bottom:10px;}
- #vip_movie_box`+this.elementId+` .vip_mod_box_action_687ii> .item_box`+this.elementId+`:last-child{margin-bottom:0px;}
- #vip_movie_box`+this.elementId+` .vip_mod_box_action_687ii> .item_box`+this.elementId+` >.title`+this.elementId+`{font-size:14px; text-align:left;color:#000000;font-weight:600;margin:5px 3px;}
- #vip_movie_box`+this.elementId+` .vip_mod_box_action_687ii> .item_box`+this.elementId+` >.interface_box`+this.elementId+`{}
- #vip_movie_box`+this.elementId+` .vip_mod_box_action_687ii> .item_box`+this.elementId+` >.interface_box`+this.elementId+`>span{border-radius:3px;border-top:3px solid `+color+`; border-bottom:3px solid `+color+`;display:inline-block;width:calc(25% - 6px);width:-moz-calc(25% - 6px);width: -webkit-calc(25% - 6px);height:20px;line-height:20px;background-color:`+color+`;color:#FFF;cursor:pointer;margin:3px;text-align:center;overflow:hidden;white-space: nowrap;text-overflow: ellipsis;-o-text-overflow:ellipsis;font-size:12px!important;box-sizing:content-box!important;}
- #vip_movie_box`+this.elementId+` .vip_mod_box_action_687ii> .item_box`+this.elementId+` >.interface_box`+this.elementId+`>span:hover{border-top:3px solid `+hoverColor+`; border-bottom:3px solid `+hoverColor+`;}
- #vip_movie_box`+this.elementId+` .vip_mod_box_action_687ii> .item_box`+this.elementId+` >.interface_box`+this.elementId+`>span.selected{border-top:3px solid `+hoverColor+`; border-bottom:3px solid `+hoverColor+`;}
- #vip_movie_box`+this.elementId+` .vip_mod_box_action_687ii> .item_box`+this.elementId+` >.content`+this.elementId+`{font-size:12px;color:#000000;margin-left:3px;}
- `
- commonFunctionObject.GMaddStyle(cssMould);
-
- //加入HTML
- var htmlMould = `<div id='vip_movie_box`+this.elementId+`'>
- <div class='plugin_inner_`+this.elementId+`'>
- <div class="img_box`+this.elementId+`" id="img_box_jump_6667897iio"><img src='`+ vipVideoImageBase64 +`' title='选择解析线路'/></div>
- <div class='showhide_box`+this.elementId+`'>
- <div class='vip_mod_box_action_687ii default-scrollbar-55678'>
- <div class='item_box`+this.elementId+`'>
- <div class='title`+this.elementId+`'><b>接口添加</b></div>
- <div class='content`+this.elementId+`'>
- 对现有接口不满意?可添加自定义接口哟~<span id="img_set_6667897iio" style="display:inline-block;border-radius:2px;margin-left:5px;padding:3px 5px;background-color:#CCC;cursor:pointer;">添加接口</span>
- </div>
- <div class='title`+this.elementId+`'>
- <a style="font-size:13px;color:blue;" href="javascript:void(0);" target="_blank">接口请自行添加~</a>
- </div>
- </div>
- <div class='item_box`+this.elementId+`' style='min-height:80px;border:1px dashed #000;'>
- <div class='interface_box`+this.elementId+`'>
- ` + category_1_html + `
- </div>
- </div>
- <div class='item_box`+this.elementId+`' style="padding:10px 0px;">
- <div class='title`+this.elementId+`'><b>免责声明:</b></div>
- <div class='content`+this.elementId+`'>
- 1、<b style='color:red;'>需要使用VIP视频解析的,请自行添加接口</b>,版权问题请联系相关解析接口所有者,脚本不承担相关责任!"<br>
- 2、为创造良好的创作氛围,请大家支持正版!<br>
- 3、脚本仅限个人学习交流,使用即已代表您已经充分了解相关问题,否则后果自负,特此声明!<br>
- ** <b>脚本源码托管地址(含解析接口、使用教程):<a href="https://github.com/huahuacatTX/greasyfork" target="_blank" style="padding:0px 5px;color:red;">点我查看</a></b>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="img_box`+this.elementId+`" id="img_quickly_6667897iio"><img src='`+quicklyBase64+`' title='快速开始(当前所选接口:`+(currentQuicklyInterfaceObject==null ? '无' : currentQuicklyInterfaceObject.name)+`)'/></div>
- </div>
- `;
- $("body").append(htmlMould);
- };
- this.runEvent = function(){ //事件运行
- var that = this;
- $("#vip_movie_box"+this.elementId+" >.plugin_inner_"+this.elementId).on("mouseover", () => {
- $(".showhide_box"+this.elementId).show();
- });
- $("#vip_movie_box"+this.elementId+" >.plugin_inner_"+this.elementId).on("mouseout", () => {
- $(".showhide_box"+this.elementId).hide();
- });
- $("body").on("click","#vip_movie_box"+this.elementId+" .vip_mod_box_action_687ii>.item_box"+this.elementId+">.interface_box"+this.elementId+">span",function(){
- var index = parseInt($(this).attr("data-index"));
- var playObject = that.originalInterfaceList[index];
- that.showPlayerWindow(playObject);
-
- $("#vip_movie_box"+that.elementId+" .vip_mod_box_action_687ii> .item_box"+that.elementId+">.interface_box"+that.elementId+">span").removeClass("selected");
- $(this).addClass("selected");
- commonFunctionObject.GMsetValue(that.quicklyInterfaceKey, index);
-
- $("#img_quickly_6667897iio").find("img").attr("title","快速开始(当前所选接口:"+playObject.name+")");
- });
-
- //点击弹出设置框
- $("#img_set_6667897iio").on("click", function(){
- that.showSetingDialog();
- });
-
- $("#img_quickly_6667897iio").on("click", function(){
- const quicklyInterfaceIndex = that.getQuicklyInterfaceIndex();
- var playObject = that.originalInterfaceList[quicklyInterfaceIndex];
- that.showPlayerWindow(playObject);
- });
-
- //右键移动位置
- var movie_box = $("#vip_movie_box"+this.elementId);
- movie_box.mousedown(function(e) {
- if (e.which == 3) {
- e.preventDefault()
- movie_box.css("cursor", "move");
- var positionDiv = $(this).offset();
- var distenceX = e.pageX - positionDiv.left;
- var distenceY = e.pageY - positionDiv.top;
-
- $(document).mousemove(function(e) {
- var x = e.pageX - distenceX;
- var y = e.pageY - distenceY;
- var windowWidth = $(window).width();
- var windowHeight = $(window).height();
-
- if (x < 0) {
- x = 0;
- } else if (x > windowWidth- movie_box.outerWidth(true) - 100) {
- x = windowWidth - movie_box.outerWidth(true) - 100;
- }
-
- if (y < 0) {
- y = 0;
- } else if (y > windowHeight - movie_box.outerHeight(true)) {
- y = windowHeight - movie_box.outerHeight(true);
- }
- movie_box.css("left", x);
- movie_box.css("top", y);
- commonFunctionObject.GMsetValue("Position_" + window.location.host,{ "left":x, "top":y});
- });
- $(document).mouseup(function() {
- $(document).off('mousemove');
- movie_box.css("cursor", "pointer");
- });
- $(document).contextmenu(function(e) {
- e.preventDefault();
- })
- }
- });
- };
- this.removeVideoAdBlock_iqiyi = function(){
-
- },
- this.removeVideoAdBlock_vqq = function(){
-
- },
- this.removeVideoAdBlock_youku = function(){
-
- },
- this.removeVideoAdBlock_mgtv = function(){
-
- },
- this.removeVideoAdBlock_sohu = function(){
-
- },
- this.removeVideoAdBlock = function(){
- const currentHost = window.location.host;
- if(currentHost.indexOf("www.iqiyi.com")!=-1){
- this.removeVideoAdBlock_iqiyi();
- }else if(currentHost.indexOf("v.qq.com")!=-1){
- this.removeVideoAdBlock_vqq();
- }else if(currentHost.indexOf("v.youku.com")!=-1){
- this.removeVideoAdBlock_youku();
- }else if(currentHost.indexOf("www.mgtv.com")!=-1){
- this.removeVideoAdBlock_mgtv();
- }else if(currentHost.indexOf("tv.sohu.com")!=-1){
- this.removeVideoAdBlock_sohu();
- }
- };
- this.showSetingDialog = function(){
- const that = this;
- var customInterfaceKey = that.customInterfaceKey;
- var customInterface = commonFunctionObject.GMgetValue(customInterfaceKey, "");
-
- var content = `
- <div>
- <div style="font-size:14px;font-weight:700;color:#000;">自定义解析接口</div>
- <div style="font-size:13px;color:red;">
- 数据格式:[名字] + [,] + [接口地址]<br>
- 例如:就是名字而已,https://xxxxxx?url=<br>
- 注:一行一个
- </div>
- <div style="margin-top:5px;height:200px;width:100%;">
- <textarea
- placeholder="请严格按照格式填写,否则不生效"
- class="custom-interface-textarea"
- style="color:#000;font-size:14px;box-sizing: border-box;-webkit-box-sizing: border-box;-moz-box-sizing: border-box;padding:5px;height:100%;width:100%;Overflow:auto;border:1px solid #ccc;resize:none;background-color:#FFF;outline:none;">`+customInterface+`</textarea>
- </div>
- <div style="text-align:center;margin-top:15px;">
- <button class="save-custom-interface-btn" style="color:#000;cursor:pointer;">保存自定义接口</button>
- </div>
- </div>
- `;
- popup.dialog({
- "title":"解析接口添加",
- "content":content,
- "onContentReady":function($that){
- var $saveCustomInterfaceBtn = $that.dialogContent.querySelector(".save-custom-interface-btn");
- $saveCustomInterfaceBtn.addEventListener("click", function(){
- var $customInterfaceTextarea = $that.dialogContent.querySelector(".custom-interface-textarea");
- var content = $customInterfaceTextarea.value;
- commonFunctionObject.GMsetValue(customInterfaceKey, content);
- commonFunctionObject.webToast({"message":"自定义接口保存成功", "background":"#FF4D40"});
- });
- }
- })
- }
- this.start = function(){
- let delayTimeMs = 0;
- if(window.location.host.indexOf("www.bilibili.com")!=-1){
- delayTimeMs = 2200;
- }
- setTimeout(()=>{
- try{
- this.removeVideoAdBlock();
- }catch(e){}
- try{
- this.analysisCustomInterface();
- this.addHtmlElements();
- this.runEvent();
- }catch(e){}
- }, delayTimeMs);
- };
- };
-
- /**
- * 移动端VIP解析
- * @param {Object} originalInterfaceList
- */
- function SuperVideoHelperMobile(originalInterfaceList){
- this.originalInterfaceList = originalInterfaceList;
- this.elementId = Math.ceil(Math.random()*100000000)+"mmx";
- this.quicklyInterfaceKey = "custom_mobile_quickly_interface_key_dddsdxxa";
- this.defaultQuicklyInterfaceIndex = 2;
- this.playerNodes=[
- {"url":"m.iqiyi.com", "showNode":".m-video-player-wrap", "color":"#05B03B"},
- {"url":"m.v.qq.com", "showNode":".mod_player", "color":"#F99D39"},
- {"url":"m.youku.com", "showNode":".h5-detail-player", "color":"#08BAFD"},
- {"url":"m.mgtv.com", "showNode":".video-area", "color":"#E95904"}
- ];
- this.isRun = function(){ //判断是否运行
- const host = window.location.host;
- const urls = ["m.iqiyi.com","m.v.qq.com","m.youku.com", "m.mgtv.com", "m.bilibili.com"];
- var result = false;
- if(host.startsWith("m.")){ //是移动端执行
- for(var i=0; i<urls.length; i++){
- if(host.indexOf(urls[i]) != -1){
- result = true;
- break;
- }
- }
- }
- return result;
- };
- this.getwindowElement = function(){
- var nodeObject = null;
- for(var i in this.playerNodes) { //获得窗口ID
- if (this.playerNodes[i].url == window.location.host) {
- nodeObject = this.playerNodes[i];
- break;
- }
- }
- return nodeObject;
- };
- this.getQuicklyInterfaceIndex = function(){
- var quicklyInterfaceIndexString = commonFunctionObject.GMgetValue(this.quicklyInterfaceKey,"")+"";
- var quicklyInterfaceIndex = this.defaultQuicklyInterfaceIndex;
- if(!!quicklyInterfaceIndexString){
- quicklyInterfaceIndex = parseInt(quicklyInterfaceIndexString);
- }
- if(this.originalInterfaceList.length-1<quicklyInterfaceIndex){
- quicklyInterfaceIndex = this.defaultQuicklyInterfaceIndex;
- }
- return quicklyInterfaceIndex;
- };
- this.addHtmlElements = function(){
- let nodeObject = this.getwindowElement();
- const quicklyInterfaceIndex = this.getQuicklyInterfaceIndex();
- if(!nodeObject) return;
- return new Promise((resolve, reject)=>{
- const elementInterval = setInterval(()=>{
- const nodeElementObject = $(nodeObject.showNode), themeColor = nodeObject.color;
-
- if(nodeElementObject.length == 0) return;
- clearInterval(elementInterval);
-
- //添加HTML
- let category_1_html = "";
- this.originalInterfaceList.forEach((item, index) => {
- if (item.showType != 1) {
- var selected = "";
- if(index==quicklyInterfaceIndex){
- selected = "selected";
- }
- category_1_html += "<option value='"+item.url+"' index='"+index+"' "+selected+">"+item.name+"</option>";
- }
- });
- var htmlMould = `
- <div style="margin:15px 15px 50px 15px;padding:10px;background-color:`+themeColor+`;border-radius:4px;cursor:pointer;z-index: 999999999999999999999;color:#FFF;">
- <div style="font-weight:700;font-size:14px;text-align:center;">
- <span>选择解析接口</span>
- <select id="interface_selection_`+this.elementId+`" style="background-color:#FFF;padding: 0px 10px;">
- `+category_1_html+`
- </select>
- </div>
- <div style="text-align:center;">
- <a href="javascript:void(0);" id="start_analysis_outer_`+this.elementId+`" style="box-sizing:border-box;margin:10px 0px;display:inline-block;padding:10px 0px;width:100%;border-radius:4px;color:#FFF;background-color:#F2503F;font-size:14px;">站外解析</a>
- </div>
- <div style="text-align:left;font-size:10px;">
- <div>
- 免责申明:1、VIP视频解析中所用到的解析接口全部收集自互联网(源码可见),版权问题请联系相关解析接口所有者!
- 2、为创造良好的创作氛围,请大家支持正版!
- 3、脚本仅限个人学习交流,切勿用于任何商业等其它用途!
- 4、继续使用,即表明你已经明确使用脚本可能带来的风险,且愿意自行承担相关风险,对于风险脚本不承担任何责任!
- ** <b>脚本源码托管地址(含解析接口、使用教程):<a href="https://github.com/huahuacatTX/greasyfork" target="_blank" style="padding:0px 5px;color:red;">点我查看</a></b>
- </div>
- </div>
- </div>
- `;
- nodeElementObject.after(htmlMould);
- resolve("ok");
- }, 100);
- });
- };
- this.getPlayObjectBySelect = function(){
-
- var indexString = $("#interface_selection_"+this.elementId).find("option:selected").attr("index");
- var index = 0;
- if(!!indexString){
- index = parseInt(indexString);
- }
- return this.originalInterfaceList[index];
- };
- this.runEvent = function(){ //事件运行
- const self = this;
-
- //初始化
- var playObject = self.getPlayObjectBySelect();
- $('#start_analysis_outer_'+self.elementId).attr("href", playObject.url + window.location.href);
- $('#start_analysis_outer_'+self.elementId).on('click', function (e) {
- if(commonFunctionObject.GMgetValue("copyright_video_remind_mobile_outer",null)==="true"){
-
- }else{
- var r=confirm(
- "脚本运行提醒!!!\u000d"+
- "使用站外解析功能,视频解析时脚本跳出本页面,如不同意此脚本行为,请点击【取消】按钮!!"
- );
- if(r==false){
- e.preventDefault();
- }else{
- commonFunctionObject.GMsetValue("copyright_video_remind_mobile_outer","true");
- }
- }
- });
- //接口切换
- $('#interface_selection_'+self.elementId).on('change', function () {
- var $option = $(this).find("option:selected");
- var value = $option.val();
- var index = parseInt($option.attr("index"));
- $('#start_analysis_outer_'+self.elementId).attr("href", value+window.location.href);
- commonFunctionObject.GMsetValue(self.quicklyInterfaceKey, index);
- });
- };
- this.start = function(){
- const self = this;
- if(this.isRun()){
- this.addHtmlElements().then(()=>{
- self.runEvent();
- });
- }
- }
- }
- try{
- let newOriginalInterfaceList = originalInterfaceList;
- if(!functionController || functionController.superVideoHelper){
- const superVideoHelperObject = new SuperVideoHelper(newOriginalInterfaceList);
- if(superVideoHelperObject.isRun()){
- if(commonFunctionObject.GMgetValue("copyright_video_remind",null)==="true"){
- superVideoHelperObject.start();
- }else{
- var r=confirm(
- "脚本运行提醒!!!\u000d"+
- "1、VIP视频解析中所用到的解析接口全部收集自互联网(源码可见),版权问题请联系相关解析接口所有者!\u000d"+
- "2、为创造良好的创作氛围,请大家支持正版!\u000d"+
- "3、脚本仅限个人学习交流,切勿用于任何商业等其它用途!\u000d"+
- "4、继续使用,即表明你已经明确使用脚本可能带来的风险,且愿意自行承担相关风险,对于风险脚本不承担任何责任!\u000d"+
- "5、此提醒只弹出一次,确认后,后续将不在弹出,请知悉!"
- );
- if(r==true){
- commonFunctionObject.GMsetValue("copyright_video_remind","true");
- superVideoHelperObject.start();
- }
- }
- }
- (new SuperVideoHelperMobile(newOriginalInterfaceList)).start();
- }
- }catch(e){
- console.log("全网VIP解析:error:"+e);
- }
-
- /**
- * B站相关功能:视频多P下载,一键三联,浏览记录等
- */
- function BilibiliHelper(){
-
- this.isRun = function(){
- return window.location.host.indexOf("bilibili.com") != -1
- }
- this.baseFunction = function(){
- /**
- * b站基本功能,一件三连、视频解析、视频下载
- */
- function baseFunctionObject(){
- this.elementId = Math.ceil(Math.random()*100000000)+"mmx";
- this.downloadSettingKey = "download_setting_key";
- this.downloadResutError=function(btnElement){
- btnElement.text("下载视频");
- btnElement.removeAttr("disabled");
- };
- this.downloadResutSuccess=function(btnElement){
- btnElement.text("下载视频");
- btnElement.removeAttr("disabled");
- };
- this.getDownloadPages = function(){
- return new Promise(function(resolve, reject) {
- var pathname = window.location.pathname, bv = null;
- if (pathname.indexOf("/medialist/play/watchlater/") != -1) { // 在下载视频的时候针对稍后再看页面的链接找BV号
- bv = pathname.replace("/medialist/play/watchlater/","").replace("/","");
- }else{
- bv = pathname.replace("/video/","").replace("/","");
- }
- if(!bv){
- resolve({"status":"bv_null"});
- return;
- }
- //bv转av
- commonFunctionObject.request("get", "https://api.bilibili.com/x/web-interface/view?bvid="+bv, null).then((resultData)=>{
- let dataJson = JSON.parse(resultData.data);
- if(!dataJson || dataJson.code!==0 || !dataJson.data){
- resolve({"status":"request_error"});
- return;
- }
-
- let data = dataJson.data;
- if(!data){
- resolve({"status":"aid_null"});
- return;
- }
-
- let aid = data.aid;
- let pic = data.pic;
- let title = data.title
- if(!aid){
- resolve({"status":"aid_null"});
- return;
- }
-
- //获取cid
- commonFunctionObject.request("get", "https://api.bilibili.com/x/web-interface/view?aid="+aid, null).then((resultData2)=>{
- let dataJson2 = JSON.parse(resultData2.data);
- if(!dataJson2 || dataJson2.code!==0 || !dataJson2.data){
- resolve({"status":"request_error"});
- return;
- }
- const downloadData = dataJson2.data;
- const {aid, bvid} = downloadData,
- items = new Array();
- //这是下载集合
- if(downloadData.hasOwnProperty("ugc_season") && downloadData.ugc_season.hasOwnProperty("sections")){
- let sections = downloadData.ugc_season.sections;
- let page = 1;
- for(var i=0; i<sections.length; i++){
- let section = sections[i];
- if(section.hasOwnProperty("episodes")){
- for(var j=0; j<section.episodes.length; j++){
- let episode = section.episodes[j];
- items.push({
- "cover":"",
- "page":page,
- "title":episode.title,
- "cid":episode.cid,
- "aid":episode.aid
- });
- page++;
- }
- }
- }
- }else{ //这是多P下载
- for(var i=0; i<downloadData.pages.length; i++){
- let pageData = downloadData.pages[i];
- items.push({
- "cover":pageData.first_frame,
- "page":pageData.page,
- "title":pageData.part,
- "cid":pageData.cid,
- "aid":aid
- });
- }
- }
- resolve({"status":"success", "downloadData":{
- "items":items,
- "pic":pic,
- "title":title
- }});
- }).catch((errorData)=>{
- resolve({"status":"request_error"});
- });
- }).catch((errorData)=>{
- resolve({"status":"request_error"});
- });
- });
- };
- this.startDownloadFile = function(options){
- let aid = options.aid, cid = options.cid, fileName = options.fileName,
- savePath = options.savePath, RPCURL = options.RPCURL, RPCToken = options.RPCToken;
- let isByPRC = options.isByPRC;
-
- commonFunctionObject.request("get", "https://api.bilibili.com/x/player/playurl?avid="+aid+"&cid="+cid+"&qn=112", null).then((resultData3)=>{
-
- if(!fileName){
- fileName = (new Date()).getTime() + "";
- }
- fileName = fileName.replace(/[\ |\~|\`|\=|\||\\|\;|\:|\"|\'|\,|\.|\>|\/]/g,"");
- fileName = fileName.substring(0,50); //可能有异常,标题最多50字符
- fileName = fileName + ".mp4";
-
- let dataJson3 = JSON.parse(resultData3.data);
- if(!!dataJson3 && dataJson3.code===0 && !!dataJson3.data){
- let downloadUrl = dataJson3.data.durl[0].url;
- if(isByPRC){
- commonFunctionObject.RPCDownloadFile(fileName, downloadUrl, savePath, RPCURL).then((data)=>{
- commonFunctionObject.webToast({"message":data, "time":3000});
- }).catch((data)=>{
- commonFunctionObject.webToast({"message":data, "time":3000});
- });
- }else{
- window.open(downloadUrl);
- }
- }else{
- commonFunctionObject.webToast({"message":"获取下载链接失败", "background":"#FF4D40"});
- }
- }).catch((errorData)=>{
- commonFunctionObject.webToast({"message":"获取下载链接失败", "background":"#FF4D40"});
- });
- };
- this.createModals = function(){
- var css = `
- .modal-mask-`+this.elementId+`{
- position:fixed;
- top:0;
- left:0;
- z-index:999;
- width:100%;
- height:100%;
- display:none;
- background-color:#000;
- opacity:0.3;
- overflow:hidden;
- }
- .modal-body-`+this.elementId+`{
- position:fixed;
- border-radius:5px;
- background-color: #FFFFFF;
- top:10%;
- width:600px;
- max-width:90%;
- max-height:80%;
- z-index:1000;
- left: 50%;
- transform: translateX(-50%);
- display:none;
- padding: 10px;
- overflow-y: auto;
- }
- .modal-body-`+this.elementId+` >.page-header{
- height:30px;
- line-height:30px;
- position:relative;
- }
- .modal-body-`+this.elementId+` >.page-header >span{
- display:inline-block;
- }
- .modal-body-`+this.elementId+` >.page-header >span:nth-child(1) {
- font-size:18px;
- font-weight:bold;
- position:absolute;
- left:10px;
- }
- .modal-body-`+this.elementId+` >.page-header >span:nth-child(2) {
- font-size:28px;
- font-weight:bold;
- position:absolute;
- right:10px;
- cursor:pointer;
- }
- .modal-body-`+this.elementId+` >.page-container{
- max-height: 500px;
- overflow-y: auto;
- }
- .modal-body-`+this.elementId+` .page-wrap{
- display: flex;
- flex-wrap: wrap;
- margin-top:5px;
- }
- .modal-body-`+this.elementId+` .page-wrap >.board-item{
- display: block;
- width: calc(50% - 10px);
- background-color: #6A5F60;
- margin: 5px;
- background-color:#FB7299;
- color:#FFFFFF;
- cursor: pointer;
- overflow:hidden;
- white-space:nowrap;
- text-overflow:ellipsis;
- }
- .modal-body-`+this.elementId+` .page-wrap >.board-item >input{
- width: 14px;
- height: 14px;
- vertical-align: middle;
- margin-right:5px;
- }
- .modal-body-`+this.elementId+` .page-wrap >.board-item >span{
- vertical-align: middle;
- }
- .modal-body-`+this.elementId+` .modal-btn-wrap{
- text-align: center;
- margin-top: 10px;
- cursor: pointer;
- }
- .modal-body-`+this.elementId+` .aria2-setting{
- border:1px dashed #F1F1F1;
- border-radius:4px;
- margin-top:10px;
- }
- .modal-body-`+this.elementId+` .aria2-setting >.setting-item{
- text-align: center;
- font-size:14px;
- margin:10px 0px;
- }
- .modal-body-`+this.elementId+` .aria2-setting >.setting-item .topic-name{
- display:inline-block;
- width:80px;
- text-align:left;
- }
- .modal-body-`+this.elementId+` .aria2-setting >.setting-item> input{
- width:300px;
- padding-left:10px;
- border:1px solid #888;
- outline:none;
- border-radius:3px;
- }
- .modal-body-`+this.elementId+` .modal-btn-wrap >span{
- border:1px solid #ccc;
- display:inline-block;
- padding:3px 5px;
- margin:0px 5px;
- border-radius:3px;
- }
- .modal-body-`+this.elementId+` .tip-wrap{
- margin-top: 10px;
- font-size:12px;
- }
- .modal-body-`+this.elementId+` .tip-wrap >.title{
- font-size:16px;
- font-weight:bold;
- }
- .modal-body-`+this.elementId+` .tip-wrap >.content >ul >li{
- margin-top:5px;
- }
- `;
-
- var html = `
- <div class='modal-mask-`+this.elementId+`'></div>
- <div class='modal-body-`+this.elementId+`'>
- <div class="page-header">
- <span>视频下载(可批量)</span>
- <span class="close">×</span>
- </div>
- <div class="page-container">
- <label style="color:red;">注:此功能会调用bilibili的API,脚本仅用于个人交流,切勿用于商业用途,否则后果自负,特此申明!</label>
- <div class="page-wrap">
- </div>
- <div class="aria2-setting">
- <div class="setting-item">
- <span><input type="radio" name="downloadWay" value="Motrix">Motrix下载</span>
- <span><input type="radio" name="downloadWay" value="AriaNgGUI">AriaNgGUI下载</span>
- </div>
- <div class="setting-item">
- <label class="topic-name">配置RPC:</label><input type="text" name="RPCURL" value="" placeholder="请准确输入RPC对应软件的地址,默认:Motrix">
- </div>
- <div class="setting-item">
- <label class="topic-name">配置Token:</label><input type="text" name="RPCToken" value="" placeholder="默认无需填写">
- </div>
- <div class="setting-item">
- <label class="topic-name">保存路径:</label><input type="text" name="savePath" value="" placeholder="请准确输入文件保存路径">
- <div style="font-size:12px;color:#888;">最好自定义下载地址,默认地址可能不满足需要</div>
- </div>
- </div>
- <div class="modal-btn-wrap">
- <span name="selectall">全选</span>
- <span name="removeSelect">取消选择</span>
- <span name="downloadAll">批量下载</span>
- </div>
- <div class="tip-wrap">
- <div class="title">关于单P下载:</div>
- <div class="content"><span>点击弹框单个选集,即可下载单集视频!PS:单P下载,推荐大家使用BBDown下载,此工具功能很强大,具体查看:<a target="_blank" href="https://github.com/nilaoda/BBDown">https://github.com/nilaoda/BBDown</a></span></div>
- </div>
- <div class="tip-wrap">
- <div class="title">关于批量下载:</div>
- <div class="content">
- <ul>
- <li>
- <b>1、批量下载需要第三方软件的支持,脚本推荐使用:Motrix</b>
- <ul>
- <li>Motrix下载地址:<a href="https://motrix.app/zh-CN/" target="_blank">https://motrix.app/zh-CN/</a></li>
- <li>AriaNgGUI下载地址:<a href="https://github.com/Xmader/aria-ng-gui" target="_blank">https://github.com/Xmader/aria-ng-gui</a></li>
- </ul>
- </li>
- <li>
- <b>2、在批量下载前需要提前打开软件,本教程以Motrix为准</b>
- <ul>
- <li>(1)、如果全部按照默认配置,只需要打开软件即可</li>
- <li>(2)、如果想自定义RPC地址和文件保存路径,可更改上面输入框的内容(此数据非常重要,请准确填写)</li>
- <li>
- (3)、Motrix运行图片
- <img src="https://pic.rmb.bdstatic.com/bjh/8912582c0416119405ec37ea27d12376.jpeg" width="100%" />
- </li>
- </ui>
- </li>
- <li>
- <b>3、默认RPC默认地址</b>
- <ul>
- <li>(1)、Motrix RPC默认地址:ws://localhost:16800/jsonrpc</li>
- <li>(2)、Aria2 RPC默认地址:ws://localhost:6800/jsonrpc</li>
- <li>(3)点击“批量下载会自动保存当前下载设置”</li>
- </ul>
- </li>
- <li>
- <b>4、如使用AriaNgGUI,使用方式类似,大家可以自行研究</b>
- </li>
- </ul>
- </div>
- </div>
- <div class="tip-wrap">
- <div class="title">必要说明:</div>
- <div class="content">
- 申明:本功能仅能作为学习交流使用,且不可用于其它用途,否则后果自负。请大家重视版权,尊重创作者,切勿搬运抄袭。请大家多用[一键三连]为创作者投币~,小破站牛掰!
- </div>
- </div>
- </div>
- </div>
- `;
- commonFunctionObject.GMaddStyle(css);
- $("body").append(html);
- };
- this.hideModals = function(){
- $(".modal-body-"+this.elementId+"").css('display','none');
- $(".modal-mask-"+this.elementId+"").css('display','none');
- };
- this.showModals = function(pageHtml){
- const self = this;
- const downloadSettingKey = self.downloadSettingKey;
- $(".modal-body-"+self.elementId+"").css('display','block');
- $(".modal-mask-"+self.elementId+"").css('display','block');
- $(".modal-body-"+self.elementId+" .page-wrap").html(pageHtml);
-
- //初始化设置的数据
- var savePath = "D:/";
- if("macOS"===commonFunctionObject.getSystemOS()){
- savePath = ""
- }
- const downloadSetting = commonFunctionObject.GMgetValue(this.downloadSettingKey,
- {"RPCURL":"ws://localhost:16800/jsonrpc",
- "savePath":savePath,
- "RPCToken":'', "downloadWay":"Motrix"});
- const isMotrix = downloadSetting.downloadWay=="Motrix";
- $(".modal-body-"+self.elementId+" input[name='RPCURL']").val(downloadSetting.RPCURL);
- $(".modal-body-"+self.elementId+" input[name='savePath']").val(downloadSetting.savePath);
- $(".modal-body-"+self.elementId+" input[name='RPCToken']").val(downloadSetting.RPCToken);
- $(".modal-body-"+self.elementId+" input[name='downloadWay']").removeAttr("checked");
- if(isMotrix){
- $(".modal-body-"+self.elementId+" input:radio[value='Motrix']").attr('checked','true');
- }else{
- $(".modal-body-"+self.elementId+" input:radio[value='AriaNgGUI']").attr('checked','true');
- }
-
- $(".modal-body-"+self.elementId+" .page-wrap >.board-item >span").off("click").on("click", function(){
- $(this).css("background-color","#ccc");
- let downloadOptions={
- "aid":$(this).data("aid"),
- "cid":$(this).data("cid"),
- "isByPRC":false
- }
- self.startDownloadFile(downloadOptions);
- });
- $(".modal-body-"+self.elementId+" .page-header >span.close").off("click").on("click", function(){
- self.hideModals();
- });
- $(".modal-body-"+self.elementId+" .modal-btn-wrap >span[name='selectall']").off("click").on("click", function(){
- $(".modal-body-"+self.elementId+" .page-wrap").find("input[type='checkbox']").each(function(){
- $(this).prop('checked', true);
- });
- });
- $(".modal-body-"+self.elementId+" input[name='downloadWay']").off("change").on("change", function(){
- if($(this).val()=="Motrix"){
- $(".modal-body-"+self.elementId+" input[name='RPCURL']").val("ws://localhost:16800/jsonrpc");
- }else{
- $(".modal-body-"+self.elementId+" input[name='RPCURL']").val("ws://localhost:6800/jsonrpc");
- }
- });
- $(".modal-body-"+self.elementId+" .modal-btn-wrap >span[name='removeSelect']").off("click").on("click", function(){
- $(".modal-body-"+self.elementId+" .page-wrap").find("input[type='checkbox']").each(function(){
- $(this).prop('checked', false);
- });
- });
- $(".modal-body-"+self.elementId+" .modal-btn-wrap >span[name='downloadAll']").off("click").on("click", function(){
- let RPCURL = $(".modal-body-"+self.elementId+" input[name='RPCURL']").val();
- let savePath = $(".modal-body-"+self.elementId+" input[name='savePath']").val();
- let RPCToken = $(".modal-body-"+self.elementId+" input[name='RPCToken']").val();
- let downloadWay = $(".modal-body-"+self.elementId+" input[name='downloadWay']:checked").val();
- commonFunctionObject.GMsetValue(downloadSettingKey,{"RPCURL":RPCURL, "savePath":savePath,
- "RPCToken":RPCToken, "downloadWay":downloadWay});
-
- let inputElements = $(".modal-body-"+self.elementId+" .page-wrap input[type='checkbox']:checked");
- if(inputElements.length == 0){
- commonFunctionObject.webToast({"message":"至少需要选中1P", "background":"#FF4D40"});
- return;
- }
-
- if(!savePath){
- commonFunctionObject.webToast({"message":"保存路径不能为空", "background":"#FF4D40"});
- return;
- }
- if(!RPCURL){
- commonFunctionObject.webToast({"message":"PRC地址不能为空", "background":"#FF4D40"});
- return;
- }
- RPCToken = !RPCToken ? "" : RPCToken;
- let downloadOptions = {
- "aid":"",
- "cid":"",
- "isByPRC":true,
- "fileName":"",
- "savePath":savePath,
- "RPCURL":RPCURL,
- "RPCToken":RPCToken
- }
- inputElements.each(function(){
- setTimeout(()=>{
- let aid=$(this).data("aid"), cid = $(this).data("cid"), fileName = $(this).attr("title");
- downloadOptions.aid = aid;
- downloadOptions.cid = cid;
- downloadOptions.fileName = fileName;
- self.startDownloadFile(downloadOptions);
- }, 1000);
- })
- });
- };
- this.createElementHtml = async function(){
- $("#bilibili_exti_9787fjfh12j").remove();
-
- const randomNumber = this.elementId, self = this;
- let cssText = `
- #bilibili_exti_9787fjfh12j{
- position:fixed;
- left:-30px;
- top:250px;
- opacity:0.6;
- transition: 0.3s;
- }
- #bilibili_exti_9787fjfh12j >.self_s_btn{
- background-color:#FB7299;
- color:#FFF;
- font-size:10px;
- border-radius:3px;
- cursor:pointer;
- margin:10px 0px;
- width:60px;
- height:20px;
- text-align:center;
- line-height:20px;
- }
- `;
- let htmlText=`
- <div id="bilibili_exti_9787fjfh12j">
- <div class="self_s_btn" id="pro_s_`+randomNumber+`">Pro版本托管</div>
- <div class="self_s_btn" id="download_s_`+randomNumber+`">下载视频</div>
- <div class="self_s_btn" id="focus_s_`+randomNumber+`">一键三连</div>
- </div>
- `;
-
- //添加下载等操作按钮
- commonFunctionObject.GMaddStyle(cssText);
- $("body").append(htmlText);
-
- //创建弹框
- this.createModals();
-
- //移入移除操作
- $("#bilibili_exti_9787fjfh12j").hover(function(){
- $(this).css({
- "left":"0px", "opacity":1
- });
- },function(){
- $(this).css({
- "left":(0-$(this).width())/2+"px", "opacity":0.6
- });
- });
-
- //下载操作函数
- $("body").on("click", "#download_s_"+randomNumber, function(){
- const btnElement = $(this);
- btnElement.attr("disabled", "disabled");
- btnElement.text("准备中~");
- //开始准备下载数据
- self.getDownloadPages().then((resule)=>{
- if(resule.status==="success"){
- const {items, pic, title} = resule.downloadData;
- let itemHtml = "";
- itemHtml += "<div style='width:100%;'><a href='"+pic+"' target='_blank'>标题:"+title+"(点我跳转封面)</a></div>";
- for(var i=0; i<items.length; i++){
- var currentTitle = "【P"+items[i].page+"】"+items[i].title+"";
- itemHtml += "<div class='board-item'>";
- itemHtml += "<input data-aid='"+items[i].aid+"' data-cid='"+items[i].cid+"' title='"+currentTitle+"' type='checkbox'>"
- itemHtml += "<span data-aid='"+items[i].aid+"' data-cid='"+items[i].cid+"' title='"+currentTitle+"'>"+currentTitle+"</span>";
- itemHtml += "</div>";
- }
- self.showModals(itemHtml);
- self.downloadResutSuccess(btnElement);
- }else{
- self.downloadResutError(btnElement);
- }
- }).catch((error)=>{
- self.downloadResutError(btnElement);
- });
- });
- $("body").on("click", "#focus_s_"+randomNumber, function(){
- $("#arc_toolbar_report .video-like").click(); // 点赞
- $("#arc_toolbar_report .video-coin").click(); // 投币
- // $("#arc_toolbar_report .video-fav").click(); // 收藏
- });
- $("body").on("click","#pro_s_"+randomNumber, function(){
- commonFunctionObject.GMopenInTab("https://github.com/huahuacatTX/greasyfork");
- });
- }
- this.start = function(){
- let locationHost = window.location.host, locationPathname = window.location.pathname;
- if(locationHost==="www.bilibili.com" && (locationPathname.indexOf("/video")!=-1 || locationPathname.indexOf("/watchlater")!=-1)){
- this.createElementHtml();
- }
- }
- }
- try{
- (new baseFunctionObject()).start();
- }catch(e){
- console.log("baseFunctionObject new error", e);
- }
- };
- /**
- * 浏览历史记录提醒
- */
- this.recordViewFunction = function(){
- function recordViewObject(){
- this.localCacheName = "bilibili_video_record";
- this.recordOneVideo = function(){
- let promise = new Promise((resolve, reject)=>{
- let bv = commonFunctionObject.getBilibiliBV();
- let cacheText = commonFunctionObject.GMgetValue(this.localCacheName);
- cacheText = !cacheText ? "" : cacheText
- let maxLength = 12*500;
- let currentLength = cacheText.length;
- if(currentLength > maxLength){
- cacheText = cacheText.substring(12*100, currentLength);
- }
-
- if(cacheText.indexOf(bv)==-1){
- cacheText += bv;
- commonFunctionObject.GMsetValue(this.localCacheName, cacheText);
- }
- resolve({"result":"success"});
- });
- };
- this.searchPageRemindHtml = function($ele, top=8, right=8){
- if($ele.find("div[name='marklooked']").length==0){
- $ele.css("position","relative");
- $ele.append("<div name='marklooked' style='z-index: 100;position:absolute; top:"+top+"px; right:"+right+"px; background-color: rgba(251,123,159,1); border-radius:3px; font-size:10px; color:#FFF;padding:0px 2px;'>已看</div>");
- }
- };
- this.searchPageRemind = function(){
- let $that = this;
- var elementArray = [
- {"node":".bili-video-card", "top":8, "right":12}, //兼容 MAC M1搜索结果
- {"node":"#page-index .small-item", "top":12, "right":12}, //用户投稿
- {"node":"#submit-video-list .small-item", "top":12, "right":12}, //用户主页
- {"node":"#page-series-detail .small-item.fakeDanmu-item", "top":12, "right":12}, //用户主页投稿
- ];
- setInterval(function(){
- let cacheText = commonFunctionObject.GMgetValue($that.localCacheName);
- cacheText = !cacheText ? "" : cacheText;
- for(var i=0; i<elementArray.length; i++){
- var elementobj = elementArray[i];
- $(elementobj.node).each(function(){
- if($(this).attr("dealxll")!=="true"){
- var videourl = $(this).find("a[href^='//www.bilibili.com/video']").attr("href");
- if(!!videourl){
- var bvs = videourl.match(/(\/BV(.*?)\/)/g)
- if(bvs.length==1){
- var bv = bvs[0].replace(/\//g,"");
- if(cacheText.indexOf(bv) != -1){
- $that.searchPageRemindHtml($(this), elementobj.top, elementobj.right);
- }
- $(this).unbind("click").bind("click", ()=>{ //循环操作,单独绑定
- $that.searchPageRemindHtml($(this), elementobj.top, elementobj.right);
- })
- }
- $(this).attr("dealxll","true");
- }
- }
- });
- }
- }, 500);
- }
- this.start=function(){
- let $that = this;
- if(window.location.pathname.indexOf("/video")!=-1 && window.location.host==="www.bilibili.com"){
- let currentHref = "";
- setInterval(()=>{ //需要循环存储
- if(window.location.href !== currentHref){
- this.recordOneVideo();
- currentHref = window.location.href;
- }
- }, 500);
- }
- //搜索结果和用户主页已经看过的视频提醒
- if(window.location.host.indexOf("bilibili.com")!=-1){
- this.searchPageRemind();
- GM_registerMenuCommand("清空B站浏览记录",function(){
- if(confirm('是否要清空B站浏览记录?清空后将不可恢复...')){
- commonFunctionObject.GMsetValue($that.localCacheName, "");
- }
- });
- }
- };
- }
- try{
- (new recordViewObject()).start();
- }catch(e){
- console.log("recordViewObject new error", e);
- }
- };
- /**
- * 视频描述文本转链接
- */
- this.textToLinkFunction = function() {
- function textToLinkObject(){
- this.link = function(selector){
- const current_href = window.location.href;
- const textToLinkArea = document.querySelector(selector);
-
- if(!textToLinkArea){
- return;
- }
- findAndReplaceDOMText(textToLinkArea, {
- find: /(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/g,
- replace: function (e, t) {
- let text = e.text;
- let element = null;
- if(text.indexOf("bilibili.com")==-1 && /^(http|ftp|https)/i.test(text)){
- element = document.createElement("a");
- element.setAttribute("href", text)
- element.setAttribute("target", "_blank");
- element.style.color="#00AEEC";
- }else{
- element = document.createElement("span");
- }
- element.innerText = text;
- return element;
- },
- preset: "prose"
- });
-
- }
- this.start = function(){
- const selector = "#v_desc";
- this.link(selector);
-
- const MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver
- const bodyMutationObserver = new MutationObserver(()=>{
- this.link(selector);
- });
-
- const element = document.querySelector(selector);
- if(element){
- bodyMutationObserver.observe(element,
- {"characterData":true, "attributes":true, "childList":true},
- );
- }
- }
- }
- try{
- (new textToLinkObject()).start();
- }catch(e){
- console.log("textToLinkObject new error", e);
- }
- }
- this.signIn = async function(){ //签到下线,2024年7月2日
-
- }
- this.start = function(){
- if(this.isRun()){
- this.baseFunction();
- this.recordViewFunction();
- this.textToLinkFunction();
- this.signIn();
- }
- }
- }
-
- try{
- if(!functionController || functionController.bilibiliHelper){
- new BilibiliHelper().start();
- }
- }catch(e){
- console.log("B站视频下载:error:"+e);
- }
- /**
- * 知乎助手开始
- */
- function ZhihuHelper(){
- this.markArticleOrQuestion = function(){
- var questionsCss = `
- .AnswerItem .ContentItem-title a::before {
- content: '问题';
- color: #f68b83;
- background-color: #f68b8333;
- font-weight: bold;
- font-size: 13px;
- padding: 1px 4px 0px;
- border-radius: 2px;
- display: inline-block;
- vertical-align: middle;
- margin: 0px 4px 0px 0px;
- }
- .ArticleItem .ContentItem-title a::before {
- content: '文章';
- color: #0066FF;
- background-color: #E5EFFF;
- font-weight: bold;
- font-size: 13px;
- padding: 1px 4px 0;
- border-radius: 2px;
- display: inline-block;
- vertical-align: middle;
- margin: 0px 4px 0px 0px;
- }
- .ZvideoItem .ContentItem-title a::before {
- content:'视频';
- color: #00BCD4;
- background-color: #00BCD433;
- font-weight: bold;
- font-size: 13px;
- padding: 1px 4px 0;
- border-radius: 2px;
- display: inline-block;
- vertical-align: middle;
- margin: 0px 4px 0px 0px;
- }
- .TopstoryItem--advertCard{
- text-decoration:line-through;
- }
- `;
- commonFunctionObject.GMaddStyle(questionsCss);
- }
- this.autoJumpTarget = function(){
- var regexResult = location.search.match(/target=(.+?)(&|$)/);
- if(regexResult && regexResult.length==3){
- location.href = decodeURIComponent(regexResult[1]);
- }
- };
- // 为问题本身添加时间
- this.addDateQuestion = function(){
- var title = document.querySelector(".QuestionPage");
- if(!!title){
- var dateCreated = title.querySelector("[itemprop~=dateCreated][content]").content;
- var dateModified = title.querySelector("[itemprop~=dateModified][content]").content;
- var createDate = commonFunctionObject.DateFormat(new Date(dateCreated), "yyyy-MM-dd hh:mm:ss");
- var editDate = commonFunctionObject.DateFormat(new Date(dateModified), "yyyy-MM-dd hh:mm:ss");
-
- var side = title.querySelector(".QuestionHeader-side");
- var timeDiv = document.createElement('div');
- timeDiv.innerHTML = `<p>创建于: ${createDate}</p><p>编辑于: ${editDate}</p>`;
- timeDiv.style.cssText = 'color:#6f6f6f;font-size:13px;';
- side.appendChild(timeDiv);
- }
- };
- // 为回答添加时间
- this.addTimeAnswerItems = function(){
- var list = document.querySelectorAll(".AnswerItem:not(div[zh_date_mk='true'])");
- var item = null;
- for (var i = 0; i < list.length; i++) {
- item = list[i];
- if (item.getAttribute('zh_date_mk') === 'true') {
- continue;
- }
- item.setAttribute("zh_date_mk", "true");
- try{
- var dateCreated = item.querySelector("[itemprop~=dateCreated][content]").content;
- var dateModified = item.querySelector("[itemprop~=dateModified][content]").content;
- var createDate = commonFunctionObject.DateFormat(new Date(dateCreated), "yyyy-MM-dd hh:mm:ss");
- var editDate = commonFunctionObject.DateFormat(new Date(dateModified), "yyyy-MM-dd hh:mm:ss");
-
- var sideItem = item.querySelector(".ContentItem-meta");
- var timeDiv = document.createElement('div');
- timeDiv.innerHTML = `创建于: ${createDate} 修改于: ${editDate}`;
- timeDiv.class = "Voters";
- timeDiv.style.cssText = 'color:#6f6f6f;font-size:13px;display:block;padding:5px 0px;';
- sideItem.appendChild(timeDiv);
- }catch(e){}
- }
- return true;
- };
- // 提问者标识出来
- this.showQuestionAuthor = function(){
- //此处代码借鉴自 - 知乎增强
- //原作者:X.I.U
- //https://gf.qytechs.cn/zh-CN/scripts/419081-%E7%9F%A5%E4%B9%8E%E5%A2%9E%E5%BC%BA
- if (document.querySelector('.BrandQuestionSymbol, .QuestionAuthor')) return
- let qJson = JSON.parse(document.querySelector('#js-initialData').textContent).initialState.entities.questions[/\d+/.exec(location.pathname)[0]].author,
- html = `<div class="BrandQuestionSymbol"><a class="BrandQuestionSymbol-brandLink" href="/people/${qJson.urlToken}"><img role="presentation" src="${qJson.avatarUrl}" class="BrandQuestionSymbol-logo" alt=""><span class="BrandQuestionSymbol-name">${qJson.name}</span></a><div class="BrandQuestionSymbol-divider" style="margin-left: 5px;margin-right: 10px;"></div></div>`;
- document.querySelector('.QuestionHeader-topics').insertAdjacentHTML('beforebegin', html);
- };
- this.startDealwithQuestion = function(){
- let isMarkComplete = true;
- setInterval(()=>{
- if(isMarkComplete){
- isMarkComplete = false;
- isMarkComplete = this.addTimeAnswerItems();
- }
- }, 2500);
- this.showQuestionAuthor();
- this.addDateQuestion();
- };
- this.downloadVideo = function(){
- let isMarkComplete = true;
- function addDownloadButton(){
- if(!isMarkComplete) return;
- isMarkComplete = false;
-
- var itemArray = document.querySelectorAll("._1tg8oir:not(span[zh_date_mk='true'])");
- var item = null;
- // console.log("知乎视频下载循坏监听次数:", itemArray.length);
- for(var i=0; i<itemArray.length; i++){
- item = itemArray[i];
- if (item.getAttribute('zh_date_mk') === 'true') {
- continue;
- }
- item.setAttribute("zh_date_mk", "true");
-
- if(item.innerText != "倍速"){
- continue;
- }
-
- var playButLi = item.parentNode.parentNode;
- var downloadBut = playButLi.cloneNode(true)
- if(!downloadBut.querySelector('._1tg8oir')) return;
-
- // 删除其它元素
- var downloadButChildren = downloadBut.children;
- for(var j=0; j<downloadButChildren.length; j++){
- if(downloadButChildren[j].nodeName !== "BUTTON"){
- downloadBut.removeChild(downloadButChildren[j]);
- }
- }
-
- downloadBut.setAttribute("zh_date_mk", "true");
- downloadBut.querySelector('._1tg8oir').innerText='下载';
-
- playButLi.before(downloadBut);
- downloadBut.addEventListener("click",function(){
- let href = window.location.href;
- let findClassName = ".ZVideoItem-video"; // 首页
- if(href.indexOf("www.zhihu.com/search")!=-1){ //搜索界面
- findClassName = ".List-item";
- }else if(href.indexOf("www.zhihu.com/zvideo/")!=-1){ //单独视频播放界面
- findClassName = ".ZVideo-player";
- }else if(href.indexOf("https://video.zhihu.com/video")!=-1){ //视频播放iframe
- findClassName = "#player"
- }
- if(!findClassName) return;
- let playUrl = $(item).parents(findClassName).find("video").attr("src");
- if(!!playUrl){
- commonFunctionObject.GMopenInTab(playUrl);
- }
- });
- }
- isMarkComplete = true;
- }
-
- setInterval(()=>{
- addDownloadButton();
- }, 1499);
- };
- this.start = function(){
- const host = window.location.host;
- const self = this;
- if(host == "link.zhihu.com"){
- this.autoJumpTarget();
- }
- if(host.indexOf("zhihu.com")!=-1){
- this.markArticleOrQuestion();
- if(window.location.href.indexOf("www.zhihu.com/question/")!=-1){
- this.startDealwithQuestion();
- }
- //this.downloadVideo();
- }
- };
- }
- try{
- if(!functionController || functionController.zhihuHelper){
- (new ZhihuHelper()).start();
- }
- }catch(e){
- console.log("知乎助手:error:"+e);
- }
-
- /**
- * 搜索引擎资源提醒
- */
- function SearchEnginesNavigation(){
-
- this.customNavigationkey = "custom-navigation-key-8898";
- this.serverNavigationkey = "server-navigation-key-8898";
- this.searchEnginesData=[
- {"host":"www.baidu.com", "element":"#content_right","elementInput":"#kw"},
- {"host":"www.so.com", "element":"#side","elementInput":"#keyword"},
- {"host":"www.sogou.com", "element":"#right","elementInput":"#upquery"},
- {"host":"cn.bing.com", "element":"#b_context","elementInput":"#sb_form_q"},
- {"host":"www.bing.com", "element":"#b_context","elementInput":"#sb_form_q"},
- {"host":"www4.bing.com", "element":"#b_context","elementInput":"#sb_form_q"},
- {"host":"so.toutiao.com", "element":".s-side-list","elementInput":"input[type='search']"},
- {"host":"www.google.com", "element":"#rhs","elementInput":"input[type='text']"},
- {"host":"www.google.com.hk","element":"#rhs","elementInput":"input[type='text']"},
- {"host":"duckduckgo.com","element":".react-results--sidebar","elementInput":"#search_form_input"}
- ];
- this.defaultNavigationData = [
- {"name":"资源搜索","list":[
- {"name":"书签搜索 · 🔥发现", "url":"https://www.bookmarkearth.cn/?from=dxy"},
- {"name":"百度百科", "url":"https://baike.baidu.com/item/@@"},
- {"name":"知乎搜索", "url":"https://www.zhihu.com/search?type=content&q=@@"},
- {"name":"B站搜索", "url":"https://search.bilibili.com/all?keyword=@@&from_source=webtop_search&spm_id_from=333.851"},
- {"name":"财经雪球", "url":"https://xueqiu.com/k?q=@@"},
- {"name":"抖音搜索", "url":"https://www.douyin.com/search/@@"},
- {"name":"搜狗|公众号", "url":"https://weixin.sogou.com/weixin?type=2&query=@@"},
- {"name":"豆瓣搜索", "url":"https://www.douban.com/search?q=@@"},
- {"name":"维基百科", "url":"https://en.wikipedia.org/w/index.php?search=@@"},
- {"name":"法律法规", "url":"https://www.pkulaw.com/law/chl?Keywords=@@"},
- {"name":"icon搜索", "url":"https://www.iconfont.cn/search/index?searchType=icon&q=@@"},
- {"name":"github", "url":"https://github.com/search?q=@@"},
- {"name":"csdn", "url":"https://so.csdn.net/so/search?q=@@&t=&u="},
- {"name":"stackoverflow", "url":"https://stackoverflow.com/"},
- {"name":"AI内容分析🔥","url":"https://www.quzhuanpan.com/redirect/d_n?t="+(new Date()).getTime()},
- {"name":"在线工具", "url":"https://www.tool77.com/category/1?from=vbx"}
- ]},
- {"name":"搜索引擎","list":[
- {"name":"百度", "url":"https://www.baidu.com/s?wd=@@"},
- {"name":"必应", "url":"https://cn.bing.com/search?q=@@"},
- {"name":"google", "url":"https://www.google.com/search?q=@@"},
- {"name":"360搜索", "url":"https://www.so.com/s?ie=utf-8&fr=none&src=360sou_newhome&nlpv=basest&q=@@"},
- {"name":"搜狗", "url":"https://www.sogou.com/web?query=@@"},
- {"name":"头条搜索", "url":"https://so.toutiao.com/search?dvpf=pc&source=input&keyword=@@"},
- {"name":"DuckDuckGo", "url":"https://duckduckgo.com/?t=h_&q=@@&ia=web"},
- ]}
- ];
- this.getNavigationData = async function(element, elementInput){
- const self = this;
- let navigationData = self.defaultNavigationData;
- let finalNavigationData = null;
- try{
- let customNavigationData = commonFunctionObject.GMgetValue(self.customNavigationkey, null); //自定义的数据
- if(!!customNavigationData){
- finalNavigationData = [].concat(customNavigationData);
- // console.log("使用本地");
- }else{
- let currentMS = (new Date()).getTime();
- let delayMS = 1000 * 60 * 5;
- let serverNavigationData = commonFunctionObject.GMgetValue(self.serverNavigationkey, null);
- if(!serverNavigationData || (currentMS - serverNavigationData.ms) > delayMS){
- //拉取服务器本次不用,下次再使用
- commonFunctionObject.request("get", "https://sct.staticj.top/script/api/nav?t="+currentMS, null).then((serverJson)=>{
- let data = JSON.parse(serverJson.data); //获取本地data
- data.ms = currentMS; //添加时间戳保存到本地区
- commonFunctionObject.GMsetValue(self.serverNavigationkey, data);
- //console.log("拉取服务器");
- }).catch((error)=>{});
- }
-
- if(!!serverNavigationData){
- finalNavigationData = JSON.parse(serverNavigationData.list);
- }else{
- finalNavigationData = navigationData;
- }
- }
- }catch(e){
- finalNavigationData = navigationData;
- }
- self.createHtml(element, elementInput, finalNavigationData);
- };
- this.createCss = function(elementNum){
- var innnerCss = `
- #dsdsd99mmmjj7760011{
- margin-bottom:20px;
- }
- .tab`+elementNum+`{
- margin-bottom:8px;
- }
- .tab-c-titles`+elementNum+`{
- margin-bottom:8px;
- }
- .tab-c-links`+elementNum+`{
-
- }
-
- .tabs-t`+elementNum+`{
- display: inline-block;
- width: 80px;
- height: 28px;
- line-height: 28px;
- font-size: 15px;
- letter-spacing: 0;
- text-align: center;
- font-weight: 400;
- border-radius: 6px;
- cursor: pointer;
- background: #f8f8f8;
- color: #333;
- }
- .tabs-t-selected-ddsds1idddx90{
- color: #315EFB;
- font-weight: 500;
- background: rgba(49, 94, 251, 0.1);
- }
- .tabs-t-small-ddsds1idddx90{
- margin-left: 8px;
- }
-
- .tab-c-links`+elementNum+` a[name='navigation']{
- display:inline-block;
- text-align:center;
- margin-right:12px;
- margin-top:5px;
- overflow: hidden;
- white-space: nowrap;
- text-overflow:ellipsis;
- box-sizing:border-box;
- line-height:20px;
- font-size:14px!important;
- text-decoration: none;
- color:#1a0dab;
- }
- .tab-c-links`+elementNum+` a[name='navigation']:hover{
- text-decoration: underline;
- }
-
- .bookmarks`+elementNum+`{
- min-height:50px;
- }
- `;
- if($("#plugin_css_style_dddsoo").length==0){
- $("body").prepend("<style id='plugin_css_style_dddsoo'>"+innnerCss+"</style>");
- }
- };
- this.showSetingDialog = function(){
- const self = this;
-
- var customNavigationData = "";
- const customNavigation = commonFunctionObject.GMgetValue(self.customNavigationkey, null);
- if(!!customNavigation){
- customNavigationData = JSON.stringify(customNavigation, null, 4);
- }
- const content = `
- <div>
- <div style="font-size:13px;color:red;">
- 注意事项如下:
- <br>1、请严格按照格式添加,否则不生效
- <br>2、数据为json格式,请确保json格式正确,必要时请到<a target="_blank" href="https://www.json.cn/">https://www.json.cn/</a>校验
- <br>3、点击下面”示例“按钮,查看具体格式情况
- <br>4、链接中的搜索关键词请用”@@“代替,脚本会自动替换成当前搜索词。例如:https://www.baidu.com/s?wd=@@
- <br>5、大家可以自定义导航数据,<b>但是必须要注意数据格式,发现出现错误,可点“初始化”</b>
- </div>
- <div style="margin-top:5px;height:200px;width:100%;">
- <textarea
- placeholder="请严格按照格式填写,否则不生效"
- class="navigation-textarea"
- style="color:#000;font-size:14px;box-sizing: border-box;-webkit-box-sizing: border-box;-moz-box-sizing: border-box;padding:5px;height:100%;width:100%;Overflow:auto;border:1px solid #ccc;resize:none;background-color:#FFF;outline:none;">`+customNavigationData+`</textarea>
- </div>
- <div style="text-align:center;margin-top:15px;">
- <button class="navigation-init" style="color:#000;cursor:pointer;">初始化</button>
- <button class="navigation-example" style="color:#000;cursor:pointer;">示例</button>
- <button class="navigation-clear" style="color:#000;cursor:pointer;">清空</button>
- <button class="navigation-save" style="color:#000;cursor:pointer;">保存自定义导航</button>
- </div>
- </div>
- `;
- popup.dialog({
- "title":"自定义添加导航",
- "content":content,
- "onContentReady":function($that){
- var $navigationExample = $that.dialogContent.querySelector(".navigation-example");
- var $navigationClear = $that.dialogContent.querySelector(".navigation-clear");
- var $navigationSave = $that.dialogContent.querySelector(".navigation-save");
- var $navigationInit = $that.dialogContent.querySelector(".navigation-init");
-
- var $textarea = $that.dialogContent.querySelector(".navigation-textarea");
- $navigationExample.addEventListener("click", function(){
- $textarea.value = JSON.stringify(self.defaultNavigationData, null, 4);
- });
- $navigationClear.addEventListener("click", function(){
- $textarea.value = "";
- });
- $navigationInit.addEventListener("click", function(){
- $textarea.value = "";
- commonFunctionObject.GMsetValue(self.customNavigationkey, null);
- });
- $navigationSave.addEventListener("click", function(){
- var content = $textarea.value;
- if(!content){
- commonFunctionObject.GMsetValue(self.customNavigationkey, null);
- commonFunctionObject.webToast({"message":"保存成功:数据为空", "background":"#FF4D40"});
- return;
- }
- if(content.length==0 || content.indexOf("{")==-1 || content.indexOf("[")==-1){
- commonFunctionObject.webToast({"message":"格式错误,请更正", "background":"#FF4D40"});
- return;
- }
- try{
- var contentJson = JSON.parse(content);
- if(Array.isArray(contentJson)){ //开始必须是数组
- var isOK = true;
- for(var i=0; i<contentJson.length; i++) {
- if(Array.isArray(contentJson[i])){ //此处必须是对象
- isOK = false;
- break;
- }
- if(!contentJson[i].hasOwnProperty("name") || !contentJson[i].hasOwnProperty("list")){
- isOK = false;
- break;
- }
- if(typeof(contentJson[i]["name"])!="string"){
- isOK = false;
- break;
- }
- if(!Array.isArray(contentJson[i]["list"])){ //此处必须是数组
- isOK = false;
- break;
- }
- for(var j=0; j<contentJson[i]["list"].length; j++){
- if(!contentJson[i]["list"][j].hasOwnProperty("name") || !contentJson[i]["list"][j].hasOwnProperty("url")){
- isOK = false;
- break;
- }
- if(typeof(contentJson[i]["list"][j]["name"])!="string" || typeof(contentJson[i]["list"][j]["url"])!="string"){
- isOK = false;
- break;
- }
- }
- if(!isOK){
- break;
- }
- }
- if(isOK){
- commonFunctionObject.GMsetValue(self.customNavigationkey, contentJson);
- commonFunctionObject.webToast({"message":"保存成功", "background":"#FF4D40"});
- }else{
- commonFunctionObject.webToast({"message":"格式错误,请更正", "background":"#FF4D40"});
- }
- }else{
- commonFunctionObject.webToast({"message":"格式错误,请更正", "background":"#FF4D40"});
- }
- }catch(e){
- commonFunctionObject.webToast({"message":"格式错误,请更正", "background":"#FF4D40"});
- }
- });
- }
- })
- }
- this.createHtml = function(element, elementInput, navigationData){
- $("#dsdsd99mmmjj7760011").remove();
-
- var isComplate = true;
- const host = window.location.host;
- const self = this;
- const elementNum = commonFunctionObject.randomNumber();
- const elementInterval = setInterval(function(){
- if(isComplate){
- var $element = $(element);
- var $box = $("#dsdsd99mmmjj7760011");
- isComplate = false;
- if($element.length!=0 && $box.length==0){
- var nameArray = [];
- var linkArray = [];
- for(var i=0; i<navigationData.length; i++){
- var name = "";
- if(i==0){
- name += '<span class="tabs-t'+elementNum+' tabs-t-selected-ddsds1idddx90" name="tab-list-xxsddddssd-'+i+'">'+navigationData[i].name+'</span>';
- }else{
- name += '<span class="tabs-t'+elementNum+' tabs-t-small-ddsds1idddx90" name="tab-list-xxsddddssd-'+i+'">'+navigationData[i].name+'</span>';
- }
- nameArray.push(name);
-
- var links = "";
- if(i==0){
- links = '<div id="tab-list-xxsddddssd-'+i+'">';
- }else{
- links = '<div id="tab-list-xxsddddssd-'+i+'" style="display:none;">';
- }
- for(var j=0;j<navigationData[i].list.length;j++){
- let url = navigationData[i].list[j].url;
- url = url.replace("${t}",(new Date()).getTime());
- let name = navigationData[i].list[j].name;
- links += "<a target='_blank' name='navigation' data-url='"+url+"' href='javascript:void(0);'>"+name+"</a>"
- }
- links += "</div>";
- linkArray.push(links);
- }
-
- var html = `
- <div id="dsdsd99mmmjj7760011">
- <div class="tab`+elementNum+`">
- <div class="tab-c-titles`+elementNum+`">`+nameArray.join("")+`</div>
- <div class="tab-c-links`+elementNum+`">`+linkArray.join("")+`</div>
- </div>
- <div style='margin-bottom:10px;margin-top:5px;font-size:12px;'>
- <a target='_blank' href='https://gf.qytechs.cn/zh-CN/scripts/469407' style="color: #000;background-color: #efefef;padding: 2px 5px; border-radius: 2px;">*该数据由油猴脚本提供</a>
-
- <a href="javascript:void(0);" name="customNavigation" style="color: #000;background-color: #efefef;padding: 2px 5px; border-radius: 2px;">🔧自定义网址</a>
- </div>
- <div>
- `;
-
- // //添加css 添加html
- self.createCss(elementNum);
- $element.prepend(html);
-
-
- //点击切换tab
- $("#dsdsd99mmmjj7760011 .tabs-t"+elementNum).on("click", function(e){
- $("div[id^='tab-list-xxsddddssd-']").hide();
- $(".tabs-t"+elementNum).removeClass("tabs-t-selected-ddsds1idddx90");
-
- $("#"+$(this).attr("name")).show();
- $(this).addClass("tabs-t-selected-ddsds1idddx90");
- });
-
- //点击链接
- $("#dsdsd99mmmjj7760011 a[name='navigation']").on("click", function(e){
- commonFunctionObject.GMopenInTab($(this).data("url").replace("@@",$(elementInput).val()));
- e.preventDefault()
- });
-
- //弹出自定义导航弹窗
- $("#dsdsd99mmmjj7760011 a[name='customNavigation']").on("click", function(e){
- self.showSetingDialog();
- e.preventDefault()
- });
- }
- isComplate = true;
- }
- }, 100);
- };
- this.hookBaidu = function(){
- let items = document.querySelectorAll("#content_left>div");
- for(let item of items){
- //给处理完成的做一个标识
- if(!!item.getAttribute("baidu_dealxx")){
- continue;
- }
- item.setAttribute("baidu_dealxx","--");
-
- let a = item.querySelector("a");
- if(!a || !a.href){
- continue;
- }
-
- //标注了html网址的忽略
- let OP_LOG_LINK = item.querySelector(".OP_LOG_LINK");
- if(!!OP_LOG_LINK && OP_LOG_LINK.innerText.search("http")!=-1){
- continue;
- }
-
- //有多个点击点的忽略
- let cGapBottomSmall = item.querySelector(".c-gap-bottom-small");
- if(!!cGapBottomSmall){
- continue;
- }
-
- //https://www.baidu.com/s?wd=一夜醒来欠地铁600多万?官方回应
- if (a.href.includes("www.baidu.com/link?url=")) {
- let url = item.getAttribute("mu");
- if (url && url != null && !url.includes("nourl.ubs.baidu.com")) {
- a.href = url;
- item.innerHTML += `<div style="color:#ccc;font-size:12px;display:flex;align-items:center;width:100%;overflow:hidden;white-space: nowrap;text-overflow: ellipsis;-o-text-overflow:ellipsis;">
- <img style="width:15px;height:15px;" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAKhJREFUOE+9k9ENwjAMBc8RA7AR7UhMQDsBszBBw0YMAAmKrBS3pM1HpOb/ne9ZjtD4pDHPEYBTB2FSU9fD21vrisEcHsF5BS0hFYCLwAhh0KkZGOZcBSATyAM4K8QNEC8Q+1yjAEhTPjeQ50+bq0KW4QRZAWxnXsBdO4euFC4AbOe1fvlijEGebrecOqeXl/gP2aiwr125g2wSvd321skfccr7363Z4Asklz4RHmdA1gAAAABJRU5ErkJggg=="/>
- <a style="color:#626675;" href="`+url+`" target="_blank">`+url+`</a>
- </div>`;
- }
- }
-
- let itemNews = item.querySelectorAll("[class^=single-card-wrapper] div,[class^=group-wrapper] div");
- if(!itemNews){
- continue;
- }
- //single-card-wrapper: https://www.baidu.com/s?ie=UTF-8&wd=es6 xxx的最新相关信息
- //group-wrapper: https://www.baidu.com/s?ie=UTF-8&wd=五一消费成绩单折射市场活力 资讯
- for(let itemNew of itemNews){
- let dataUrl = null;
- let divs = itemNew.querySelectorAll("div");
- for (let div of divs) {
- if ((dataUrl = div.getAttribute("data-url"))) {
- let a = itemNew.querySelector("a");
- a.setAttribute("href", dataUrl);
- }
- }
- }
- }
- };
- this.hookGoogle = function(){
- let items = document.querySelectorAll("#center_col a");
- for(let a of items){
- if(!a.getAttribute("target")) a.setAttribute("target","_blank");
- }
- };
- this.hooks = function(){
- const host = window.location.host;
- const href = window.location.href;
- const search = window.location.search;
- const self = this;
- setInterval(function(){
- if(host==="www.baidu.com"){
- self.hookBaidu();
- }else if(host==="www.google.com" || host==="www.google.com.hk"){
- self.hookGoogle();
- }
- }, 300);
- };
- this.show = function(){
- const self = this;
- const host = window.location.host;
- const href = window.location.href;
- if((host==="www.baidu.com")
- || (host==="www.so.com" && href.indexOf("www.so.com/s")!=-1)
- || (host==="www.sogou.com" && (href.indexOf("www.sogou.com/web")!=-1 || href.indexOf("www.sogou.com/sogou")!=-1))
- || (host==="cn.bing.com" && href.indexOf("cn.bing.com/search")!=-1)
- || (host==="www.bing.com" && href.indexOf("www.bing.com/search")!=-1)
- || (host==="www4.bing.com" && href.indexOf("www4.bing.com/search")!=-1)
- || (host==="so.toutiao.com" && href.indexOf("so.toutiao.com/search")!=-1)
- || (host==="www.google.com" && href.indexOf("www.google.com/search")!=-1)
- || (host==="www.google.com.hk" && href.indexOf("www.google.com.hk/search")!=-1)
- || (host==="duckduckgo.com" && href.indexOf("duckduckgo.com")!=-1)){
- let currentSearchEnginesData = null;
- for(var i=0; i<self.searchEnginesData.length; i++){
- if(host===self.searchEnginesData[i].host){
- currentSearchEnginesData = self.searchEnginesData[i];
- }
- }
- if(currentSearchEnginesData!=null){
- self.getNavigationData(currentSearchEnginesData.element, currentSearchEnginesData.elementInput);
- }
- self.hooks();
- }
- };
- this.start = function(){
- this.show();
- };
- }
- try{
- if(!functionController || functionController.searchEnginesNavigation){
- (new SearchEnginesNavigation()).start();
- }
- }catch(e){
- console.log("搜索引擎导航:error:"+e);
- }
-
- //国外的一些解析
- function AbroadVideoHelper(){
- this.isRun = function(){
- var urls=["youtube.com", "facebook.com"];
- for(var i=0; i<urls.length;i++){
- if(window.location.host.indexOf(urls[i])!=-1){
- return true;
- }
- }
- return false;
- };
- this.start = function(){
- if(!this.isRun()){
- return;
- }
- setInterval(function(){
- const host = window.location.host;
- const href = window.location.href;
- const eleId = "free-xx1-player-script-9999";
-
- //youtube解析
- if(host.indexOf("youtube.com")!=-1){
- if(href.indexOf("youtube.com/watch")!=-1){
- if($("#"+eleId).length != 0){
- return;
- }
- var html='<div id="'+eleId+'" style="width:50px;font-size:13px;cursor:pointer;font-weight:bold;text-align:center;background-color:rgba(0,0,0,0.05);border-radius:25px;padding: 9px 13px;position:relative;left:8px;">'+
- '下载'+
- '</div>';
- $("#owner").append(html);
- $("body").off("click", "#"+eleId).on("click", "#"+eleId, function(){
- var location_url = window.location.href;
- var videourl = "https://www.videofk.com/videofk-video-download/search?url="+location_url;
- commonFunctionObject.GMopenInTab(videourl);
- });
- }else{
- $("#"+eleId).remove();
- }
- }
-
- //facebook解析
- if(host.indexOf("facebook.com")!=-1){
- if(href.indexOf("facebook.com/watch")!=-1 || href.indexOf("/videos/")!=-1){
- if($("#"+eleId).length != 0){
- return;
- }
- var iconVideo = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAADOUlEQVRoQ+2Zz4uNURjHP9+F8g8gykKJNJMUUmzMDKZmYVYsLBRhOaEmFhRRLCZDY4PBrJRREkUMmY3URCk/s6GMhR9ZWNk9OvXO7b133ve+57w/7szUnLqbe59fn/Oc85znnCvm+NAcj595gHgGzWwDsBZYDawEFgI/gT/AR0nDZWe8lAyYWTewF9iTEeA4MCTpblkghQHM7BxwPDCgAUn9gTqJ4oUAzOwKcChnICOS9uXUranlBjCza8CBggFclHSkiI1cAGbWBTwt4jim2y3pSV5bwQBmtgq4BazP67RB7w3gsvAX+CbpV4hdL4CoPG4H3KcjxEEOWVdyHwPjkq5m6WcCmNmFaIaybFXx+2vgsqSRNOOpAGa2GHhY4lIpAnha0qkkA4kAZuZO0k9FPFag2yHJHYR1Iw3gO7CsgiCKmPwMdEmajBuZBmBmbuMcLOKpQt1BSUdTAczMVZmQmjwtpTmC3xqo0ybpw5ROXQbMrA+45GtQUmYVy7JlZpYl0/B73YZuBAjqbWYI4KWkzWkZeBVSNuMAZua1FBorSY4MTEpangYQlM4EgOdZy6ExazkAiNtoXELvgLasIGr0sT0QZaAVAO8ltadlYBTYNcsB7kjanQZwHjg2ywGaViHXIruN7DVmYA+4lnudpC+JGXBfhlwTZwDAPQi4s6o2kloJ9yzyyKcXajGA64F6JL1tChBlwdX0oIrSgirUK+l+49pudh/IhGhhBvolDSRtzKa9jJktBdxrWk+icvXnwO3oIexFWlXJbMbMbAGwJQWg1o0WWEKpLUjSBcZ7CXnV0ZhQXoBQP/MAUzNgZu5Z8EbRGQT2S7qZ107mHmhmuIQnl2lXxFCQQgDRmTEGbAt1DIxJ2pFDr06lDIBFgDsdlwQE8wNol/Q7QCdRtDBAlIVO4FlAMJ2SMk96H3ulAEQQh4FBD6d9koY85LxESgOIIK67qtLE87CkUt+cSgWIICaAjQkQE5I2eU1rgFAVACsA9/Dk/qGcGv+ANZK+BsTmJVo6QJSFXuBeLIKdkh54RRQoVAlABHECOAOclHQ2MC5v8coAIojR+AuCd1QBgpUCBMSRW3QeIPfUlaT4H0/7RUAi2a/NAAAAAElFTkSuQmCC";
- var html='<div id="'+eleId+'" style="width:25px;padding:10px 0px;text-align:center;background-color:#E5212E;position:fixed;top:250px;left:0px;color:#FFF;font-size:0px;z-index:9999999999999;cursor:pointer;margin:0px auto;text-align:center;">'+
- '<img src="'+iconVideo+'" style="width:20px;">'+
- '</div>';
- $("body").append(html);
- $("body").on("click", "#"+eleId, function(){
- var location_url = window.location.href;
- commonFunctionObject.GMsetValue("facebook_downloader_obj", {"facebook_url":location_url});
- commonFunctionObject.GMopenInTab("https://yt1s.com/facebook-downloader");
- });
- }else{
- $("#"+eleId).remove();
- }
- }
- }, 1000);
-
- if(window.location.href.indexOf("yt1s.com/facebook-downloader")!=-1){ //facebook下载
- var facebookObject = commonFunctionObject.GMgetValue("facebook_downloader_obj");
- if(!!facebookObject){
- $("#s_input").val(facebookObject.facebook_url);
- }
- }
- }
- }
- try{
- if(!functionController || functionController.abroadVideoHelper){
- (new AbroadVideoHelper()).start();
- }
- }catch(e){
- console.log("国外视频解析:error:"+e);
- }
- function ShortVideoDownloader(){
- this.douyinVideoDownloader = function(){
- /**
- * 此处代码有借鉴lazyfrog的代码,在原来代码的基础上修改了部分功能和bug修复
- * 脚本地址:https://gf.qytechs.cn/zh-CN/scripts/469521
- * 特此注明
- */
- const _self = this;
- function run(){
- if(window.location.host !== "www.douyin.com"){
- return;
- }
- let downloadOption = [{name:'',id:'toServer'}, {name:'打开视频(可下载)',id:'toLink'}];
- let videoElements = document.querySelectorAll('video');
- if(videoElements.length == 0) return;
-
- //把自动播放的video标签选择出来
- let playVideoElements=[];
- videoElements.forEach(function(element){
- let autoplay = element.getAttribute('autoplay');
- if(autoplay !== null){
- playVideoElements.push(element);
- }
- })
-
- let videoContainer=location.href.indexOf('modal_id') != -1
- ? playVideoElements[0]
- : playVideoElements[playVideoElements.length-1];
- if(!videoContainer) return;
-
- //获取视频播放地址
- let url = videoContainer && videoContainer.children.length>0 && videoContainer.children[0].src
- ? videoContainer.children[0].src
- : videoContainer.src;
-
- //获取视频ID,配合自定义id使用
- let videoId;
- let resp = url.match(/^(https:)?\/\/.+\.com\/([a-zA-Z0-9]+)\/[a-zA-Z0-9]+\/video/);
- let res = url.match(/blob:https:\/\/www.douyin.com\/(.*)/);
- if(resp && resp[2]){
- videoId=resp[2];
- }else if(res && res[1]){
- videoId=res[1]
- }else{
- videoId = videoContainer.getAttribute('data-xgplayerid')
- }
-
- let playContainer = videoContainer.parentNode.parentNode.querySelector('.xg-right-grid');
- if(!playContainer) return;
-
- //在对主页就行视频浏览时会出现多个按钮,删除不需要的,只保留当前对应的
- let videoDownloadDom = playContainer.querySelector('#scriptVideoDownload'+videoId);
- if(videoDownloadDom){
- let dom = playContainer.querySelectorAll('.xgplayer-playclarity-setting');
- dom.forEach(function(d){
- let btn = d.querySelector('.btn');
- if(d.id != 'scriptVideoDownload'+videoId && btn.innerText=='下载'){
- d.parentNode.removeChild(d);
- }
- });
- return;
- }
-
- if(videoContainer && playContainer){
- let playClarityDom = playContainer.querySelector('.xgplayer-playclarity-setting');
- if(!playClarityDom) return;
-
- let palyClarityBtn = playClarityDom.querySelector('.btn');
- if(!palyClarityBtn) return;
-
- let downloadDom = playClarityDom.cloneNode(true);
- downloadDom.setAttribute('id','scriptVideoDownload'+videoId);
-
- if(location.href.indexOf('search') == -1){
- downloadDom.style='margin-top:-68px;padding-top:100px;padding-left:20px;padding-right:20px;';
- }else{
- downloadDom.style='margin-top:0px;padding-top:100px;';
- }
-
- let downloadText = downloadDom.querySelector('.btn');
- downloadText.innerText='抖音下载';
- downloadText.style = 'font-size:14px;font-weight:600;';
- downloadText.setAttribute('id','zhmDouyinDownload'+videoId);
-
- let detail = playContainer.querySelector('xg-icon:nth-of-type(1)').children[0];
- let linkUrl = detail.getAttribute('href') ? detail.getAttribute('href') : location.href;
-
- if(linkUrl.indexOf('www.douyin.com')==-1){
- linkUrl='//www.douyin.com'+linkUrl;
- }
-
- downloadText.setAttribute('data-url',linkUrl);
- downloadText.removeAttribute('target');
- downloadText.setAttribute('href','javascript:void(0);');
-
- let virtualDom = downloadDom.querySelector('.virtual');
- downloadDom.onmouseover=function(){
- if(location.href.indexOf('search') == -1){
- virtualDom.style='display:block !important';
- }else{
- virtualDom.style='display:block !important;margin-bottom:37px;';
- }
- }
-
- downloadDom.onmouseout=function(){
- virtualDom.style='display:none !important';
- }
-
- let downloadHtml = '';
- downloadOption.forEach(function(item){
- if(item.id=="toServer"){
- downloadHtml += `<div style="text-align:center;width:100px;" class="item ${item.id}" id="${item.id}${videoId}">更多资源<span style="color:red;">(热点)</span></div>`;
- }else{
- downloadHtml += `<div style="text-align:center;width:100px;" class="item ${item.id}" id="${item.id}${videoId}">${item.name}</div>`;
- }
-
- })
-
- if(downloadDom.querySelector('.virtual')){
- downloadDom.querySelector('.virtual').innerHTML = downloadHtml;
- }
-
- playClarityDom.after(downloadDom);
-
- //直接打开
- let toLinkDom = playContainer.querySelector('#toLink'+videoId);
- if(toLinkDom){
- toLinkDom.addEventListener('click',function(){
- if(url.match(/^blob/)){
- commonFunctionObject.webToast({"message":"加密视频无法直接打开。可复制分享链,重新打开页面使用“下载”", "background":"#141414"});
- }else{
- window.open(url);
- }
- })
- }
-
- let toAi = playContainer.querySelector('#toServer'+videoId);
- if(toAi){
- toAi.addEventListener('click',function(){
- window.open("https://ss.qiwudianzi.top");
- })
- }
- }
- }
- //抖音视频下载需要鼠标右键保存
- function player(){
- if(window.location.host.indexOf(".douyinvod.com")!=-1){
- var html=`<div style="position:fixed;left:15px;bottom:300px;background-color:#ccc;width:200px;font-size:14px;padding:5px;">
- <div style="color:red;font-weight:bold;">下载请在视频框点击:鼠标右键 ->视频另存为,保存视频</div>
- <div style="margin-top:15px;"># 资源分享,交流学习,微信:ahonker999,QQ:2394856795</div>
- <div style="margin-top:15px;"># 网址导航效率工具,免费<a target="_blank" href="http://bds.yt3166.com">点我查看</a></div>
- </div>`;
- $("body").append(html);
- }
- }
- setInterval(function(){
- run();
- }, 500);
- player();
- };
- this.kuaishouVideoDownloader = function(){
- if(window.location.host !== "www.kuaishou.com"){
- return;
- }
- window.addEventListener('load',function(){
- async function downloader(){
- let kuaishouVideoDownloder = document.querySelector("#kuaishou-video-downloder");
- if(!kuaishouVideoDownloder){
- let downloadDIV = document.createElement("div");
- downloadDIV.style = "cursor:pointer;width:50px;height:40px;line-height:40px;text-align:center;background-color:#FFF;color:#000;position:fixed;top:200px;left:0px;z-index:999;";
- downloadDIV.innerText = "下载";
- downloadDIV.setAttribute('id','kuaishou-video-downloder');
- document.body.appendChild(downloadDIV);
-
- downloadDIV.addEventListener("click", function(e){
- let videoDom = document.querySelector('.player-video');
- if(!videoDom){
- console.log('没有找到DOM');
- return;
- }
- let videoSrc = videoDom.getAttribute('src');
- if(videoSrc.match(/^blob/)){
- console.log('blob视频无法下载');
- return;
- }
- commonFunctionObject.GMopenInTab(videoSrc);
- });
- }
- }
- document.querySelectorAll(".switch-item").forEach(function(value){
- value.addEventListener("click", function(){
- downloader();
- });
- })
- downloader();
- setInterval(function(){
- let kuaishouVideoDownloder = document.querySelector("#kuaishou-video-downloder");
- if(kuaishouVideoDownloder){
- if(window.location.href.match(/https:\/\/www\.kuaishou\.com\/short-video\/.*?/)){
- kuaishouVideoDownloder.style.display = "block";
- }else{
- kuaishouVideoDownloder.style.display = "none";
- }
- }
- }, 800);
- });
- };
- this.start = function(){
- this.douyinVideoDownloader();
- this.kuaishouVideoDownloader();
- };
- };
- try{
- if(!functionController || functionController.shortVideoDownload){
- (new ShortVideoDownloader()).start();
- }
- }catch(e){
- console.log("短视频去水印下载:error:"+e);
- }
-
- })();