您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
try to take over the world!
当前为
// ==UserScript== // @name pingcodeHelper // @namespace http://tampermonkey.net/ // @version 1.6 // @description try to take over the world! // @author You // @match https://onetoken.pingcode.com/* // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== // @grant GM_registerMenuCommand // ==/UserScript== GM_registerMenuCommand('Run this now', function() { alert("Put script's main function here"); }, 'r'); function get_work_items(pageSize=1000,pageIndex=0){ return new Promise((resolve,reject)=>{ $.ajax({ url: 'https://onetoken.pingcode.com/api/agile/work-items', dataType: "json", data: {ps:pageSize,pi:pageIndex}, async: true, cache: false, timeout: 30000, success: (res)=> { if(res.code===200){ let data=res.data let dataList=data.value if(data.page_index<data.page_count-1){ get_work_items(pageSize,pageIndex+1).then(items=>{ let concatList=dataList.concat(items) resolve(concatList) }) } else { resolve(dataList) } } else{ reject() } }, error: (request, status, error)=> { reject(error) }, type: "GET" }); }) } function achiveItems(items,index=0){ return new Promise((resolve,reject)=>{ let item=items[index] $.ajax({ url: `https://onetoken.pingcode.com/api/agile/work-items/${item._id}/archive`, dataType: "json", data: {}, async: true, cache: false, timeout: 10000, success: function (data) { if(index<items.length-1){ achiveItems(items,index+1).then(res=>{ resolve() }) } else { resolve() } }, error: function (request, status, error) { reject(error) }, type: "PUT" }); }) } get_work_items().then(items=>{ let long_set_tasks=[] for(let item of items){ if(item.state_type===3||item.state_type===4){ // console.log('checking',(Date.now()-item.updated_at*1000)/24/3600000,item) if(Date.now()-item.updated_at*1000>24*30*3600*1000){ long_set_tasks.push(item) } } } // console.log(long_set_tasks) // let toArchiveItems=long_set_tasks.slice(0,2) // console.log(toArchiveItems) // achiveItems(toArchiveItems).then(()=>{ // console.log('archived') // }).catch(e=>{ // console.log(e) // }) }) // $.ajax({ // url: 'https://onetoken.pingcode.com/api/agile/work-items/60e29290793b014b8ffbdeba/archive', // dataType: "json", // data: {}, // async: true, // cache: false, // timeout: 30000, // success: function (data) { // // my success stuff // }, // error: function (request, status, error) { // // my error stuff // }, // type: "PUT" // }); var pageURLCheckTimer = setInterval( function () { if (this.lastPathStr !== location.pathname || this.lastQueryStr !== location.search || this.lastPathStr === null || this.lastQueryStr === null ) { this.lastPathStr = location.pathname; this.lastQueryStr = location.search; gmMain(); } }, 222 ); function gmMain() { setTimeout(function () { let x = document.querySelector("#app-host-container > app-agile-root > app-agile-actual-root > agile-global > agile-global-query-detail > thy-header > div.layout-header-content > div > thy-nav > a.styx-secondary-nav-link.nav-link > span") if(x){ console.log(x); console.log(x.textContent.trim()); document.title = x.textContent.trim(); } }, 3000); } function refreshUnread(){ let authorization = localStorage.getItem('authorization') if(authorization){ fetch('https://iris.pingcode.com/api/iris/notifications/n-unreads?t=1636023609632',{headers:{authorization: authorization}}) .then(res => res.json()) .then(res=>{ if(res.code===200){ let unreadSize=res.data.value let currentTitle=document.head.querySelector('title').textContent if(currentTitle.startsWith('(')){ let endIndex = currentTitle.indexOf(')') if(endIndex>=0){ let newTitle=`(${unreadSize})${currentTitle.substring(endIndex+1)}` document.head.querySelector('title').textContent=newTitle } } } }) } } (function() { 'use strict'; // let showFinished=true //let btn=null let obj={btn:null,showFinished:true} let cnt=0 setInterval(()=>{ let agileDetail=document.querySelector('.agile-work-item-detail-work-item') if(agileDetail===null){ agileDetail=document.querySelector('.agile-work-item-detail-children') } cnt++ if(agileDetail){ let itemListParent = agileDetail.querySelector('.sub-work-item-list') if(itemListParent){ let itemList = itemListParent.querySelectorAll('.work-items-list-item') if(itemList.length>0){ if(agileDetail.querySelector('#displayBtn')===null){ obj.showFinished=true obj.btn = document.createElement('span') obj.btn.textContent=obj.showFinished?'隐藏已完成':'显示已完成' obj.btn.id='displayBtn' obj.btn.style='color:#aaa;cursor:pointer' agileDetail.insertBefore(obj.btn, agileDetail.firstChild) obj.btn.addEventListener('click',()=>{ toggleShowFinished() }) toggleShowFinished() } } } } if(cnt%60===0){ refreshUnread() } },1000) function isEnd(workItem){ let status=workItem.querySelector('.flexible-text-container').textContent return status==='关闭'||status==='已完成' } function toggleShowFinished(){ console.log('toggle show finished') obj.showFinished=!obj.showFinished obj.btn.textContent=obj.showFinished?'隐藏已完成':'显示已完成' if(obj.showFinished){ let workItems=document.querySelectorAll('.work-item-info') for(let item of workItems){ item.parentElement.parentElement.style='display:block' } } else { let workItems=document.querySelectorAll('.work-item-info') for(let item of workItems){ let status=item.querySelector('.flexible-text-container').textContent if(status==='关闭'||status==='已完成'){ item.parentElement.parentElement.style='display:none' } } } } console.log('starting') // Your code here... })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址