【科学工具箱】整合好玩实用的各种功能,不定时持续更新中...

6月新增功能:支持大部分网站视频、音频、图片等资源的下载,并以缩略图形式展示,便于选择下载内容,节省时间和流量。部分加密视频无法下载,请知悉。欢迎留言增加新功能。二维码生成工具,查看当前页面的二维码

Ekde 2023/06/13. Vidu La ĝisdata versio.

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();
     }
})();