您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
让工作更高效,让生活更美好!(去你妈的社会面,去你妈的社会面动态清零,去你妈的全民集中核酸检测!)
当前为
// ==UserScript== // @name 阿里云效伴侣&WorkTile // @version 0.0.9 // @description 让工作更高效,让生活更美好!(去你妈的社会面,去你妈的社会面动态清零,去你妈的全民集中核酸检测!) // @author Jack.Chan ([email protected]) // @namespace http://fulicat.com // @homepage https://greasyfork.org/zh-CN/scripts/444697 // @url https://greasyfork.org/zh-CN/scripts/444697-%E9%98%BF%E9%87%8C%E4%BA%91%E6%95%88%E4%BC%B4%E4%BE%A3-worktile // @license MIT // @match https://flow.aliyun.com/pipelines/*/* // @icon https://flow.aliyun.com/favicon.ico // @grant none // @run-at document-end // ==/UserScript== (function() { 'use strict'; function initStyle() { var $style = document.createElement('style'); $style.type = 'text/css'; $style.innerHTML = ` .tb-navigation-avatar img{ border: 2px solid #ffffff; box-shadow: 0 0 10px 8px #4caf50; } `; document.head.appendChild($style); } function doCopy(value, callback) { value = value === undefined || value === null ? '' : value; var $textarea = document.createElement('textarea'); $textarea.style.cssText = "position:absolute;left:-20px;top: -20px;width:0;height:0;opacity: 0;"; document.body.appendChild($textarea); $textarea.value = value; $textarea.select(); setTimeout(() => { document.execCommand('Copy'); document.body.removeChild($textarea); console.log('@copied:', value); if (typeof callback === 'function') { callback(value); } }, 50); } function run() { var pipelinesId = 0; var paths = window.location.pathname.split('/'); if (paths.length > 3 && !isNaN(paths[2])) { pipelinesId = paths[2]; var $Branch = document.querySelector('.yx-input>input[value="Branch"]'); var $WorktileTask = document.querySelector('.yx-input>input[id="WorktileTask"]'); var $BtnCancel = document.querySelector('.yx-dialog-footer>button:nth-child(1)'); var $BtnRun = document.querySelector('.yx-dialog-footer>button:nth-child(2)'); var isReady = $Branch && $WorktileTask && $BtnRun && $BtnRun?.innerText === '运行' && $BtnCancel; var $task; if (pipelinesId && isReady) { var hasBind = !!$BtnRun.hasBind; if (!hasBind) { $task = document.createElement('div'); $task.id = 'WorktileTaskURL'; $Branch.parentNode.parentNode.appendChild($task); $task.addEventListener('click', function(event) { doCopy($task.value); }, false); $WorktileTask.addEventListener('dblclick', function(event) { $WorktileTask.select(); }, false); $Branch.addEventListener('keydown', function(event) { if ($Branch.timer) { clearTimeout($Branch.timer); $Branch.timer = undefined; } }, false); $Branch.addEventListener('keyup', function(event) { if ($Branch.timer) { //clearTimeout($Branch.timer); //$Branch.timer = undefind; } var branch = this.value.trim(); var key = 'pipelinesId:'+ pipelinesId +':'+ branch; if (branch) { var task = window.localStorage.getItem(key) || ''; console.log('@hasTask', key, task); if (task) { $task.innerHTML = '<p>'+ task + '</p>' + (task ? '<small style="user-select: none;">已为你自动复制,可直接粘贴</small>' : ''); } else { $task.innerHTML = '<p><small style="user-select: none;color: red;">未找到关联需求/任务,请去Worktile查找或联系产品经理</small></p>'; } task = task || '未找到关联需求/任务'; $task.value = task; $Branch.timer = setTimeout(() => { doCopy(task, () => { $Branch.focus(); }); }, 300); } else { //$task.value = ''; $task.innerHTML = ''; } }, false); $BtnCancel.addEventListener('click', function(event) { var branch = $Branch.value.trim(); var key = 'pipelinesId:'+ pipelinesId +':'+ branch; if (branch) { window.localStorage.removeItem(key); console.log('@removed', key); } }, false); $BtnRun.addEventListener('click', function(event) { var branch = $Branch.value.trim(); var task = $WorktileTask.value.trim(); var key = 'pipelinesId:'+ pipelinesId +':'+ branch; if (branch && task) { window.localStorage.setItem(key, task); console.log('@saved', key, task); } }, false); $BtnRun.hasBind = true; } console.log('hasBind:'+ hasBind); } console.log('isReady:pipelinesId:'+ pipelinesId); } } function init() { initStyle(); document.body.addEventListener('mousedown', function(e) { var $yxdialog = document.querySelector('.yx-dialog'); var delay = $yxdialog ? 300 : 2000; setTimeout(() => { run(); }, delay); }, false); } if (document.contentType.startsWith('text/html')) { init(); } })();