This script should not be not be installed directly. It is a library for other scripts to include with the meta directive // @require https://update.sleazyfork.org/scripts/468541/1204381/%E3%80%90%E7%A7%91%E5%AD%A6%E5%B7%A5%E5%85%B7%E7%AE%B1%E3%80%91%E6%95%B4%E5%90%88%E5%A5%BD%E7%8E%A9%E5%AE%9E%E7%94%A8%E7%9A%84%E5%90%84%E7%A7%8D%E5%8A%9F%E8%83%BD%EF%BC%8C%E4%B8%8D%E5%AE%9A%E6%97%B6%E6%8C%81%E7%BB%AD%E6%9B%B4%E6%96%B0%E4%B8%AD.js
// ==UserScript==
// @name 【科学工具箱】整合好玩实用的各种功能,不定时持续更新中...
// @version 2
// @author Paladin-M
// @namespace Z3JlYXN5Zm9yaw==
// @description 6月新增功能:支持大部分网站视频、音频、图片等资源的下载,并以缩略图形式展示,便于选择下载内容,节省时间和流量。部分加密视频无法下载,请知悉。欢迎留言增加新功能。二维码生成工具,查看当前页面的二维码
// @match *://*/*
// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAFySURBVDhPzdA/S0JhFMfxXxd6Ab0DjUywIashqPdQbbqVFaRDBWl/IW0JRKU9acsSGi1Qm4NKG6Jora2xqE3uc8/pPNf7aHsNDh8uZzjf+3DwNeNzXLN+6vLZHBliGg+sLT8hnm+A92uw03WQsV+Ho/1DwFv6nhtkQ2bF0YAEgmtLz0gUmmBZUplrsGFCPRHw2W1+1eVruTeYCKwuPiKeu3Nv0NIRQ99EA0WGSeNokA2KDiuOhZgmQ8n1dySKb+B8E6rwADZkJg0Uxq5rHHsGh7FDYzikAUyNvmAkVkNyoY4V+SaM+SriGnBKm64Sbf2S6jvjA0lMUxZTVLbSVMaGSHWcI6mhr0KkWZfMhsyq/4YZR5ShC2T41WJqQLEc05CZNHnBh+1Rv7SsigTytE3HSPOtBKpoUQ2qowpb0wFylT65QyLWlQSytEsn8oKmBGSJ6/J3j8yk9UbA8bRDbbY+JnK8Q0UJ3Ls3sM2Sx9H+GIDzA5wTVm/Huk5xAAAAAElFTkSuQmCC
// @require https://cdn.staticfile.org/jquery/2.1.4/jquery.min.js
// @require https://cdn.bootcdn.net/ajax/libs/toastr.js/2.1.4/toastr.min.js
// @require https://cdn.staticfile.org/jquery.qrcode/1.0/jquery.qrcode.min.js
// @require https://cdn.jsdelivr.net/npm/[email protected]/dist/jsQR.js
// @require https://greasyfork.org/scripts/468518-addqrcode/code/addqrcode.js?version=1204352
// @require https://greasyfork.org/scripts/468541-addimgdown/code/ADDimgdown.js?version=1204378
// @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
// @noframes
// ==/UserScript==
/*
食用方法:
安装插件成功后,
会在页面最左边的中间出现一个橙色小竖条,
鼠标移动到上面即可出现菜单页面
所有功能都会被整合到此菜单中
点击菜单即可享受
2023.06.13 增加二维码生成工具,可查看当前页面的二维码,可自定义二维码内容
方便手机查看
2023.06.12 第一个版本,支持大部分网站视频、音频、图片等资源的下载
并以缩略图形式展示,便于选择下载内容,
节省时间和流量。
部分加密视频无法下载,
请知悉。欢迎留言增加新功能
*/
var mytoolzxSwitch=true;
var tooldve=false;
//tooldve=true;
(function() {
'use strict';
var link = document.createElement('link');
link.href = 'https://cdn.bootcdn.net/ajax/libs/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': '999997',
'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();
}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();
}
});
// Set up the menu items
var Menuall = {
download: {
name: "常用功能",
items: [
{ name: "下载页面资源" ,val: "img-down"},
{ name: "二维码工具" ,val: "addqrcode"},
]
},
search: {
name: "其他功能",
items: [
{ name: "提需求",val: "0",go: "https://greasyfork.org/zh-CN/scripts/468468/feedback"},
{ name: "赏好评",val: "0",go: "https://greasyfork.org/zh-CN/scripts/468468/feedback" },
]
},
// recommend: { }
// recommend: { }
};
// Set up the menu page
var $menuPage = $('<div id="mytoolzxmenuPage"></div>');
$menuPage.css({
'position': 'fixed',
'left': '0',
'top': '50%',
'transform': 'translateY(-50%)',
'z-index': '999998',
'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">版本:'+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
for (var key in Menuall) {
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(Menuall[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 = Menuall[key].items.length;
for (var i in Menuall[key].items) {
var $subItem = $('<div class="subItem"></div>');
$subItem.text(Menuall[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-color': '#eee',
'margin': '10px',
})
.attr("gotool", Menuall[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() {
$(this).css({'background-color': '#fff', 'color': '#000'});
if ($(this).index() == $(this).parent().children().length - 1) {
$(this).parent().find('.categoryName').css('visibility', 'visible');
}
})
.appendTo($menuItem);
if (Menuall[key].items[i].go) {
$subItem.attr("go", Menuall[key].items[i].go);
}
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(`
#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', '[gotool][go]', function() {
GM_openInTab($(this).attr("go"), {active: !0});
})
$("body").on('click', '[gotool="decqrcode"]', function() {
if (!mytoolzxSwitch){
return false
}
DECqrcode();
hidemenu();
})
$("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()
})
function hidemenu() {
if (!mytoolzxSwitch){
return false
}
$("#mytoolzxmenu").animate({width: '3px'}, 300);
$("#mytoolzxmenuPage").fadeOut();
}
})();