您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Easy to run tasks in GEE
// ==UserScript== // @name GEE_OneKey_run // @namespace https://www.micblo.com/ // @version 0.1.1 // @description Easy to run tasks in GEE // @author Payne // @match https://code.earthengine.google.com/ // @grant none // @require http://code.jquery.com/jquery-1.12.4.min.js // @license MIT // ==/UserScript== (function() { 'use strict'; $(document).ready(function() { var html = [ '<div style="z-index:3000;flex: 1 0 auto;display: flex;justify-content: flex-end;">', '<a id="btn-run-all" style="cursor:pointer;text-decoration:none;padding:5px 5px;border:1px solid green;margin-right: 5px;color: green;background: white;">运行全部</a>', '<a id="btn-run-n" style="cursor:pointer;text-decoration:none;padding:5px 5px;border:1px solid;margin-right: 5px;background: white;">运行指定数量</a>', '<a id="btn-close-popup" style="cursor:pointer;text-decoration:none;padding:5px 5px;border:1px solid red;color: red;background: white;">批量关闭弹窗</a>', '</div>' ]; var $Run_all = $(html.join('')); $("user-box").before($Run_all); $('#btn-run-all').click(function() { if (document.querySelectorAll('ee-image-config-dialog,ee-table-config-dialog').length) { return alert('目前存在任务弹窗。\n为避免异常,请手动cancel或批量关闭弹窗后再运行任务'); } var taskPanes = document.getElementById('task-pane').shadowRoot.querySelectorAll('.type-EXPORT_IMAGE,.type-EXPORT_FEATURES'); if (!taskPanes.length) { return alert('暂无可以运行的任务'); } if (taskPanes.length > 80) { return alert('任务多于80!\n请使用指定数量的运行方法,否则会导致被谷歌屏蔽'); } if (!confirm('是否运行' + taskPanes.length + '个待运行的任务?\n按取消则放弃')) { return; } alert('按确定后将开始运行任务!\n浏览器会自动弹出任务浮窗,脚本会自动帮忙点击\n如果存在浮窗的任务出错,请手动cancel,谢谢'); taskPanes.forEach(function (v) { v.getElementsByClassName('run-button')[0].click(); }); var timer = setInterval(function () { var dialogs = document.querySelectorAll('ee-image-config-dialog,ee-table-config-dialog'); if (dialogs.length !== taskPanes.length) { return; } clearInterval(timer); dialogs.forEach(function (v) { v.shadowRoot.children[0].shadowRoot.children[0].querySelectorAll('.buttons > .ok-button')[0].click(); }); }, 500); }); $('#btn-run-n').click(function() { if (document.querySelectorAll('ee-image-config-dialog').length) { return alert('目前存在任务弹窗。\n为避免异常,请手动cancel或批量关闭弹窗后再运行任务'); } var taskPanes = document.getElementById('task-pane').shadowRoot.querySelectorAll('.type-EXPORT_IMAGE,.type-EXPORT_FEATURES'); if (!taskPanes.length) { return alert('暂无可以运行的任务'); } var taskNum = parseInt(prompt('请输入需要运行的任务数:\nTIPS1: 不得大于80;超过当前最多的任务数时则全部运行)\nTIPS2: 会选取前N个任务执行')); if (isNaN(taskNum)) { return alert('需要运行的任务数必须是正整数!'); } if (taskNum > 80) { return alert('需要运行的任务不得多于80!'); } if (taskNum > taskPanes.length) { taskNum = taskPanes.length; } taskPanes = Array.from(taskPanes).slice(0, taskNum); if (!confirm('是否运行' + taskPanes.length + '个待运行的任务?\n按取消则放弃')) { return; } alert('按确定后将开始运行任务!\n浏览器会自动弹出任务浮窗,脚本会自动帮忙点击\n如果存在浮窗的任务出错,请手动cancel,谢谢'); taskPanes.forEach(function (v) { v.getElementsByClassName('run-button')[0].click(); }); var timer = setInterval(function () { var dialogs = document.querySelectorAll('ee-image-config-dialog,ee-table-config-dialog'); if (dialogs.length !== taskPanes.length) { return; } clearInterval(timer); dialogs.forEach(function (v) { v.shadowRoot.children[0].shadowRoot.children[0].querySelectorAll('.buttons > .ok-button')[0].click(); }); }, 500); }); $('#btn-close-popup').click(function() { var dialogs = document.querySelectorAll('ee-image-config-dialog,ee-table-config-dialog'); if (dialogs.length) { dialogs.forEach(function (v) { v.shadowRoot.children[0].shadowRoot.children[0].querySelectorAll('.buttons > .cancel-button')[0].click(); }); } }); }); })();