新增增加主动过滤广告和被动过滤广告功能。基本上你可以自由的关闭所有页面的广告了。支持大部分网站视频、音频、图片等资源的下载,智能抠图去水印,新增二维码工具、新增m3u8视频下载、画中画功能
Du vil måske også kunne lide 优酷、爱奇艺、腾讯、芒果等全网VIP视频破解播放,知乎视频、微信公众号视频下载,QQ音乐网易云音乐及MV下载、酷狗音乐、喜马拉雅、蜻蜓FM听书有声小说下载。长期更新,放心使用。
// ==UserScript== // @name 【科学工具箱】整合好玩实用的各种功能,不定时持续更新中... // @version 24 // @author Paladin-M // @namespace Z3JlYXN5Zm9yaw== // @description 新增增加主动过滤广告和被动过滤广告功能。基本上你可以自由的关闭所有页面的广告了。支持大部分网站视频、音频、图片等资源的下载,智能抠图去水印,新增二维码工具、新增m3u8视频下载、画中画功能 // @match *://*/* // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAFySURBVDhPzdA/S0JhFM####d6Ab0DjUywIashqPdQbbqVFaRDBWl/IW0JRKU9acsSGi1Qm4NKG6Jora2xqE3uc8/pPNf7aHsNDh8uZzjf+3DwNeNzXLN+6vLZHBliGg+sLT8hnm+A92uw03WQsV+Ho/1DwFv6nhtkQ2bF0YAEgmtLz0gUmmBZUplrsGFCPRHw2W1+1eVruTeYCKwuPiKeu3Nv0NIRQ99EA0WGSeNokA2KDiuOhZgmQ8n1dySKb+B8E6rwADZkJg0Uxq5rHHsGh7FDYzikAUyNvmAkVkNyoY4V+SaM+SriGnBKm64Sbf2S6jvjA0lMUxZTVLbSVMaGSHWcI6mhr0KkWZfMhsyq/4YZR5ShC2T41WJqQLEc05CZNHnBh+1Rv7SsigTytE3HSPOtBKpoUQ2qowpb0wFylT65QyLWlQSytEsn8oKmBGSJ6/J3j8yk9UbA8bRDbbY+JnK8Q0UJ3Ls3sM2Sx9H+GIDzA5wTVm/Huk5xAAAAAElFTkSuQmCC // @require https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-d/jquery/2.1.4/jquery.min.js // @require https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-d/toastr.js/2.1.4/toastr.min.js // @require https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-d/jquery.qrcode/1.0/jquery.qrcode.min.js // @require https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-d/sweetalert/2.1.2/sweetalert.min.js // @require https://greasyfork.org/scripts/469053-jsqr/code/jsQR.js?version=1207999 // @require https://lib.baomitu.com/m3u8-parser/4.7.1/m3u8-parser.min.js // @require https://greasyfork.org/scripts/468518-addqrcode/code/addqrcode.js?version=1204970 // @require https://update.greasyfork.org/scripts/468541/1398387/ADDimgdown.js // @require https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-d/vue/2.6.1/vue.js // @require https://greasyfork.org/scripts/468820-m3u8-hls/code/m3u8-hls.js?version=1206200 // @require https://greasyfork.org/scripts/468821-mux-mp4/code/mux-mp4.js?version=1206201 // @require https://greasyfork.org/scripts/469054-streamsaver/code/StreamSaver.js?version=1208001 // @require https://greasyfork.org/scripts/468813-downm3u8/code/downm3u8.js?version=1213558 // @require https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-d/hls.js/1.4.6/hls.min.js // @require https://update.greasyfork.org/scripts/469703/1296888/kxtool.js // @license End-User License Agreement // @grant unsafeWindow // @grant GM_xmlhttpRequest // @grant GM_setClipboard // @grant GM_setValue // @grant GM_getValue // @grant GM_deleteValue // @grant GM_openInTab // @grant GM_registerMenuCommand // @grant GM_unregisterMenuCommand // @grant GM.getValue // @grant GM.setValue // @grant GM_info // @grant GM_notification // @grant GM_getResourceText // @grant GM_openInTab // @grant GM_addStyle // @grant GM_download // ==/UserScript== /* 食用方法: 安装插件成功后, 会在页面最左边的中间出现一个橙色小竖条, 鼠标移动到上面即可出现菜单页面 所有功能都会被整合到此菜单中 点击菜单即可享受 2023.07.01 视频工具内置播放器可播放m3u8和mp4的视频,并且增加无限倍率以及画中画功能 2023.06.29 增加主动过滤广告和被动过滤广告功能。基本上你可以自由的关闭页面的广告了。 你可以自由的删除网页上你不喜欢的内容 【被动去广告功能根据过滤规则过滤广告, 如果有些网页被错误过滤,可以点击浏览器右上方的油猴图标, 选择脚本右边的选项,选择排除该站点。这样可以使脚本在该网页停止运行】 2023.06.27 新增视频画中画功能。此功能在视频工具菜单里, 粘贴视频地址后点击在线播放后,鼠标移动到视频画面中间有按钮。点击就可以进入画中画播放。 视频地址仅支持m3u8以及mp4格式 2023.06.22 增加视频下载和播放工具,可以在线观看和下载m3u8、MP4的视频 2023.06.13 增加二维码生成工具,可查看当前页面的二维码,可自定义二维码内容 方便手机查看。解析二维码内容 2023.06.12 第一个版本,支持大部分网站视频、音频、图片等资源的下载 并以缩略图形式展示,便于选择下载内容, 节省时间和流量。 部分加密视频无法下载, 请知悉。欢迎留言增加新功能 */ var dataversion=8; var mytoolzxSwitch=true; var tooldve=false; GM_setValue('m3u8url',''); // tooldve=true; // (function() { 'use strict'; var link = document.createElement('link'); link.href = 'https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-d/toastr.js/2.1.4/toastr.min.css'; link.rel = 'stylesheet'; link.type = 'text/css'; document.head.appendChild(link); var $menu = $('<div id="mytoolzxmenu"></div>'); $menu.css({ 'position': 'fixed', 'left': '0', 'top': '40%', 'transform': 'translateY(-50%)', 'z-index': '9999999998', 'cursor': 'pointer', 'background-color': '#ff9900', 'width': '3px', 'height': '60px', 'border-radius': '1px', 'transition': 'width .5s' }) .attr("mytoolzxversion", GM_info.script.version) .appendTo('body'); // Add the click and hover events to the menu $('body').on('click mouseenter',"#mytoolzxmenu",function(){ if (!mytoolzxSwitch){ return false } if ($("#mytoolzxmenuPage").is(':visible')) { $(this).animate({width: '3px'}, 300); $("#mytoolzxmenuPage").fadeOut(1000); }else{ $("#mytoolzxmenuPage").fadeIn(); $(this).animate({width: '2px'}, 300); } }); $('body').on('mouseleave',"#mytoolzxmenuPage",function(){ if (!mytoolzxSwitch){ return false } if (tooldve){ }else{ $("#mytoolzxmenu").animate({width: '3px'}, 300); $(this).fadeOut(1000); } }); // Set up the menu items var Menudata = { version:dataversion, data: { download: { name: "常用功能", items: [ { name: "下载页面资源" ,val: "img-down",tag: "0",type: ""}, { name: "二维码工具" ,val: "addqrcode",tag: "0",type: ""}, { name: "图片去水印" ,val: "0",go: "https://quququ.cn",tag: "0",type: ""}, { name: "图片压缩" ,val: "0",go: "https://tinify.cn/",tag: "0",type: ""}, { name: "智能抠图" ,val: "0",go: "https://www.remove.bg/zh",tag: "0",type: ""}, { name: "在线PS" ,val: "0",go: "https://ps.gaoding.com/#/",tag: "0",type: ""}, { name: "图片工具" ,val: "0",go: "https://picwish.cn/tools",tag: "0",type: ""}, { name: "视频工具" ,val: "downm3u8",tag: "0",type: ""}, ] }, search: { name: "其他功能", items: [ { name: "提需求",val: "0",go: "https://greasyfork.org/zh-CN/scripts/468468/feedback",tag: "0",type: ""}, { name: "赏好评",val: "0",go: "https://greasyfork.org/zh-CN/scripts/468468/feedback" ,tag: "0",type: ""}, { name: "征集好用好玩的网站。我会添加到这里",val: "0",go: "https://greasyfork.org/zh-CN/scripts/468468/discussions/187908",tag: "0",type: "" }, ] }, f2h: { name: "自定义开关功能区", items: [ { name: "主动去广告" ,val: "Proactivelyads",tag: "0",type: "button",str: "打开后页面右上角会出现调试按钮。进入调试模式移动鼠标,可以点击你需要删除的页面元素包括广告。误删可以使用恢复按钮即可让页面恢复正常。适合大部分网页。重新打开页面生效"}, { name: "被动去广告" ,val: "Passiveads",tag: "1",type: "button",str: "打开此功能后会自动删除常见的悬浮广告和第三方iframe广告,适合大部分网页。重新打开页面生效"}, { name: "陆续开发中有建议反馈" ,val: "addqrcode",tag: "1",type: "button"}, ] }, }, }; function defaultMenua(Menudata) { GM_setValue('Menua',Menudata); toastr.success('操作成功!', '', { positionClass: 'toast-bottom-right', closeButton: true, // 是否显示关闭按钮 progressBar: true, // 是否显示进度条 timeOut: 2000 // 显示时间(毫秒) }); } function shouldUpdateMenua(Menulold, Menulnew) { // 比较版本号大小,确定新版本和旧版本 var Menuall = (Menulold.version > Menulnew.version) ? Menulold : Menulnew; var oldVersion = (Menulold.version < Menulnew.version) ? Menulold : Menulnew; // 如果存在旧版本,则将新版本的tag按照旧版本保存 for (var item in Menuall.data) { if (Menuall.data.hasOwnProperty(item)) { for (var i = 0; i < Menuall.data[item].items.length; i++) { var newTag = Menuall.data[item].items[i].tag; var oldTag = (oldVersion && oldVersion.data[item].items[i]) ? oldVersion.data[item].items[i].tag : 0; if (newTag !== oldTag) { if (newTag=="1"){ Menuall.data[item].items[i].tag=="1"; }else{ Menuall.data[item].items[i].tag = oldTag; } } } } } GM_setValue('Menua', Menuall); return Menuall; } var Menuall = GM_getValue("Menua", Menudata); Menuall= shouldUpdateMenua(Menudata, Menuall); setTimeout(function(){ // },1000) var $menuPage = $('<div id="mytoolzxmenuPage"></div>'); $menuPage.css({ 'position': 'fixed', 'left': '0', 'top': '50%', 'transform': 'translateY(-50%)', 'z-index': '9999999999', 'padding': '20px', 'background-color': '#fff', 'max-width': '500px', 'max-height': '800px', 'min-width': '250px', 'min-height': '450px', 'border-radius': '0 20px 20px 0', 'box-shadow': '5px 0 15px rgba(0,0,0,0.3)', 'display': 'none', 'flex-direction': 'column', 'align-items': 'stretch', 'overflow-y': 'auto' }) .attr("mytoolzxversion", GM_info.script.version) .appendTo('body'); var mytoolzxmenuPage = $('#mytoolzxmenuPage[mytoolzxversion="'+GM_info.script.version+'"]'); var label = $('<div class="label" godefault="default">[重置] 版本:'+GM_info.script.version+'</div>'); mytoolzxmenuPage.append(label); GM_addStyle('#mytoolzxmenuPage {position: relative;} .label {position: absolute;bottom: 0;left: 0;font-size: 12px;color: #666;}'); window.onload = function() { setTimeout(removemyFunction(), 500); }; function removemyFunction() { $('[id="mytoolzxmenu"]').each(function() { var elementVersion = $(this).attr("mytoolzxversion"); if (!elementVersion) { mytoolzxSwitch=false; if (confirm("发现工具箱旧版本,旧版本和新版本不兼容。关闭旧版本后升级。是否确定升级?")) { window.location.href = "https://greasyfork.org/zh-CN/scripts/468468"; } } }); $("[mytoolzxversion]").each(function() { var elementVersion = $(this).attr("mytoolzxversion"); if (elementVersion && parseFloat(elementVersion) < parseFloat(GM_info.script.version)) { mytoolzxSwitch=false; console.log("停止脚本运行,版本不匹配"); $(this).remove(); } }); } // Add the menu items to the menu page var Menualldata=Menuall.data; for (var key in Menualldata) { var $menuItem = $('<div class="menuItem"></div>'); $menuItem.css({ 'display': 'flex', 'flex-wrap': 'wrap', 'align-items': 'center', 'justify-content': 'center', 'width': '100%', 'border-radius': '10px', 'margin-bottom': '10px', 'margin-top': '30px', 'cursor': 'pointer', 'transition': 'all .2s', 'position': 'relative', 'height': 'auto', }) .appendTo($menuPage); var $categoryName = $('<div class="categoryName"></div>'); $categoryName.text(Menualldata[key].name); $categoryName.css({ 'color': '#ff9900', 'font-size': '16px', 'position': 'absolute', 'top': '-25px', 'left': '50%', 'transform': 'translateX(-50%)', }) .appendTo($menuItem); var totalHeight = 0; var subItemCount = Menualldata[key].items.length; for (var i in Menualldata[key].items) { var $subItem = $('<div class="subItem"></div>'); var subItem=Menualldata[key].items[i].name; $subItem.text(Menualldata[key].items[i].name); $subItem.css({ 'padding': '5px 0px ', 'border-radius': '5px', 'cursor': 'pointer', 'transition': 'all .2s', 'flex-grow': 1, 'min-width': '80px', 'max-width': '100px', 'font-size': '15px', 'font-weight': '500', 'justify-content': 'center', 'align-items': 'center', 'text-align': 'center', 'border': '1px solid #ccc', 'background': '#fff', 'margin': '2px 5px', 'position': 'relative', }) .attr("gotool", Menualldata[key].items[i].val) .hover(function() { $(this).css({'background-color': '#ff9900', 'color': '#fff'}); if ($(this).index() == 0) { $(this).parent().find('.categoryName').css('visibility', 'visible'); } }, function() { if ($(this).attr("tag")=="1") { $(this).css({'background-color': '#e1dfdf', 'color': '#978e8e'}); } else{ $(this).css({'background-color': '#fff', 'color': '#000'}); } if ($(this).index() == $(this).parent().children().length - 1) { $(this).parent().find('.categoryName').css('visibility', 'visible'); } }) .appendTo($menuItem); // 获取自定义属性值 var customAttr = $subItem.attr('gotool'); // 根据自定义属性值更改背景色 if (Menualldata[key].items[i].val=="Proactivelyads" && Menualldata[key].items[i].tag=="0" ) { var butjc = GM_getValue(Menualldata[key].items[i].val); if (butjc !== undefined && butjc == "0") { ProactivelyadsBtn() } Proactivelyads(); var intervalID = null; window.addEventListener('load', function() { intervalID = setInterval(Proactivelyads, 1000); }); setTimeout(function() { clearInterval(intervalID); }, 5000); } if (Menualldata[key].items[i].val=="Passiveads" && Menualldata[key].items[i].tag=="0" ) { var intervalID = null; window.addEventListener('load', function() { intervalID = setInterval(Passiveads, 1000); }); setTimeout(function() { clearInterval(intervalID); }, 15000); } if (Menualldata[key].items[i].go) { $subItem.attr("go", Menualldata[key].items[i].go); } if (Menualldata[key].items[i].tag) { $subItem.attr("tag", Menualldata[key].items[i].tag); $subItem.attr("title", Menualldata[key].items[i].name); if (Menualldata[key].items[i].str){ $subItem.attr("str", Menualldata[key].items[i].str); } if (Menualldata[key].items[i].tag=="1") { $subItem.css({'background-color': '#e1dfdf', 'color': '#978e8e'}); $subItem.html('<span class="line"></span>'+ $subItem.attr("title")); } } if (Menualldata[key].items[i].type) { $subItem.attr("type", Menualldata[key].items[i].type); } totalHeight += $subItem.outerHeight(true)-5; } // Set the height of menuItem to the total height of subItems plus 40px padding // $menuItem.css('height', totalHeight + 40); // Calculate the border radius based on whether it's the first or last row if (subItemCount == 1) { $menuItem.css('border-radius', '10px'); } else if (key == 0) { $menuItem.css('border-top-left-radius', '10px'); $menuItem.css('border-top-right-radius', '10px'); } else if (key == Object.keys(Menuall).length - 1) { $menuItem.css('border-bottom-left-radius', '10px'); $menuItem.css('border-bottom-right-radius', '10px'); } // Inject the CSS GM_addStyle('#mytoolzxmenuPage .menuItem:first-child { margin-top: 0; }'); GM_addStyle(` .subItem .line { display: block; width: 100%; position: absolute; top: 50%; border-bottom: 1px dashed #fff; } #mytoolzxmenuPage .menuItem { background-color: #fff; color: #000; font-size: 20px; font-weight: bold; box-shadow: 0 5px 15px rgba(0,0,0,0.3); } #mytoolzxmenuPage .subItem:hover { } `); } // bind click event to download button $("body").on('click', '[godefault="default"]', function() { hidemenu(); swal({ title: "提示", text: "您是否要重置工具箱的所有设置?", icon: "warning", buttons: ["取消", "确定"], }).then((value) => { if (value == true) { defaultMenua(Menudata); } else { return; } }) }) $("body").on('click', '[gotool][go]', function() { GM_openInTab($(this).attr("go"), {active: !0}); return false }) $("body").on('click', '[gotool][tag][type="button"]', function() { var vthis= $(this); hidemenu(); if (!mytoolzxSwitch){ return false } if (vthis.attr("gotool")=="Proactivelyads"){ swal({ title: "提示", text: ""+vthis.attr("str")+"", icon: "warning", buttons: ["取消", "确定"], }).then((value) => { if (value == true) { GM_setValue(vthis.attr("gotool"),'0'); ProactivelyadsBtn(); } else { return; } }) return; } var txt=""; var tag=vthis.attr("tag"); var ftxt=""; if (tag=="1"){ txt="开启【"+vthis.attr("title")+"】"; ftxt="关闭"; }else{ txt="关闭【"+vthis.attr("title")+"】"; ftxt="开启"; } swal({ title: "提示", text: "是否"+txt+"此功能?\n"+txt+"后再次点击此按钮继续"+ftxt+"此功能\n"+vthis.attr("str")+"", icon: "warning", buttons: ["取消", "确定"], }).then((value) => { if (value == true) { changetag(vthis); } else { return; } }) }) $("body").on('click', '[gotool="addqrcode"]', function() { if (!mytoolzxSwitch){ return false } ADDqrcode(); hidemenu(); }) $("body").on('click', '[gotool="img-down"]', function() { if (!mytoolzxSwitch){ return false } hidemenu(); ADDimgdown() }) $("body").on('click', '[gotool="downm3u8"]', function() { if (!mytoolzxSwitch){ return false } hidemenu(); sectionm3u8menu(GM_getValue("m3u8url", "")); }) function hidemenu() { if (!mytoolzxSwitch){ return false } $("#mytoolzxmenu").animate({width: '3px'}, 300); $("#mytoolzxmenuPage").fadeOut(1000); } function changetag(v) { var tagValue = v.attr("tag"); var tag="0"; if (tagValue == "0") { tag="1"; v.attr("tag", tag); v.html('<span class="line"></span>'+v.attr("title")); v.css({'background-color': '#e1dfdf', 'color': '#978e8e'}); } else { v.attr("tag", tag); v.find("span").remove(); v.css({'background-color': '#fff', 'color': '#000'}); } var Menuall = GM_getValue('Menua', Menudata); var itemName = v.attr("title"); for (const key in Menuall.data) { if (Menuall.data.hasOwnProperty(key)) { const items = Menuall.data[key].items; for (const item of items) { if (item.name === itemName) { item.tag =tag; } } } } GM_setValue('Menua', Menuall); } })();